How to Compare Fuzzers

12/06/2022
by   Philipp Görz, et al.
0

Fuzzing is a key method to discover vulnerabilities in programs. Despite considerable progress in this area in the past years, measuring and comparing the effectiveness of fuzzers is still an open research question. In software testing, the gold standard for evaluating test quality is mutation analysis, assessing the ability of a test to detect synthetic bugs; if a set of tests fails to detect such mutations, it will also fail to detect real bugs. Mutation analysis subsumes various coverage measures and provides a large and diverse set of faults that can be arbitrarily hard to trigger and detect, thus preventing the problems of saturation and overfitting. Unfortunately, the cost of traditional mutation analysis is exorbitant for fuzzing, as mutations need independent evaluation. In this paper, we apply modern mutation analysis techniques that pool multiple mutations; allowing us, for the first time, to evaluate and compare fuzzers with mutation analysis. We introduce an evaluation bench for fuzzers and apply it to a number of popular fuzzers and subjects. In a comprehensive evaluation, we show how it allows us to assess fuzzer performance and measure the impact of improved techniques. While we find that today's fuzzers can detect only a small percentage of mutations, this should be seen as a challenge for future research – notably in improving (1) detecting failures beyond generic crashes (2) triggering mutations (and thus faults).

READ FULL TEXT

page 3

page 8

page 9

page 10

page 11

research
01/09/2023

Efficient Mutation Testing via Pre-Trained Language Models

Mutation testing is an established fault-based testing technique. It ope...
research
02/26/2019

Amortising the Cost of Mutation Based Fault Localisation using Statistical Inference

Mutation analysis can effectively capture the dependency between source ...
research
08/23/2018

Measuring Coverage of Prolog Programs Using Mutation Testing

Testing is an important aspect in professional software development, bot...
research
09/05/2023

Contextual Predictive Mutation Testing

Mutation testing is a powerful technique for assessing and improving tes...
research
04/08/2020

Do Null-Type Mutation Operators Help Prevent Null-Type Faults?

The null-type is a major source of faults in Java programs, and its over...
research
01/27/2022

Mutation Analysis: Answering the Fuzzing Challenge

Fuzzing is one of the fastest growing fields in software testing. The id...
research
02/05/2021

Mutant reduction evaluation: what is there and what is missing?

Background. Many mutation reduction strategies, which aim to reduce the ...

Please sign up or login with your details

Forgot password? Click here to reset