· 2018
FairFuzz: a targeted mutation strategy for increasing greybox fuzz testing coverage
- 357citations
- 2018year
Short summary
FairFuzz, a new mutation strategy for fuzz testing, increases code coverage by targeting rare branches and achieving an average 10.6% increase in branch coverage after 24 hours on programs with nested conditionals.
AI-generated from the title and abstract; the full text is not read.
Key points
- FairFuzz identifies and targets 'rare branches' that are difficult for standard fuzzing tools to reach.
- A novel, dynamically computed mutation mask biases input generation towards hitting these rare branches.
- FairFuzz achieves higher branch coverage at a faster rate compared to state-of-the-art AFL.
- It provides a sustained average 10.6% increase in branch coverage after 24 hours on programs with nested conditional structures.
AI-generated from the title and abstract; the full text is not read.
Abstract
In recent years, fuzz testing has proven itself to be one of the most effective techniques for finding correctness bugs and security vulnerabilities in practice. One particular fuzz testing tool, American Fuzzy Lop (AFL), has become popular thanks to its ease-of-use and bug-finding power. However, AFL remains limited in the bugs it can find since it simply does not cover large regions of code. If it does not cover parts of the code, it will not find bugs there. We propose a two-pronged approach to increase the coverage achieved by AFL. First, the approach automatically identifies branches exercised by few AFL-produced inputs (rare branches), which often guard code that is empirically hard to cover by naively mutating inputs. The second part of the approach is a novel mutation mask creation algorithm, which allows mutations to be biased towards producing inputs hitting a given rare branch. This mask is dynamically computed during fuzz testing and can be adapted to other testing targets. We implement this approach on top of AFL in a tool named FairFuzz. We conduct evaluation on real-world programs against state-of-the-art versions of AFL. We find that on these programs FairFuzz achieves high branch coverage at a faster rate that state-of-the-art versions of AFL. In addition, on programs with nested conditional structure, it achieves sustained increases in branch coverage after 24 hours (average 10.6% increase). In qualitative analysis, we find that FairFuzz has an increased capacity to automatically discover keywords.
The authors' abstract, as published at the source., 2018 · 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