BeDivFuzz: Integrating Behavioral Diversity into Generator-based Fuzzing

02/26/2022
by   Hoang Lam Nguyen, et al.
0

A popular metric to evaluate the performance of fuzzers is branch coverage. However, we argue that focusing solely on covering many different branches (i.e., the richness) is not sufficient since the majority of the covered branches may have been exercised only once, which does not inspire a high confidence in the reliability of the covered code. Instead, the distribution of the executed branches (i.e., the evenness) should also be considered. That is, behavioral diversity is only given if the generated inputs not only trigger many different branches, but also trigger them evenly often with diverse inputs. We introduce BeDivFuzz, a feedback-driven fuzzing technique for generator-based fuzzers. BeDivFuzz distinguishes between structure-preserving and structure-changing mutations in the space of syntactically valid inputs, and biases its mutation strategy towards validity and behavioral diversity based on the received program feedback. We have evaluated BeDivFuzz on Ant, Maven, Rhino, Closure, Nashorn, and Tomcat. The results show that BeDivFuzz achieves better behavioral diversity than the state of the art, measured by established biodiversity metrics, namely the Hill numbers, from the field of ecology.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
12/25/2020

Fuzzing with Fast Failure Feedback

Fuzzing – testing programs with random inputs – has become the prime tec...
research
11/30/2018

Zest: Validity Fuzzing and Parametric Generators for Effective Random Testing

Programs expecting structured inputs often consist of both a syntactic a...
research
05/12/2021

Towards exhaustive branch coverage with PathCrawler

Branch coverage of source code is a very widely used test criterion. Mor...
research
07/25/2023

Predicting Code Coverage without Execution

Code coverage is a widely used metric for quantifying the extent to whic...
research
06/03/2020

SQUIRREL: Testing Database Management Systems with Language Validity and Coverage Feedback

Fuzzing is an increasingly popular technique for verifying software func...
research
05/06/2022

Towards QD-suite: developing a set of benchmarks for Quality-Diversity algorithms

While the field of Quality-Diversity (QD) has grown into a distinct bran...

Please sign up or login with your details

Forgot password? Click here to reset