MTFuzz: Fuzzing with a Multi-Task Neural Network

05/25/2020
by   Dongdong She, et al.
0

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 different types of coverage). The compact embedding can be used to guide the mutation process effectively by focusing most of the mutations on the parts of the embedding where the gradient is high. Our results show that MTFuzz uncovers 11 previously unseen bugs and achieves an average of 2x more edge coverage compared with 5 state-of-the-art fuzzer on 10 real-world programs.

READ FULL TEXT

page 1

page 3

page 4

page 5

page 6

page 7

page 8

page 11

research
07/15/2018

NEUZZ: Efficient Fuzzing with Neural Program Learning

Fuzzing has become the de facto standard technique for finding software ...
research
05/30/2019

MoonLight: Effective Fuzzing with Near-Optimal Corpus Distillation

Mutation-based fuzzing typically uses an initial set of valid seed input...
research
12/04/2018

Superion: Grammar-Aware Greybox Fuzzing

In recent years, coverage-based greybox fuzzing has proven itself to be ...
research
03/04/2018

Angora: Efficient Fuzzing by Principled Search

Fuzzing is a popular technique for finding software bugs. However, the p...
research
12/14/2021

Better Pay Attention Whilst Fuzzing

Fuzzing is one of the prevailing methods for vulnerability detection. Ho...
research
01/03/2021

AlphaFuzz: Evolutionary Mutation-based Fuzzing as Monte Carlo Tree Search

Fuzzing is becoming more and more popular in the field of vulnerability ...
research
08/09/2023

Universal Fuzzing via Large Language Models

Fuzzing has achieved tremendous success in discovering bugs and vulnerab...

Please sign up or login with your details

Forgot password? Click here to reset