ACM Home Page
Please provide us with feedback. Feedback
Marple: a demand-driven path-sensitive buffer overflow detector
Full text PdfPdf (1.26 MB)
Source Foundations of Software Engineering archive
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering table of contents
Atlanta, Georgia
SESSION: Security and fault detection table of contents
Pages 272-282  
Year of Publication: 2008
ISBN:978-1-59593-995-1
Authors
Wei Le  University of Virginia, Charlottesville, VA
Mary Lou Soffa  University of Virginia, Charlottesville, VA
Sponsor
SIGSOFT: ACM Special Interest Group on Software Engineering
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 14,   Downloads (12 Months): 156,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1453101.1453137
What is a DOI?

ABSTRACT

Despite increasing efforts in detecting and managing software security vulnerabilities, the number of security attacks is still rising every year. As software becomes more complex, security vulnerabilities are more easily introduced into a system and more difficult to eliminate. Even though buffer overflow detection has been studied for more than 20 years, it is still the most commonly exploited vulnerability. In this paper, we develop a static analyzer for detecting and helping diagnose buffer overflows with the key idea of categorizing program paths as they relate to vulnerability. We combine path-sensitivity with a demand-driven analysis for precision and scalability. We first develop a vulnerability model for buffer overflow and then use the model in the development of the demand-driven path-sensitive analyzer. We detect and identify categories of paths including infeasible, safe, vulnerable, overflow-input-independent and don't-know. The categorization enables priorities to be set when searching for root causes of vulnerable paths. We implemented our analyzer, Marple, and compared its performance with existing tools. Our experiments show that Marple is able to detect buffer overflows that other tools cannot, and being path-sensitive with prioritization, Marple produces only 1 false positive out of 72 reported overflows. We also show that Marple scales to 570,000 lines of code, the largest benchmark we had.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
Personal communication with John Lin from Microsoft.
 
2
Polyspace. http://www.polyspace.com.
 
3
T. Ball and J. R. Larus. Program flow path. Microsoft Technical Report MSR-TR-99-01, 1999.
4
 
5
W. R. Bush, J. D. Pincus, and D. J. Sielaff. A static analyzer for finding dynamic programming errors. Software: Practice and Experience, 2000.
 
6
CERT. http://www.cert.org/.
7
 
8
9
10
11
 
12
Y. Hamadi. Disolver: A Distributed Constraint Solver. Technical Report MSR-TR-2003-91, Microsoft Research.
13
14
15
 
16
S. Lu, Z. Li, F. Qin, L. Tan, P. Zhou, and Y. Zhou. Bugbench: Benchmarks for evaluating bug detection tools. In Proceedings of Workshop on the Evaluation of Software Defect Detection Tools, 2005.
 
17
Microsoft Game Studio MechCommander2. http://www.microsoft.com/games/mechcommander2/.
 
18
Microsoft Phoenix. http://research.microsoft.com/phoenix/.
 
19
Microsoft Prefast. http://www.microsoft.com/whdc/devtools/tools/prefast.mspx.
 
20
M. Orlovich and R. Rugina. Memory leak analysis by contradiction. In Static Analysis, 13th International Symposium, 2006.
 
21
SecurityTeam. http://www.securiteam.com/.
 
22
E. Spafford. A failure to learn from the past. http://citeseer.ist.psu.edu/spafford03failure.html.
 
23
D. Wagner, J. S. Foster, and E. A. B. hand Alexander Aiken. A first step towards automated detection of buffer overrun vulnerabilities. In Proceedings of Network and Distributed System Security Symposium, 2000.
24
25