Skip to main navigation Skip to search Skip to main content

Daisy: Effective Fuzz Driver Synthesis with Object Usage Sequence Analysis

  • Mingrui Zhang
  • , Chijin Zhou
  • , Jianzhong Liu
  • , Mingzhe Wang
  • , Jie Liang
  • , Juan Zhu*
  • , Yu Jiang
  • *Corresponding author for this work
  • Tsinghua University
  • ShuiMuYuLin Co. Ltd
  • Hubei University of Arts and Science

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

Fuzzing is increasingly used in industrial settings for vulnerability detection due to its scalability and effectiveness. Libraries require driver programs to feed the fuzzer-generated inputs into library-provided interfaces. Writing such drivers manually is tedious and error-prone, thus greatly hindering the widespread use of fuzzing in practical situations. Previous attempts at automatic driver synthesis perform static analysis on the libraries and their consumers. However, a lack of dynamic object usage information renders them ineffective at generating interface function calls with correct parameters and meaningful sequences. This severely limits fuzzing's bug-finding capabilities and can produce faulty drivers.In this paper, we propose Daisy, a driver synthesis framework, which extracts dynamic object usage sequences of library consumers to synthesize significantly more effective drivers. Daisy uses the following two steps to synthesize a fuzz driver for a library. First, it models each object's behaviors into an object usage sequence during the execution of its consumers. Next, it merges all the extracted sequences and constructs a series of interface calls with valid object usages based on the merged sequence. We implemented Daisy and evaluated its effectiveness on real-world libraries selected from both the Android Open Source Project (AOSP) and Google's FuzzBench. Daisy's synthesized drivers significantly outperform drivers produced by other state-of-the-art fuzz driver synthesizers. In addition, on applying Daisy to the latest versions of those extensively-fuzzed real-world libraries of the benchmark, e.g. libaom and freetype2, we also found 9 previously-unknown bugs with 3 CVEs assigned.

Original languageEnglish
Title of host publicationProceedings - 2023 IEEE/ACM 45th International Conference on Software Engineering
Subtitle of host publicationSoftware Engineering in Practice, ICSE-SEIP 2023
PublisherIEEE Computer Society
Pages87-98
Number of pages12
ISBN (Electronic)9798350300376
DOIs
StatePublished - 20 Sep 2023
Externally publishedYes
Event45th IEEE/ACM International Conference on Software Engineering: Software Engineering in Practice, ICSE-SEIP 2023 - Melbourne, Australia
Duration: 17 May 202319 May 2023

Publication series

NameProceedings - International Conference on Software Engineering
ISSN (Print)0270-5257

Conference

Conference45th IEEE/ACM International Conference on Software Engineering: Software Engineering in Practice, ICSE-SEIP 2023
Country/TerritoryAustralia
CityMelbourne
Period17/05/2319/05/23

Keywords

  • Driver Synthesis
  • Dynamic Analysis
  • Fuzzing

Fingerprint

Dive into the research topics of 'Daisy: Effective Fuzz Driver Synthesis with Object Usage Sequence Analysis'. Together they form a unique fingerprint.

Cite this