Evolutionary Grammar-Based Fuzzing

08/03/2020
by   Martin Eberlein, et al.
0

A fuzzer provides randomly generated inputs to a targeted software to expose erroneous behavior. To efficiently detect defects, generated inputs should conform to the structure of the input format and thus, grammars can be used to generate syntactically correct inputs. In this context, fuzzing can be guided by probabilities attached to competing rules in the grammar, leading to the idea of probabilistic grammar-based fuzzing. However, the optimal assignment of probabilities to individual grammar rules to effectively expose erroneous behavior for individual systems under test is an open research question. In this paper, we present EvoGFuzz, an evolutionary grammar-based fuzzing approach to optimize the probabilities to generate test inputs that may be more likely to trigger exceptional behavior. The evaluation shows the effectiveness of EvoGFuzz in detecting defects compared to probabilistic grammar-based fuzzing (baseline). Applied to ten real-world applications with common input formats (JSON, JavaScript, or CSS3), the evaluation shows that EvoGFuzz achieved a significantly larger median line coverage for all subjects by up to 48 compared to the baseline. Moreover, EvoGFuzz managed to expose 11 unique defects, from which five have not been detected by the baseline.

READ FULL TEXT

page 1

page 2

page 3

page 4

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
10/18/2018

Sample-Free Learning of Input Grammars for Comprehensive Software Fuzzing

Generating valid test inputs for a program is much easier if one knows t...
research
04/19/2022

Co-evolutionary Probabilistic Structured Grammatical Evolution

This work proposes an extension to Structured Grammatical Evolution (SGE...
research
04/04/2023

Token-Level Fuzzing

Fuzzing has become a commonly used approach to identifying bugs in compl...
research
10/10/2018

Leveraging Textual Specifications for Grammar-based Fuzzing of Network Protocols

Grammar-based fuzzing is a technique used to find software vulnerabiliti...
research
10/28/2022

AGReE: A system for generating Automated Grammar Reading Exercises

We describe the AGReE system, which takes user-submitted passages as inp...
research
03/11/2023

Verbal behavior without syntactic structures: beyond Skinner and Chomsky

What does it mean to know language? Since the Chomskian revolution, one ...

Please sign up or login with your details

Forgot password? Click here to reset