EnFuzz:基于多样化模糊测试器间种子同步的集成模糊测试
软件工程
2019-05-07 v2
摘要
模糊测试被广泛用于软件漏洞检测。现有各类模糊测试器采用不同的模糊测试策略,且多数在其目标程序上表现良好。然而在工业实践和实证研究中,这些精心设计的模糊测试策略的性能与泛化能力受到现实应用复杂性与多样性的挑战。本文受集成学习思想启发,首次提出一种集成模糊测试方法 EnFuzz,它融合多种模糊测试策略,以获得优于任一单一组成模糊测试器的性能与泛化能力。首先,我们定义了基础模糊测试器的多样性,并选取近期最先进且设计精良的模糊测试器作为基础模糊测试器。随后,EnFuzz 通过种子同步与结果集成机制对这些基础模糊测试器进行集成。为评估效果,我们实现了 EnFuzz 这一基于四个强开源模糊测试器(AFL、AFLFast、AFLGo、FairFuzz)的原型,并在由广泛使用的现实应用组成的 Google 模糊测试套件上对其进行测试。24 小时实验表明,在资源消耗相同的情况下,这四个基础模糊测试器在不同应用上表现各异,而 EnFuzz 展现出更好的泛化能力,并在路径覆盖、分支覆盖与崩溃发现方面始终优于其他测试器。即便与 AFL、AFLFast、AFLGo 和 FairFuzz 的最优情况相比,EnFuzz 分别多发现 26.8%、117%、38.8% 和 39.5% 的独特崩溃,多执行 9.16%、39.2%、19.9% 和 20.0% 的路径,并多覆盖 5.96%、12.0%、21.4% 和 11.1% 的分支。
引用
@article{arxiv.1807.00182,
title = {EnFuzz: Ensemble Fuzzing with Seed Synchronization among Diverse Fuzzers},
author = {Yuanliang Chen and Yu Jiang and Fuchen Ma and Jie Liang and Mingzhe Wang and Chijin Zhou and Zhuo Su and Xun Jiao},
journal= {arXiv preprint arXiv:1807.00182},
year = {2019}
}
备注
18 pages, 11 figures