GRIMOIRE: Synthesizing Structure while Fuzzing
GRIMOIRE: Synthesizing Structure while Fuzzing
复制标题
DOI:
--
复制
发表时间:
2019
期刊:
影响因子:
--
通讯作者:
Tim Blazytko;Cornelius Aschermann;Moritz Schlögel;A. Abbasi;Sergej Schumilo;Simon Wörner;Thorsten Holz
中科院分区:
文献类型:
--
作者:
Tim Blazytko;Cornelius Aschermann;Moritz Schlögel;A. Abbasi;Sergej Schumilo;Simon Wörner;Thorsten Holz
In the past few years, fuzzing has received significant attention from the research community. However, most of this attention was directed towards programs without a dedicated parsing stage. In such cases, fuzzers which leverage the input structure of a program can achieve a significantly higher code coverage compared to traditional fuzzing approaches. This advancement in coverage is achieved by applying large-scale mutations in the application’s input space. However, this improvement comes at the cost of requiring expert domain knowledge, as these fuzzers depend on structure input specifications (e. g., grammars). Grammar inference, a technique which can automatically generate such grammars for a given program, can be used to address this shortcoming. Such techniques usually infer a program’s grammar in a pre-processing step and can miss important structures that are uncovered only later during normal fuzzing. In this paper, we present the design and implementation of GRIMOIRE, a fully automated coverage-guided fuzzer which works without any form of human interaction or preconfiguration; yet, it is still able to efficiently test programs that expect highly structured inputs. We achieve this by performing large-scale mutations in the program input space using grammar-like combinations to synthesize new highly structured inputs without any pre-processing step. Our evaluation shows that GRIMOIRE outperforms other coverageguided fuzzers when fuzzing programs with highly structured inputs. Furthermore, it improves upon existing grammarbased coverage-guided fuzzers. Using GRIMOIRE, we identified 19 distinct memory corruption bugs in real-world programs and obtained 11 new CVEs.