VUzzer: Application-aware Evolutionary Fuzzing

Sanjay Rawat, Vivek Jain, Ashish Kumar, Lucian Cojocar, Cristiano Giuffrida, Herbert Bos

Research output: Chapter in Book / Report / Conference proceedingChapterAcademicpeer-review

846 Downloads (Pure)

Abstract

Fuzzing is an effective software testing technique to find bugs. Given the size and complexity of real-world applications, modern fuzzers tend to be either scalable, but not effective in exploring bugs that lie deeper in the execution, or capable of penetrating deeper in the application, but not scalable.

In this paper, we present an application-aware evolutionary fuzzing strategy that does not require any prior knowledge of the application or input format. In order to maximize coverage and explore deeper paths, we leverage control- and data-flow features based on static and dynamic analysis to infer fundamental properties of the application. This enables much faster generation of interesting inputs compared to an application-agnostic approach. We implement our fuzzing strategy in VUzzer and evaluate it on three different datasets: DARPA Grand Challenge binaries (CGC), a set of real-world applications (binary input parsers), and the recently released LAVA dataset. On all of these datasets, VUzzer yields significantly better results than state-of-the-art fuzzers, by quickly finding several existing and new bugs.
Original languageEnglish
Title of host publication2017 Network and Distributed System Security (NDSS) Symposium
Subtitle of host publication[Proceedings]
PublisherInternet Society
Pages1-14
Number of pages14
ISBN (Electronic)1891562460, 9781891562464
ISBN (Print)1891562460
DOIs
Publication statusPublished - 2017

Funding

We would like to thank the anonymous reviewers for their comments. We would also like to thank the LAVA team for sharing the LAVA corpus privately with us much before the official public release. This work was supported by the European Commission through project H2020 ICT-32-2014 SHARCS under Grant Agreement No. 644571 and by the Netherlands Organisation for Scientific Research through grants NWO 639.023.309 VICI Dowsing and NWO 628.001.006 CYBSEC OpenSesame.

FundersFunder number
European Commission644571, H2020 ICT-32-2014
Nederlandse Organisatie voor Wetenschappelijk Onderzoek628.001.006, 639.023.309

    Fingerprint

    Dive into the research topics of 'VUzzer: Application-aware Evolutionary Fuzzing'. Together they form a unique fingerprint.

    Cite this