RELEASE: Generating Exploits Using Loop-Aware Concolic Execution
- 1 June 2011
- conference paper
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE) in 2011 Fifth International Conference on Secure Software Integration and Reliability Improvement
- p. 165-173
- https://doi.org/10.1109/ssiri.2011.31
Abstract
Automatically finding vulnerabilities and even generating exploits are desirable for software testing. For the protection of intellectual property and copyright, programs being tested may be lack of source code and symbol table information. Concolic execution is a novel technique, which takes advantage of the rapid executing speed of concrete execution and the wide testing coverage of symbolic execution, to discover and identify software bugs, including vulnerabilities. However, a serious limitation of concolic execution inherited from symbolic execution is its poor analysis result with loops, a common programming construct. For instance, when the number of iterations depends on the inputs, the analysis cannot determine possible execution paths of the program. In this paper, we propose a new concolic execution technique, loop-aware concolic execution, for testing software and analyzing loop-related variables with fewer execution steps. With the novel technique, not only linear relations but also some polynomial recurrence relations in a loop can be handled. To demonstrate effectiveness of the novel technique, we developed a concolic analyzer, called RELEASE, to discover buffer-overflow vulnerabilities in the testing benchmarks.Keywords
This publication has 16 references indexed in Scilit:
- Directed Proof Generation for Machine CodeLecture Notes in Computer Science, 2010
- EXEACM Transactions on Information and System Security, 2008
- ValgrindPublished by Association for Computing Machinery (ACM) ,2007
- CUTEPublished by Association for Computing Machinery (ACM) ,2005
- PinPublished by Association for Computing Machinery (ACM) ,2005
- Execution Generated Test Cases: How to Make Systems Code Crash ItselfLecture Notes in Computer Science, 2005
- A Next-Generation Platform for Analyzing ExecutablesLecture Notes in Computer Science, 2005
- Pointer-induced aliasing: a problem taxonomyPublished by Association for Computing Machinery (ACM) ,1991
- An empirical study of the reliability of UNIX utilitiesCommunications of the ACM, 1990
- Symbolic execution and program testingCommunications of the ACM, 1976