When High-Performance Computing Meets Software Testing: Distributed Fuzzing using MPI
Pierciro Caliandro, Matteo Ciccaglione, Alessandro Pellegrini
TL;DR
The paper tackles the coordination bottleneck in distributed fuzzing by embedding MPI-based synchronization into AFL++ and evaluating multiple dissemination policies. It introduces selective, dynamic, hierarchical, and ammuina modes to optimize input-corpus exchange and reduce synchronization latency. Experimental results show improved early coverage and scalability over traditional tar/NFS-based methods, especially for ASAN-instrumented targets. The work suggests practical benefits for HPC-style fuzzing and CI/CD workflows, with future work focusing on automatic policy selection at runtime.
Abstract
This paper explores the integration of MPI-based synchronization techniques into distributed fuzzing frameworks, highlighting possible substantial performance improvements compared to traditional filesystem-based synchronization methods. By employing lightweight MPI primitives, reductions in communication latency are achieved, facilitating more efficient data exchanges across distributed fuzzing nodes. Experimental results obtained over standard benchmarks demonstrate enhanced coverage progression from the early stages of the fuzzing process, which could be beneficial if fuzzing is employed in CI/CD pipelines at any stage of software development. Furthermore, the coordinated exchange of input corpora among clusters of fuzzers effectively addresses coverage stagnation, enabling a sustained exploration of complex and deep execution paths. Overall, the adoption of MPI-based synchronization approaches shows promising potential for significantly enhancing the scalability and efficacy of distributed fuzz testing.
