EvilCoder: Automated Bug Insertion
Jannik Pewny, Thorsten Holz

TL;DR
EvilCoder is a system that automatically identifies vulnerable code locations and modifies them to insert exploitable bugs, creating a diverse set of test cases for evaluating bug-finding techniques.
Contribution
It introduces a novel automated approach to generate intentionally vulnerable code by modifying existing software, aiding in the evaluation of security analysis tools.
Findings
Found hundreds of potential bugs in open-source projects
Generated diverse vulnerable code samples for testing
Enabled comprehensive evaluation of bug-finding techniques
Abstract
The art of finding software vulnerabilities has been covered extensively in the literature and there is a huge body of work on this topic. In contrast, the intentional insertion of exploitable, security-critical bugs has received little (public) attention yet. Wanting more bugs seems to be counterproductive at first sight, but the comprehensive evaluation of bug-finding techniques suffers from a lack of ground truth and the scarcity of bugs. In this paper, we propose EvilCoder, a system to automatically find potentially vulnerable source code locations and modify the source code to be actually vulnerable. More specifically, we leverage automated program analysis techniques to find sensitive sinks which match typical bug patterns (e.g., a sensitive API function with a preceding sanity check), and try to find data-flow connections to user-controlled sources. We then transform the source…
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
TopicsSoftware Engineering Research · Software Reliability and Analysis Research · Software Testing and Debugging Techniques
