Security and Communication Networks · 2013 · 14 citations · 25 references
ComputingComputer ScienceCybersecurityCompilersSyntaxVulnerability AnalysisAbstract Syntax TreesFuzz TestingParsingSoftware TestingStatic Vulnerability AnalysisSyntax AnalysisCode CoverageGrammar-based FuzzingInput FuzzingTest Cases
ABSTRACT Fuzz testing, also known as fuzzing, has long been recognized as an effective technique to detect software vulnerabilities. Unfortunately, this approach is demonstrated noneffective when applied to test programs with highly structured inputs, such as interpreters and compilers. These programs usually process inputs in several stages as lexing and parsing, where the test input will be rejected if its structure does not obey the grammar. In this paper, we present a novel approach for fuzzing highly structured input programs. By disassembling the existing test cases into multiple grammatical fragments and inferring their grammar structures, we build a new series of test cases that can pass the validation and reach the previously unexplored places in the target program. We have implemented this approach in our general fuzzing framework BlendFuzz. Experiments have shown that BlendFuzz achieves higher code coverage compared with other blackbox fuzzing tools. BlendFuzz has also detected over two dozens of previously unreported vulnerabilities in real‐world applications, with seven of them being considered high risky. Copyright © 2013 John Wiley & Sons, Ltd.
25
Patrice Godefroid, Nils Klarlund, Koushik Sen · ACM SIGPLAN Notices · 2005 · 2.1K citations
Koushik Sen, Darko Marinov, Gul Agha · 2005 · 1.7K citations
Patrice Godefroid, Nils Klarlund, Koushik Sen · 2005 · 1.5K citations