High scalability and low running costs have made fuzz testing the de facto standard for discovering software bugs. Fuzzing techniques are constantly being improved in a race to build the ultimate bug-finding tool. However, while fuzzing excels at finding bugs in the wild, evaluating and comparing fuzzer performance is challenging due to the lack of metrics and benchmarks. For example, crash count---perhaps the most commonly-used performance metric---is inaccurate due to imperfections in deduplication techniques. Additionally, the lack of a unified set of targets results in ad hoc evaluations that hinder fair comparison. We tackle these problems by developing Magma, a ground-truth fuzzing benchmark that enables uniform fuzzer evaluation and comparison. By introducing real bugs into real software, Magma allows for the realistic evaluation of fuzzers against a broad set of targets. By instrumenting these bugs, Magma also enables the collection of bug-centric performance metrics independent of the fuzzer. Magma is an open benchmark consisting of seven targets that perform a variety of input manipulations and complex computations, presenting a challenge to state-of-the-art fuzzers. We evaluate seven widely-used mutation-based fuzzers (AFL, AFLFast, AFL++, FairFuzz, MOpt-AFL, honggfuzz, and SymCC-AFL) against Magma over 200,000 CPU-hours. Based on the number of bugs reached, triggered, and detected, we draw conclusions about the fuzzers' exploration and detection capabilities. This provides insight into fuzzer performance evaluation, highlighting the importance of ground truth in performing more accurate and meaningful evaluations.
[1]
Shih-Kun Huang,et al.
INSTRIM: Lightweight Instrumentation for Coverage-guided Fuzzing
,
2018
.
[2]
Hao Chen,et al.
Angora: Efficient Fuzzing by Principled Search
,
2018,
2018 IEEE Symposium on Security and Privacy (SP).
[3]
Andrew Ruef,et al.
Evaluating Fuzz Testing
,
2018,
CCS.
[4]
W. Michael Petullo,et al.
The Industrial Age of Hacking
,
2020,
USENIX Security Symposium.
[5]
Choongwoo Han,et al.
The Art, Science, and Engineering of Fuzzing: A Survey
,
2018,
IEEE Transactions on Software Engineering.
[6]
Thorsten Holz,et al.
AURORA: Statistical Crash Analysis for Automated Root Cause Explanation
,
2020,
USENIX Security Symposium.