Published July 4, 2024 | Version v1
Dataset Open

Artifact to accompany "An Empirical Examination of Fuzzer Mutator Performance" (ISSTA 2024 article)

  • 1. George Mason University
  • 2. ROR icon University of Illinois Chicago
  • 3. ROR icon Northeastern University

Description

This artifact contains scripts and data to supplement the ISSTA 2024 article "An Empirical Examination of Fuzzer Mutator Performance":

 

Over the past decade, hundreds of fuzzers have been published in top-tier security and software engineering conferences. Fuzzers are used to automatically test programs, ideally creating high-coverage input corpora and finding bugs. Modern "greybox'' fuzzers evolve a corpus of inputs by applying mutations to inputs and then executing those new inputs while collecting coverage. New inputs that are "interesting'' (e.g. reveal new coverage) are saved to the corpus. Given their non-deterministic nature, the impact of each design decision on the fuzzer's performance can be difficult to predict. Some design decisions (e.g. "should the fuzzer perform deterministic mutations of inputs'') are exposed to end-users as configuration flags, but others (e.g. "what kinds of random mutations to apply to inputs?'') are typically baked-in to the fuzzer code itself. This paper describes our over 12.5-CPU-year evaluation of the set of mutation operators employed by the popular AFL++ fuzzer including the havoc phase, splicing and \redqueen, exploring the impact of adjusting some of those unexposed configurations.

In this experience paper, we propose a methodology for determining different fuzzers' behavioral diversity with respect to branch coverage and bug detection using rigorous statistical methods. Our key finding is that, across a range of targets, disabling certain mutation operators (some of which were previously "baked-in'' to the fuzzer) resulted in inputs that cover different lines of code and reveal different bugs. A surprising result is disabling certain mutators leads to more diverse coverage and allows the fuzzer to find more bugs faster. We call for researchers to investigate seemingly simple design decisions in fuzzers more thoroughly and encourage fuzzer developers to expose more configuration parameters pertaining to these design decisions to end-users.

Files

analyze_data.zip

Files (190.8 GB)

Name Size Download all
md5:631872bf5159430b0a6fbc538acdc602
186.3 GB Download
md5:4ef7e9286927aa5bf6ae58823e5835ab
2.1 GB Preview Download
md5:2fcfc8fb80c6ea98202382bc3e24541e
209.2 kB Preview Download
md5:0439007c3611e4786ae882675df825d4
2.3 GB Download
md5:50bccf4dc835869b068280a16e6695da
242.3 kB Preview Download
md5:ba9863e9cf74cfc68a91a2122cc54379
3.0 kB Preview Download
md5:4744d0639a7ffcf688fd378343984061
116.5 MB Preview Download

Additional details

Funding

U.S. National Science Foundation
CAREER: Amplifying Developer-Written Tests for Code Injection Vulnerability Detection 2100015