一句话:首次实证研究 Havoc 模糊测试变异策略,并提出基于多臂老虎机的 HavocMAB,显著提升边缘覆盖。
覆盖率引导模糊测试已成为自动暴露漏洞的主流。现有 fuzzer 常将随机变异策略 Havoc 作为默认选项,却未探索不同配置的潜力或改进依据。本文首次对 Havoc 进行实证研究,发现默认配置可显著提升边缘覆盖,单独运行 Havoc 亦具强覆盖表现,延长执行时间还能缩小多数 fuzzer 的性能差距。受此启发,作者提出 HavocMAB,将 Havoc 变异策略建模为多臂老虎机问题并动态调整。在基准项目上,HavocMAB 相比 Havoc 平均提升 11.1% 边缘覆盖,略优于三线程 QSYM;三线程下较 QSYM 平均边缘覆盖高 9%。
Coverage-guided fuzzing has become mainstream in fuzzing to automatically expose program vulnerabilities. Recently, a group of fuzzers are proposed to adopt a random search mechanism namely Havoc, explicitly or implicitly, to augment their edge exploration. However, they only tend to adopt the default setup of Havoc as an implementation option while none of them attempts to explore its power under diverse setups or inspect its rationale for potential improvement. In this paper, to address such issues, we conduct the first empirical study on Havoc to enhance the understanding of its characteristics. Specifically, we first find that applying the default setup of Havoc to fuzzers can significantly improve their edge coverage performance. Interestingly, we further observe that even simply executing Havoc itself without appending it to any fuzzer can lead to strong edge coverage performance and outperform most of our studied fuzzers. Moreover, we also extend the execution time of Havoc and find that most fuzzers can not only achieve significantly higher edge coverage, but also tend to perform similarly (i.e., their performance gaps get largely bridged). Inspired by the findings, we further propose HavocMAB, which models the Havoc mutation strategy as a multi-armed bandit problem to be solved by dynamically adjusting the mutation strategy. The evaluation result presents that HavocMAB can significantly increase the edge coverage by 11.1% on average for all the benchmark projects compared with Havoc and even slightly outperform state-of-the-art QSYM which augments its computing resource by adopting three parallel threads. We further execute HavocMAB with three parallel threads and result in 9% higher average edge coverage over QSYM upon all the benchmark projects.