FuzzDistill: Intelligent Fuzzing Target Selection using Compile-Time Analysis and Machine Learning

Upadhyay, Saket

arXiv.org Artificial Intelligence 

--Fuzz testing is a fundamental technique employed to identify vulnerabilities within software systems. However, the process can be protracted and resource-intensive, especially when confronted with extensive codebases. In this work, I present FuzzDistill, an approach that harnesses compile-time data and machine learning to refine fuzzing targets. By analyzing compile-time information, such as function call graphs' features, loop information, and memory operations, FuzzDistill identifies high-priority areas of the codebase that are more probable to contain vulnerabilities. I demonstrate the efficacy of my approach through experiments conducted on real-world software, demonstrating substantial reductions in testing time. Fuzz testing is a critical technique for identifying vulnerabilities in software by subjecting programs to random or semi-random inputs. As a result, large portions of the code are left unexplored, and significant vulnerabilities can go undetected.