Abstract
Many real-world programs take highly structured and complex files as inputs. The automated testing of such programs is non-trivial. If the test does not adhere to a specific file format, the program returns a parser error. For symbolic execution-based whitebox fuzzing the corresponding error handling code becomes a significant time sink. Too much time is spent in the parser exploring too many paths leading to trivial parser errors. Naturally, the time is better spent exploring the functional part of the program where failure with valid input exposes deep and real bugs in the program. In this paper, we suggest to leverage information about the file format and data chunks of existing, valid files to swiftly carry the exploration beyond the parser code. We call our approach Modelbased Whitebox Fuzzing (MoWF) because the file format input model of blackbox fuzzers can be exploited as a constraint on the vast input space to rule out most invalid inputs during path exploration in symbolic execution. We evaluate on 13 vulnerabilities in 8 large program binaries with 6 separate file formats and found that MoWF exposes all vulnerabilities while both, traditional whitebox fuzzing and model-based blackbox fuzzing, expose only less than half, respectively. Our experiments also demonstrate that MoWF exposes 70% vulnerabilities without any seed inputs.
Original language | English |
---|---|
Title of host publication | Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering |
Editors | David Lo, Sven Apel, Sarfraz Khurshid |
Place of Publication | New York NY USA |
Publisher | Association for Computing Machinery (ACM) |
Pages | 543-553 |
Number of pages | 11 |
ISBN (Electronic) | 9781450338455 |
DOIs | |
Publication status | Published - 2016 |
Event | Automated Software Engineering Conference 2016 - Singapore Management University (SMU), Singapore, Singapore Duration: 3 Sep 2016 → 7 Sep 2016 Conference number: 31st http://www.ase2016.org/ (Conference website) https://dl.acm.org/doi/proceedings/10.1145/2970276 (Proceedings) |
Conference
Conference | Automated Software Engineering Conference 2016 |
---|---|
Abbreviated title | ASE 2016 |
Country | Singapore |
City | Singapore |
Period | 3/09/16 → 7/09/16 |
Internet address |
|
Keywords
- Program Binaries
- Symbolic Execution