FuzzerGym: A Competitive Framework for Fuzzing and Learning
William Drozd, Michael D. Wagner

TL;DR
FuzzerGym introduces a reinforcement learning-based approach to optimize fuzzing mutations, leveraging program state information for improved coverage and effectiveness across diverse benchmarks.
Contribution
It presents a novel integration of reinforcement learning with fuzzing, enabling adaptive mutation strategies based on program state data.
Findings
Achieves deeper coverage than traditional fuzzers
Demonstrates effectiveness across multiple benchmarks
Integrates RL seamlessly with existing fuzzing tools
Abstract
Fuzzing is a commonly used technique designed to test software by automatically crafting program inputs. Currently, the most successful fuzzing algorithms emphasize simple, low-overhead strategies with the ability to efficiently monitor program state during execution. Through compile-time instrumentation, these approaches have access to numerous aspects of program state including coverage, data flow, and heterogeneous fault detection and classification. However, existing approaches utilize blind random mutation strategies when generating test inputs. We present a different approach that uses this state information to optimize mutation operators using reinforcement learning (RL). By integrating OpenAI Gym with libFuzzer we are able to simultaneously leverage advancements in reinforcement learning as well as fuzzing to achieve deeper coverage across several varied benchmarks. Our…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsTeaching and Learning Programming · Software Testing and Debugging Techniques · Educational Games and Gamification
