Litcius/Paper detail

Demystify the Fuzzing Methods: A Comprehensive Survey

Sanoop Mallissery, Yu‐Sung Wu

2023ACM Computing Surveys54 citationsDOI

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.

Topics & Concepts

Fuzz testingComputer scienceSymbolic executionSoftware bugSoftwareTest caseParsingVulnerability (computing)Static analysisSecurity bugProgram comprehensionSoftware engineeringSoftware security assuranceArtificial intelligenceComputer securityMachine learningProgramming languageSoftware systemInformation securityRegression analysisSecurity serviceSoftware Testing and Debugging TechniquesSoftware Engineering ResearchAdvanced Malware Detection Techniques
Demystify the Fuzzing Methods: A Comprehensive Survey | Litcius