SEMay 25, 2020

MTFuzz: Fuzzing with a Multi-Task Neural Network

arXiv:2005.12392v271 citations
AI Analysis

This addresses the issue of low-quality and diverse training data in ML-based fuzzing for software bug detection, representing a strong specific gain rather than a broad paradigm shift.

The paper tackles the problem of evolutionary fuzzers getting stuck in unproductive mutations by using a Multi-Task Neural Network to learn a compact embedding of the input space, guiding mutations based on high gradients, which uncovers 11 previously unseen bugs and achieves an average of 2× more edge coverage compared to 5 state-of-the-art fuzzers on 10 real-world programs.

Fuzzing is a widely used technique for detecting software bugs and vulnerabilities. Most popular fuzzers generate new inputs using an evolutionary search to maximize code coverage. Essentially, these fuzzers start with a set of seed inputs, mutate them to generate new inputs, and identify the promising inputs using an evolutionary fitness function for further mutation. Despite their success, evolutionary fuzzers tend to get stuck in long sequences of unproductive mutations. In recent years, machine learning (ML) based mutation strategies have reported promising results. However, the existing ML-based fuzzers are limited by the lack of quality and diversity of the training data. As the input space of the target programs is high dimensional and sparse, it is prohibitively expensive to collect many diverse samples demonstrating successful and unsuccessful mutations to train the model. In this paper, we address these issues by using a Multi-Task Neural Network that can learn a compact embedding of the input space based on diverse training samples for multiple related tasks (i.e., predicting for different types of coverage). The compact embedding can guide the mutation process by focusing most of the mutations on the parts of the embedding where the gradient is high. \tool uncovers $11$ previously unseen bugs and achieves an average of $2\times$ more edge coverage compared with 5 state-of-the-art fuzzer on 10 real-world programs.

Code Implementations1 repo
Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes