AFLNET: A Greybox Fuzzer for Network Protocols
Authors:
Top Cited Papers
- 1 October 2020
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- p. 460-465
Abstract
Server fuzzing is difficult. Unlike simple command-line tools, servers feature a massive state space that can be traversed effectively only with well-defined sequences of input messages. Valid sequences are specified in a protocol. In this paper, we present AFLNET, the first greybox fuzzer for protocol implementations. Unlike existing protocol fuzzers, AFLNET takes a mutational approach and uses state-feedback to guide the fuzzing process. AFLNET is seeded with a corpus of recorded message exchanges between the server and an actual client. No protocol specification or message grammars are required. AFLNET acts as a client and replays variations of the original sequence of messages sent to the server and retains those variations that were effective at increasing the coverage of the code or state space. To identify the server states that are exercised by a message sequence, AFLNET uses the server’s response codes. From this feedback, AFLNET identifies progressive regions in the state space, and systematically steers towards such regions. The case studies with AFLNET on two popular protocol implementations demonstrate a substantial performance boost over the state-of the-art. AFLNET discovered two new CVEs which are classified as critical (CVSS score CRITICAL 9.8).Keywords
This publication has 10 references indexed in Scilit:
- Smart Greybox FuzzingIEEE Transactions on Software Engineering, 2019
- Superion: Grammar-Aware Greybox Fuzzing2019
- NAUTILUS: Fishing for Deep Bugs with Grammars2019
- Machine Learning for Black-Box Fuzzing of Network Protocols2018
- Directed Greybox Fuzzing2017
- Coverage-based Greybox Fuzzing as Markov Chain2016
- Pulsar: Stateful Black-Box Fuzzing of Proprietary Network Protocols2015
- Prospex: Protocol Specification Extraction2009
- Tupni2008
- Polyglot2007