VU Research Portal · 2020 · 88 citations · 19 references
Open access
Software MaintenanceEngineeringSoftware EngineeringSource Code AnalysisCode CoverageBug CoverageSoftware AnalysisSymbolic ExecutionSanitizer-guided Greybox FuzzingFuzzingComputer EngineeringComputer ScienceStatic Program AnalysisSoftware DesignSoftware SecurityProgram AnalysisSoftware TestingCoverage-guided FuzzersFault Injection
One of the key questions when fuzzing is where to look for vulnerabilities. Coverage-guided fuzzers indiscriminately optimize for covering as much code as possible given that bug coverage often correlates with code coverage. Since code coverage overapproximates bug coverage, this approach is less than ideal and may lead to non-trivial time-to-exposure (TTE) of bugs. Directed fuzzers try to address this problem by directing the fuzzer to a basic block with a potential vulnerability. This approach can greatly reduce the TTE for a specific bug, but such special-purpose fuzzers can then greatly underapproximate overall bug coverage. In this paper, we present sanitizer-guided fuzzing, a new design point in this space that specifically optimizes for bug coverage. For this purpose, we make the key observation that while the instrumentation performed by existing software sanitizers are regularly used for detecting fuzzer-induced error conditions, they can further serve as a generic and effective mechanism to identify interesting basic blocks for guiding fuzzers. We present the design and implementation of ParmeSan, a new sanitizer-guided fuzzer that builds on this observation. We show that ParmeSan greatly reduces the TTE of real-world bugs, and finds bugs 37% faster than existing state-of-the-art coverage-based fuzzers (Angora) and 288% faster than directed fuzzers (AFLGo), while still covering the same set of bugs.
19
Driller: Augmenting Fuzzing Through Selective Symbolic Execution
Nick Stephens, John Grosen, Christopher Salls et al. · 2016 · 864 citations · Full text
VUzzer: Application-aware Evolutionary Fuzzing
Sanjay Rawat, Vivek Jain, Ashish Kumar et al. · 2017 · 581 citations · Full text
Patrice Godefroid, Michael Y. Levin, Dávid Molnár · Communications of the ACM · 2012 · 554 citations
Software Maintenance, Software Development Practice, Remarkable Impact +10
Angora: Efficient Fuzzing by Principled Search