MemSafe: ensuring the spatial and temporal memory safety of C?at runtime

被引:43
作者
Simpson, Matthew S. [1 ]
Barua, Rajeev K. [1 ]
机构
[1] Univ Maryland, Dept Elect & Comp Engn, College Pk, MD 20742 USA
关键词
memory safety; reliability; verification; programming languages; COST;
D O I
10.1002/spe.2105
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Memory access violations are a leading source of unreliability in C programs. As evidence of this problem, a variety of methods exist that retrofit C with software checks to detect memory errors at runtime. However, these methods generally suffer from one or more drawbacks including the inability to detect all errors, the use of incompatible metadata, the need for manual code modifications, and high runtime overheads. This paper presents a compiler analysis and transformation for ensuring the memory safety of C called MemSafe. MemSafe makes several novel contributions that improve upon previous work and lower the cost of safety. These include (i) a method for modeling temporal errors as spatial errors, (ii) a metadata representation that combines features of both object-based and pointer-based approaches, and (iii) a dataflow representation that simplifies optimizations for removing unneeded checks. MemSafe is capable of detecting real errors with lower overheads than previous efforts. Experimental results show that MemSafe detects all memory errors in six programs with known violations as well as two large and widely used open source applications. Finally, MemSafe ensures complete safety with an average overhead of 88% on 30 programs commonly used for evaluating the performance of error detection tools. Copyright (c) 2012 John Wiley & Sons, Ltd.
引用
收藏
页码:93 / 128
页数:36
相关论文
共 60 条
  • [1] Preventing memory error exploits with WIT
    Akritidis, Periklis
    Cadar, Cristian
    Raiciu, Costin
    Costa, Manuel
    Castro, Miguel
    [J]. PROCEEDINGS OF THE 2008 IEEE SYMPOSIUM ON SECURITY AND PRIVACY, 2008, : 263 - +
  • [2] Akritidis Periklis, 2009, 18 USENIX SECURITY S
  • [3] Andersen Lars Ole, 1994, Ph.D. Dissertation
  • [4] ANDERSON J.P., 1972, ESDTR7351 US AIR FOR, VII
  • [5] [Anonymous], 2005, P 12 ACM C COMP COMM
  • [6] [Anonymous], 2004, P 11 NETW DISTR SYST
  • [7] Apache Software Foundation, AP HTTP SERV
  • [8] AUSTIN TM, 1994, SIGPLAN NOTICES, V29, P290, DOI 10.1145/773473.178446
  • [9] Bacon DavidF., 2004, 4th ACM International Conference on Embedded Software, P125
  • [10] The SLAM project: Debugging system software via static analysis
    Ball, T
    Rajamani, SK
    [J]. ACM SIGPLAN NOTICES, 2002, 37 (01) : 1 - 3