On the Reliability of Coverage-Based Fuzzer Benchmarking

78Citations
Citations of this article
30Readers
Mendeley users who have this article in their library.

Abstract

Given a program where none of our fuzzers finds any bugs, how do we know which fuzzer is better? In practice, we often look to code coverage as a proxy measure of fuzzer effectiveness and consider the fuzzer which achieves more coverage as the better one. Indeed, evaluating 10 fuzzers for 23 hours on 24 programs, we find that a fuzzer that covers more code also finds more bugs. There is a very strong correlation between the coverage achieved and the number of bugs found by a fuzzer. Hence, it might seem reasonable to compare fuzzers in terms of coverage achieved, and from that derive empirical claims about a fuzzer's superiority at finding bugs. Curiously enough, however, we find no strong agreement on which fuzzer is superior if we compared multiple fuzzers in terms of coverage achieved instead of the number of bugs found. The fuzzer best at achieving coverage, may not be best at finding bugs.

Cite

CITATION STYLE

APA

Bohme, M., Szekeres, L., & Metzman, J. (2022). On the Reliability of Coverage-Based Fuzzer Benchmarking. In Proceedings - International Conference on Software Engineering (Vol. 2022-May, pp. 1621–1633). IEEE Computer Society. https://doi.org/10.1145/3510003.3510230

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free