Optimizing seed inputs in fuzzing with machine learning

02/07/2019
by   Liang Cheng, et al.
0

The success of a fuzzing campaign is heavily depending on the quality of seed inputs used for test generation. It is however challenging to compose a corpus of seed inputs that enable high code and behavior coverage of the target program, especially when the target program requires complex input formats such as PDF files. We present a machine learning based framework to improve the quality of seed inputs for fuzzing programs that take PDF files as input. Given an initial set of seed PDF files, our framework utilizes a set of neural networks to 1) discover the correlation between these PDF files and the execution in the target program, and 2) leverage such correlation to generate new seed files that more likely explore new paths in the target program. Our experiments on a set of widely used PDF viewers demonstrate that the improved seed inputs produced by our framework could significantly increase the code coverage of the target program and the likelihood of detecting program crashes.

READ FULL TEXT

page 1

page 2

research
12/18/2022

Rare-Seed Generation for Fuzzing

Starting with a random initial seed, fuzzers search for inputs that trig...
research
11/10/2017

Not all bytes are equal: Neural byte sieve for fuzzing

Fuzzing is a popular dynamic program analysis technique used to find vul...
research
07/07/2018

SmartSeed: Smart Seed Generation for Efficient Fuzzing

Fuzzing is an automated application vulnerability detection method. For ...
research
11/23/2018

Smart Greybox Fuzzing

Coverage-based greybox fuzzing (CGF) is one of the most successful metho...
research
06/11/2023

Augmenting Greybox Fuzzing with Generative AI

Real-world programs expecting structured inputs often has a format-parsi...
research
11/08/2017

Faster Fuzzing: Reinitialization with Deep Neural Models

We improve the performance of the American Fuzzy Lop (AFL) fuzz testing ...
research
04/29/2020

TOFU: Target-Oriented FUzzer

Program fuzzing—providing randomly constructed inputs to a computer prog...

Please sign up or login with your details

Forgot password? Click here to reset