首页> 外文期刊>IEEE Transactions on Reliability >Eliminating Redundant Bounds Checks in Dynamic Buffer Overflow Detection Using Weakest Preconditions
【24h】

Eliminating Redundant Bounds Checks in Dynamic Buffer Overflow Detection Using Weakest Preconditions

机译:使用最弱前提条件消除动态缓冲区溢出检测中的冗余边界检查

获取原文
获取原文并翻译 | 示例
       

摘要

Spatial errors (e.g., buffer overflows) continue to be one of the dominant threats to software reliability and security in C/C++ programs. Presently, the software industry typically enforces spatial memory safety by instrumentation. Due to high overheads incurred in bounds checking at runtime, many program inputs cannot be exercised, causing some input-specific spatial errors to go undetected in today's commercial software. This paper introduces a new compile-time approach for reducing bounds checking overheads based on the notion of weakest precondition (WP). The basic idea is to guard a bounds check at a pointer dereference inside a loop, where the WP-based guard is hoisted outside the loop, so that its falsehood implies the absence of out-of-bounds errors at the dereference, thereby avoiding the corresponding bounds check inside the loop. This WP-based approach is applicable to any spatial-error detection approach (in software or hardware or both). To evaluate the effectiveness of our approach, we take SoftBound, a compile-time tool with an open-source implementation in low-level virtual machine (LLVM), as our baseline. SoftBound adopts a pointer-based checking scheme with disjoint metadata, making it a state-of-the-art tool in providing compatible and complete spatial safety for C. Our new tool, called WPBound, is a refined version of SoftBound, also implemented in LLVM, by incorporating our WP-based compiler approach comprising both intra and interprocedural optimizations. For a set of 20 C benchmarks selected from SPEC and MiBench,WPBound reduces the average runtime overhead of SoftB ound from 77% to 47% (by a reduction of 39%), with small code size increases.
机译:空间错误(例如,缓冲区溢出)仍然是C / C ++程序对软件可靠性和安全性的主要威胁之一。当前,软件行业通常通过仪器来强制执行空间存储器安全。由于在运行时进行边界检查会产生高昂的开销,因此无法执行许多程序输入,导致某些特定于输入的空间错误在当今的商用软件中无法检测到。本文介绍了一种新的编译时方法,该方法基于最弱前提条件(WP)的概念来减少边界检查开销。基本思想是在循环内部保护指针取消引用时进行边界检查,在该循环中,基于WP的防护措施被提升到循环外部,因此其虚假性意味着在解除引用时不存在越界错误,从而避免了循环内检查相应的边界。这种基于WP的方法适用于任何空间错误检测方法(在软件或硬件中,或在两者中)。为了评估我们方法的有效性,我们将SoftBound(一种在低层虚拟机(LLVM)中具有开源实现的编译时工具)作为基准。 SoftBound采用具有不相交元数据的基于指针的检查方案,使其成为为C提供兼容和完全的空间安全性的最先进工具。我们的新工具WPBound是SoftBound的改进版本,也已在LLVM,通过结合我们的基于WP的编译器方法,包括内部和过程间优化。对于从SPEC和MiBench中选择的一组20 C基准测试,WPBound将SoftB ound的平均运行时间开销从77%减少到47%(减少了39%),并且代码大小增加了一点。

著录项

  • 来源
    《IEEE Transactions on Reliability》 |2016年第4期|1682-1699|共18页
  • 作者单位

    School of Computer Science and Engineering, UNSW, Sydney, NSW, Australia;

    School of Computer Science and Engineering, UNSW, Sydney, NSW, Australia;

    School of Computer Science and Engineering, UNSW, Sydney, NSW, Australia;

    School of Computer Science and Engineering, UNSW, Sydney, NSW, Australia;

  • 收录信息 美国《科学引文索引》(SCI);美国《工程索引》(EI);
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类
  • 关键词

    Instruments; Metadata; Runtime; Software; Optimization; Safety; Hardware;

    机译:仪器;元数据;运行时;软件;优化;安全性;硬件;
  • 入库时间 2022-08-17 13:26:53

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号