EcoFuzz: Adaptive Energy Saving Greybox Fuzzing as a Variant of the Adversarial Multi Armed Bandit
Fuzzing is one of the most effective approaches for identifying security vulnerabilities. As a state of the art coverage based greybox fuzzer, AFL is a highly effective and widely used technique. However, AFL allocates excessive energy (i.e. the number of test cases generated by the seed) to seeds that exercise the high frequency paths and can not adaptively adjust the energy allocation, thus wasting a significant amount of energy. Moreover, the current Markov model for modeling coverage based greybox fuzzing is not profound enough. This paper presents a variant of the Adversarial Multi Armed Bandit model for modeling AFL's power schedule process. We first explain the challenges in AFL's scheduling algorithm by using the reward probability that generates a test case for discovering a new path. Moreover, we illustrated the three states of the seeds set and developed a unique adaptive scheduling algorithm as well as a probability based search strategy. These approaches are implemented on top of AFL in an adaptive energy saving greybox fuzzer called EcoFuzz. EcoFuzz is examined against other six AFL type tools on 14 real world subjects over 490 CPU days. According to the results, EcoFuzz could attain 214% of the path coverage of AFL with reducing 32% test cases generation of that of AFL. Besides, EcoFuzz identified 12 vulnerabilities in GNU Binutils and other software. We also extended EcoFuzz to test some IoT devices and found a new vulnerability in the SNMP component.
USENIX Security Symposium