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 条
[1]  
AIGNER G, 2000, SUIF2 COMPILER INFRA
[2]  
Andersen L. O., 1994, PhD thesis
[3]  
[Anonymous], 2003, P NETW DISTR SYST SE
[4]  
BERNDL M, 2003, P ACM SIGPLAN 2003 C, P103
[5]  
BUSH WR, 2000, PRACTICE EXPERIENCE, P775
[6]  
*CERT CC, ADV 2002
[7]  
CHOI JD, 1993, P 20 ACM SIGPLAN SIG, P232
[8]  
EMAMI M, 1994, P ACM SIGPLAN 94 C P, P242
[9]  
FAHNDRICH M, 1998, P 1998 ACM SIGPLAN C, P85
[10]  
HALLEM S, 2002, PLDI, P00069, DOI DOI 10.1145/512529.512539