Demystify the Fuzzing Methods: A Comprehensive Survey

Sanoop Mallissery, Yu Sung Wu*

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

2 Scopus citations

Abstract

Massive software applications possess complex data structures or parse complex data structures; in such cases, vulnerabilities in the software become inevitable. The vulnerabilities are the source of cyber-security threats, and discovering this before the software deployment is challenging. Fuzzing is a vulnerability discovery solution that resonates with random-mutation, feedback-driven, coverage-guided, constraint-guided, seed-scheduling, and target-oriented strategies. Each technique is wrapped beneath the black-, white-, and grey-box fuzzers to uncover diverse vulnerabilities. It consists of methods such as identifying structural information about the test cases to detect security vulnerabilities, symbolic and concrete program states to explore the unexplored locations, and full semantics of code coverage to create new test cases. We methodically examine each kind of fuzzers and contemporary fuzzers with a profound observation that addresses various research questions and systematically reviews and analyze the gaps and their solutions. Our survey comprised the recent related works on fuzzing techniques to demystify the fuzzing methods concerning the application domains and the target that, in turn, achieves higher code coverage and sound vulnerability detection.

Original languageEnglish
Article number3623375
JournalACM Computing Surveys
Volume56
Issue number3
DOIs
StatePublished - 5 Oct 2023

Keywords

  • Automated testing
  • code inspection
  • fuzzing
  • vulnerability discovery

Fingerprint

Dive into the research topics of 'Demystify the Fuzzing Methods: A Comprehensive Survey'. Together they form a unique fingerprint.

Cite this