2019 · 22 citations · 26 references
ComputingComputer EngineeringComputer ScienceNetwork SecuritySecurity ArchitectureSecurity ProtocolsFuzz TestingSoftware TestingCode CoverageCommunication ProtocolsCoverage-guided FuzzingGreybox FuzzingProtocol FuzzingStateful Fuzzing
In recent years, coverage-based greybox fuzzing has become popular forvulnerability detection due to its simplicity and efficiency. However, it is less powerful when applied directly to protocol fuzzing due to the unique challenges involved in fuzzing communication protocols. In particular, the communication among multiple ends contains more than one packet, which are not necessarily dependent upon each other, i.e., fuzzing single (usually the first) packet can only achieve extremely limited code coverage. In this paper, we study such challenges and demonstrate the limitation of current non-stateful greybox fuzzer. In order to achieve higher code coverage, we design stateful protocol fuzzing strategies for communication protocols to explore the code related to different protocol states. Our approach contains a state switching engine, together with a multi-state forkserver to consistently and flexibly fuzz different states of an compiler-instrumented protocol program. Our experimental results on OpenSSL show that our approach achieves an improvement of 73% more code coverage and 2x unique crashes when comparing against fuzzing the first packet during a protocol handshake.
26
The 26th USENIX Security Symposium 2017
Aggelos Kiayias, Thomas Zacharias, Riivo Talviste · USENIX Security Symposium · 2017 · 1.2K citations
Driller: Augmenting Fuzzing Through Selective Symbolic Execution
Nick Stephens, John Grosen, Christopher Salls et al. · 2016 · 876 citations · Full text
Marcel Böhme, Van-Thuan Pham, Manh-Dung Nguyen et al. · 2017 · 717 citations