Learn&Fuzz: Machine learning for input fuzzing

By Patrice Godefroid, Hila Peleg, Rishabh Singh. International Conference on Automated Software Engineering, 2017

416 citations recorded by the source corpus.

Fuzzing consists of repeatedly testing an application with modified, or fuzzed, inputs with the goal of finding security vulnerabilities in input-parsing code. In this paper, we show how to automate the generation of an input grammar suitable for input fuzzing using sample inputs and neural-network-based statistical machine-learning techniques. We present a detailed case study with a complex input format, namely PDF, and a large complex security-critical parser for this format, namely, the PDF parser embedded in Microsoft's new Edge browser. We discuss and measure the tension between conflicting learning and fuzzing goals: learning wants to capture the structure of well-formed inputs, while fuzzing wants to break that structure in order to cover unexpected code paths and find bugs. We also present a new algorithm for this learn&fuzz challenge which uses a learnt input probability distribution to intelligently guide where to fuzz inputs.

View Paper: https://www.semanticscholar.org/paper/5bd13e6313008e1555e530dda6d84c5004aa09ed

How researchers see this paper

The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.

  1. Michael Pradel
  2. Xiaogang Zhu
  3. Koushik Sen
  4. Cornelius Aschermann
  5. Chun Xia
  6. Jibesh Patra
  7. Yinlin Deng
  8. Valentin J. M. Manès

Citations in the corpus