一句话:在Contiki-NG上长期使用多种模糊测试器发现并修复网络栈漏洞,并构建开源缺陷套件公正评估其效果与sanitizer影响。
模糊测试广泛用于发现崩溃与安全漏洞;工具众多且持续提升,但缺乏在真实漏洞上的公正评估。作者历时三年多,将 AFL、Angora、Honggfuzz、Intriguer、MOpt-AFL、QSym、SymCC 等基于变异与混合的先进模糊测试器用于 Contiki-NG,发现并修复其网络协议栈多个层面的严重漏洞。作为副产物,他们构建基于 Git 的平台,发布颇具挑战性的开源缺陷套件,用于在真实漏洞上评估模糊测试器。基于该套件,论文广泛公正地评测这些工具的有效性,测量 sanitizer 的影响,并总结未来使用与评估建议。
Fuzz testing (“fuzzing”) is a widely-used and effective dynamic technique to discover crashes and security vulnerabilities in software, supported by numerous tools, which keep improving in terms of their detection capabilities and speed of execution. In this paper, we report our findings from using state-of-the-art mutation-based and hybrid fuzzers (AFL, Angora, Honggfuzz, Intriguer, MOpt-AFL, QSym, and SymCC) on a non-trivial code base, that of Contiki-NG, to expose and fix serious vulnerabilities in various layers of its network stack, during a period of more than three years. As a by-product, we provide a Git-based platform which allowed us to create and apply a new, quite challenging, open-source bug suite for evaluating fuzzers on real-world software vulnerabilities. Using this bug suite, we present an impartial and extensive evaluation of the effectiveness of these fuzzers, and measure the impact that sanitizers have on it. Finally, we offer our experiences and opinions on how fuzzing tools should be used and evaluated in the future.