Greybox fuzzing as a contextual bandits problem

06/11/2018
by   Ketan Patil, et al.
0

Greybox fuzzing is one of the most useful and effective techniques for the bug detection in large scale application programs. It uses minimal amount of instrumentation. American Fuzzy Lop (AFL) is a popular coverage based evolutionary greybox fuzzing tool. AFL performs extremely well in fuzz testing large applications and finding critical vulnerabilities, but AFL involves a lot of heuristics while deciding the favored test case(s), skipping test cases during fuzzing, assigning fuzzing iterations to test case(s). In this work, we aim at replacing the heuristics the AFL uses while assigning the fuzzing iterations to a test case during the random fuzzing. We formalize this problem as a `contextual bandit problem' and we propose an algorithm to solve this problem. We have implemented our approach on top of the AFL. We modify the AFL's heuristics with our learned model through the policy gradient method. Our learning algorithm selects the multiplier of the number of fuzzing iterations to be assigned to a test case during random fuzzing, given a fixed length substring of the test case to be fuzzed. We fuzz the substring with this new energy value and continuously updates the policy based upon the interesting test cases it produces on fuzzing.

READ FULL TEXT
research
02/12/2020

Object-based Metamorphic Testing through Image Structuring

Testing software is often costly due to the need of mass-producing test ...
research
08/18/2019

Incorporating fault-proneness estimations into coverage-based test case prioritization methods

Context: During the development process of a software program, regressio...
research
03/22/2021

Leveraging Models to Reduce Test Cases in Software Repositories

Given a failing test case, test case reduction yields a smaller test cas...
research
10/01/2019

Adaptive Metamorphic Testing with Contextual Bandits

Metamorphic Testing is a software testing paradigm which aims at using n...
research
12/20/2021

FuSeBMC v.4: Smart Seed Generation for Hybrid Fuzzing

FuSeBMC is a test generator for finding security vulnerabilities in C pr...
research
02/28/2022

Automatic Test-Case Reduction in Proof Assistants: A Case Study in Coq

As the adoption of proof assistants increases, there is a need for effic...

Please sign up or login with your details

Forgot password? Click here to reset