Sample-Free Learning of Input Grammars for Comprehensive Software Fuzzing

10/18/2018
by   Rahul Gopinath, et al.
0

Generating valid test inputs for a program is much easier if one knows the input language. We present first successes for a technique that, given a program P without any input samples or models, learns an input grammar that represents the syntactically valid inputs for P -- a grammar which can then be used for highly effective test generation for P . To this end, we introduce a test generator targeted at input parsers that systematically explores parsing alternatives based on dynamic tracking of constraints; the resulting inputs go into a grammar learner producing a grammar that can then be used for fuzzing. In our evaluation on subjects such as JSON, URL, or Mathexpr, our PYGMALION prototype took only a few minutes to infer grammars and generate thousands of valid high-quality inputs.

READ FULL TEXT

page 1

page 2

page 3

page 4

page 5

page 6

research
12/18/2018

Inputs from Hell Generating Uncommon Inputs from Common Samples

Generating structured input files to test programs can be performed by t...
research
12/12/2019

Inferring Input Grammars from Dynamic Control Flow

A program is characterized by its input model, and a formal input model ...
research
11/18/2019

Building Fast Fuzzers

Fuzzing is one of the key techniques for evaluating the robustness of pr...
research
08/03/2020

Evolutionary Grammar-Based Fuzzing

A fuzzer provides randomly generated inputs to a targeted software to ex...
research
08/29/2017

Active Learning of Input Grammars

Knowing the precise format of a program's input is a necessary prerequis...
research
04/04/2023

Token-Level Fuzzing

Fuzzing has become a commonly used approach to identifying bugs in compl...
research
05/25/2017

Neural Attribute Machines for Program Generation

Recurrent neural networks have achieved remarkable success at generating...

Please sign up or login with your details

Forgot password? Click here to reset