img-logo-SoSySec

 

Fuzzing
with Data Dependency Information

Alessandro Mantovani

PhD student R&D Qualcomm

2023, march 17

The slides (Pdf) ; Abstract

To play the video,
click on the image

img-generique-Mantovani-SoSySec-17-03-2023

1/ Backgrounds/

Coverage 00:01:15:03
Fuzzing 00:02:51:10
Feedback mechanisms 00:04:00:21

2/ Research problem 00:07:24:00

3/ Methodology and implementation 00:09:23:04
Technology
Data Dependency Graph construction 00:10:49:07
Data Dependency Graph filtering 00:12:30:17
Instrumentation 00:14:01:21

4/ Evaluations 00:15:25:05

5/ Future directions 00:26:29:04


Abstract:

Recent advances in fuzz testing have introduced several
forms of feedback mechanisms, motivated by the fact that for a large range of programs and libraries, edge-coverage alone is insufficient to reveal complicated bugs.

Inspired by this line of research, we examined existing program representations looking for a match between expressiveness of the structure and adaptability to the context of fuzz testing. In particular, we believe that data dependency graphs (DDGs) represent a good candidate for this task, as the set of information embedded by this data structure is potentially useful to find vulnerable constructs by stressing combinations of def-use pairs that would be difficult for a traditional fuzzer to trigger.

Since some portions of the dependency graph overlap with the control flow of the program, it is possible to reduce the additional instrumentation to cover only "interesting" data-flow dependencies, those that help the fuzzer to visit the code in a distinct way compared to standard methodologies.

To test these observations, we proposed DDFuzz, a new approach that rewards the fuzzer not only with code coverage information, but also when new edges in the data dependency graph are hit.

Our results show that the adoption of data dependency instrumentation in coverage-guided fuzzing is a promising solution that can help to discover bugs that would otherwise remain unexplored by standard coverage approaches.

This is demonstrated by the 72 different vulnerabilities that our data-dependency driven approach can identify when executed on 38 target programs from three different datasets.
img-fleche-haut

 


You will find here the videos of previous SoSySec seminars

© 2023 Centre Inria de l’Université de Rennes