Program State Abstraction for Feedback-Driven Fuzz Testing using Likely Invariants

12/21/2020
by   Andrea Fioraldi, et al.
0

Fuzz testing proved its great effectiveness in finding software bugs in the latest years, however, there are still open challenges. Coverage-guided fuzzers suffer from the fact that covering a program point does not ensure the trigger of a fault. Other more sensitive techniques that in theory should cope with this problem, such as the coverage of the memory values, easily lead to path explosion. In this thesis, we propose a new feedback for Feedback-driven Fuzz testing that combines code coverage with the "shape" of the data. We learn likely invariants for each basic block in order to divide into regions the space described by the variables used in the block. The goal is to distinguish in the feedback when a block is executed with values that fall in different regions of the space. This better approximates the program state coverage and, on some targets, improves the ability of the fuzzer in finding faults. We developed a prototype using LLVM and AFL++ called InvsCov.

READ FULL TEXT

page 23

page 35

page 42

research
03/14/2022

Investigating Coverage Guided Fuzzing with Mutation Testing

Coverage guided fuzzing (CGF) is an effective testing technique which ha...
research
02/04/2021

FuzzSplore: Visualizing Feedback-Driven Fuzzing Techniques

Fuzz Testing techniques are the state of the art in software testing for...
research
04/28/2023

Cross-coverage testing of functionally equivalent programs

Cross-coverage of a program P refers to the test coverage measured over ...
research
09/16/2020

Improving Linux-Kernel Tests for LockDoc with Feedback-driven Fuzzing

LockDoc is an approach to extract locking rules for kernel data structur...
research
09/07/2022

Same Coverage, Less Bloat: Accelerating Binary-only Fuzzing with Coverage-preserving Coverage-guided Tracing

Coverage-guided fuzzing's aggressive, high-volume testing has helped rev...
research
06/29/2020

A Generative Neural Network Framework for Automated Software Testing

Search Based Software Testing (SBST) is a popular automated testing tech...
research
07/26/2019

RERS-Fuzz : Combining Greybox Fuzzing with Interval Analysis for error reachability in reactive softwares

Fuzz Testing is a well-studied area in the field of Software Maintenance...

Please sign up or login with your details

Forgot password? Click here to reset