Improving software security with a C pointer analysis

被引:0
作者
Avots, D [1 ]
Dalton, M [1 ]
Livshits, VB [1 ]
Lam, MS [1 ]
机构
[1] Stanford Univ, Dept Comp Sci, Stanford, CA 94305 USA
来源
ICSE 05: 27TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, PROCEEDINGS | 2005年
关键词
program analysis; context-sensitive; pointer analysis; type safety; error detection; software security; buffer overflows; dynamic analysis; security flaws; format string violations;
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
This paper presents a context-sensitive, inclusion-based, field-sensitive points-to analysis for C, which we use to detect and prevent program security vulnerabilities. In addition to a conservative points-to analysis, we propose an optimistic analysis that assumes a more restricted C semantics reflecting common C usage in order to increase the precision of the analysis. Using the proposed pointer alias analyses, we infer the types of variables in C programs and show that most C variables are used in a manner consistent with their declared types. We show that pointer analysis can be used to reduce the overhead of a dynamic string-buffer overflow detector by 30% to 100% among applications with significant overheads. Finally, using pointer analysis, we statically discover twelve actual format string vulnerabilities in three of the 12 programs we analyze.
引用
收藏
页码:332 / 341
页数:10
相关论文
共 25 条
[21]  
WHALEY J, 2004, PLDI, P131
[22]  
WILSON RP, 1995, P ACM SIGPLAN 95 C P, P1, DOI DOI 10.1145/207110.207111
[23]  
YONG SH, 1999, P ACM C PROGR LANG D, P91
[24]  
ZHU J, 2004, P ACM SIGPLAN C PROG, P145
[25]   Symbolic pointer analysis [J].
Zhu, JW .
IEEE/ACM INTERNATIONAL CONFERENCE ON CAD-02, DIGEST OF TECHNICAL PAPERS, 2002, :150-157