SnapFuzz: An Efficient Fuzzing Framework for Network Applications

01/11/2022
by   Anastasios Andronidis, et al.
0

In recent years, fuzz testing has benefited from increased computational power and important algorithmic advances, leading to systems that have discovered many critical bugs and vulnerabilities in production software. Despite these successes, not all applications can be fuzzed efficiently. In particular, stateful applications such as network protocol implementations are constrained by their low fuzzing throughput and the need to develop fuzzing harnesses that reset their state and isolate their side effects. In this paper, we present SnapFuzz, a novel fuzzing framework for network applications. SnapFuzz offers a robust architecture that transforms slow asynchronous network communication into fast synchronous communication based on UNIX domain sockets, speeds up all file operations by redirecting them to an in-memory filesystem, and removes the need for many fragile modifications, such as configuring time delays or writing cleanup scripts, together with several other improvements. Using SnapFuzz, we fuzzed five popular networking applications: LightFTP, Dnsmasq, LIVE555, TinyDTLS and Dcmqrscp. We report impressive performance speedups of 72.4x, 49.7x, 24.8x, 23.9x, and 8.5x, respectively, with significantly simpler fuzzing harnesses in all cases. Through its performance advantage, SnapFuzz has also found 12 previously-unknown crashes in these applications.

READ FULL TEXT
research
04/12/2022

Finding and Analyzing Crash-Consistency Bugs in Persistent-Memory File Systems

We present a study of crash-consistency bugs in persistent-memory (PM) f...
research
12/31/2019

Logic Bugs in IoT Platforms and Systems: A Review

In recent years, IoT platforms and systems have been rapidly emerging. A...
research
01/17/2023

Ember-IO: Effective Firmware Fuzzing with Model-Free Memory Mapped IO

Exponential growth in embedded systems is driving the research imperativ...
research
06/27/2023

Automated Fuzzing Harness Generation for Library APIs and Binary Protocol Parsers

Fuzzing is a widely used software security testing technique that is des...
research
02/12/2021

Asynchronous Gossip in Smartphone Peer-to-Peer Networks

In this paper, we study gossip algorithms in communication models that d...
research
05/22/2023

POSTER: spaceQUIC: Securing Communication in Computationally Constrained Spacecraft

Recent years have seen a rapid increase in the number of CubeSats and ot...

Please sign up or login with your details

Forgot password? Click here to reset