Angora: Efficient Fuzzing by Principled Search
Peng Chen, Hao Chen

TL;DR
Angora is a novel mutation-based fuzzer that significantly improves software testing efficiency by increasing branch coverage through innovative constraint-solving techniques without relying on symbolic execution.
Contribution
It introduces scalable byte-level taint tracking, context-sensitive branch counting, gradient descent search, and input length exploration to enhance fuzzing performance.
Findings
Found almost all injected bugs in LAVA-M dataset
Detected more bugs than existing fuzzers in multiple programs
Achieved higher branch coverage and bug detection rates
Abstract
Fuzzing is a popular technique for finding software bugs. However, the performance of the state-of-the-art fuzzers leaves a lot to be desired. Fuzzers based on symbolic execution produce quality inputs but run slow, while fuzzers based on random mutation run fast but have difficulty producing quality inputs. We propose Angora, a new mutation-based fuzzer that outperforms the state-of-the-art fuzzers by a wide margin. The main goal of Angora is to increase branch coverage by solving path constraints without symbolic execution. To solve path constraints efficiently, we introduce several key techniques: scalable byte-level taint tracking, context-sensitive branch count, search based on gradient descent, and input length exploration. On the LAVA-M data set, Angora found almost all the injected bugs, found more bugs than any other fuzzer that we compared with, and found eight times as many…
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.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Testing and Debugging Techniques · Software Engineering Research · Advanced Malware Detection Techniques
