IEEE Transactions on Software Engineering· 2017Q1
Coverage-Based Greybox Fuzzing as Markov Chain
- 340citations
- Q1SCImago
- 2017year
Short summary
AFLFast, a new greybox fuzzing approach, uses a Markov chain model to prioritize low-frequency code paths, exposing 3 previously unreported CVEs and finding 7x more vulnerabilities than AFL in 24 hours.
AI-generated from the title and abstract; the full text is not read.
Key points
- AFLFast models greybox fuzzing as a Markov chain to prioritize low-frequency code paths.
- Energy allocation is inversely proportional to the stationary distribution density and increases with seed selection.
- AFLFast exposed 3 previously unreported CVEs and found vulnerabilities 7x faster than AFL in 24 hours.
- AFLFast generated at least an order of magnitude more unique crashes than AFL.
- AFLFast outperformed Klee in vulnerability detection and slightly in code coverage; a combination achieved the best results.
AI-generated from the title and abstract; the full text is not read.
Abstract
Coverage-based Greybox Fuzzing (CGF) is a random testing approach that requires no program analysis. A new test is generated by slightly mutating a seed input. If the test exercises a new and interesting path, it is added to the set of seeds; otherwise, it is discarded. We observe that most tests exercise the same few “high-frequency” paths and develop strategies to explore significantly more paths with the same number of tests by gravitating towards low-frequency paths. We explain the challenges and opportunities of CGF using a Markov chain model which specifies the probability that fuzzing the seed that exercises path i generates an input that exercises path j. Each state (i.e., seed) has an energy that specifies the number of inputs to be generated from that seed. We show that CGF is considerably more efficient if energy is inversely proportional to the density of the stationary distribution and increases monotonically every time that seed is chosen. Energy is controlled with a power schedule. We implemented several schedules by extending AFL. In 24 hours, AFLFast exposes 3 previously unreported CVEs that are not exposed by AFL and exposes 6 previously unreported CVEs 7x faster than AFL. AFLFast produces at least an order of magnitude more unique crashes than AFL. We compared AFLFast to the symbolic executor Klee. In terms of vulnerability detection, AFLFast is significantly more effective than Klee on the same subject programs that were discussed in the original Klee paper. In terms of code coverage, AFLFast only slightly outperforms Klee while a combination of both tools achieves best results by mitigating the individual weaknesses.
The authors' abstract, as published at the source. IEEE Transactions on Software Engineering, 2017 · DOI ↗
Continue with a free account
Ask the paper: 3 free questions a day about this paper; save it, get its citation, new summaries every day for your field. Takeaways are Premium.
Continue free on the webSign in with Google or Apple; no card needed. You come back to this paper.
On your phone:
Field: Software
SoftwareComputer Science