Skip to main content
QUICK REVIEW

[论文解读] EnFuzz: From Ensemble Learning to Ensemble Fuzzing.

Yuanliang Chen, Yu Jiang|arXiv (Cornell University)|Jun 30, 2018
Software Testing and Debugging Techniques被引用 10
一句话总结

EnFuzz 提出了一种集成模糊测试框架,通过种子同步和结果整合,将多个最先进的模糊测试工具——AFL、AFLFast、AFLGo 和 FairFuzz——组合起来,以提升路径覆盖、分支覆盖和崩溃发现能力。在 Google 的真实世界测试套件上进行的 24 小时评估中,EnFuzz 超过了所有独立模糊测试工具,发现的唯一崩溃数量比表现最佳的模糊测试工具(AFLFast)多出 117%,并在多种应用程序中显著提升了覆盖范围和崩溃检测能力。

ABSTRACT

Fuzzing is widely used for software vulnerability detection. There are various kinds of fuzzers with different fuzzing strategies, and most of them perform well on their targets. However, in industry practice and empirical study, the performance and generalization ability of those well-designed fuzzing strategies are challenged by the complexity and diversity of real-world applications. In this paper, inspired by the idea of ensemble learning, we first propose an ensemble fuzzing approach EnFuzz, that integrates multiple fuzzing strategies to obtain better performance and generalization ability than that of any constituent fuzzer alone. First, we define the diversity of the base fuzzers and choose those most recent and well-designed fuzzers as base fuzzers. Then, EnFuzz ensembles those base fuzzers with seed synchronization and result integration mechanisms. For evaluation, we implement EnFuzz , a prototype basing on four strong open-source fuzzers (AFL, AFLFast, AFLGo, FairFuzz), and test them on Google's fuzzing test suite, which consists of widely used real-world applications. The 24-hour experiment indicates that, with the same resources usage, these four base fuzzers perform variously on different applications, while EnFuzz shows better generalization ability and always outperforms others in terms of path coverage, branch coverage and crash discovery. Even compared with the best cases of AFL, AFLFast, AFLGo and FairFuzz, EnFuzz discovers 26.8%, 117%, 38.8% and 39.5% more unique crashes, executes 9.16%, 39.2%, 19.9% and 20.0% more paths and covers 5.96%, 12.0%, 21.4% and 11.1% more branches respectively.

研究动机与目标

  • 解决单一模糊测试策略在真实世界复杂软件系统中泛化能力有限的问题。
  • 通过利用集成学习原理,克服独立模糊测试工具在多样化应用程序中性能波动的问题。
  • 设计一个统一的模糊测试框架,整合多个高性能模糊测试工具,以实现更优的整体漏洞检测能力。
  • 在相同资源约束下,相比单一模糊测试工具,提升路径覆盖、分支覆盖和崩溃发现率。

提出的方法

  • 基于设计和性能,选择四个近期高性能的开源模糊测试工具——AFL、AFLFast、AFLGo 和 FairFuzz——作为基础模糊测试工具。
  • 定义并度量模糊测试策略的多样性,以确保基础模糊测试工具之间行为互补。
  • 实现种子同步,使基础模糊测试工具之间共享输入种子,从而实现跨模糊测试工具的学习与探索。
  • 应用结果整合,聚合并优先处理来自所有基础模糊测试工具发现的路径、分支和崩溃。
  • 使用统一的执行流水线,协调基础模糊测试工具的并发运行,实现输入同步和输出共享追踪。
  • 在相同资源使用条件下评估集成系统,以确保与独立模糊测试工具的公平比较。

实验结果

研究问题

  • RQ1通过集成学习技术组合多种多样化且高性能的模糊测试策略,是否能提升在真实世界应用程序中的泛化能力?
  • RQ2与独立模糊测试工具相比,EnFuzz 的集成方法在路径覆盖和分支覆盖方面表现如何?
  • RQ3与表现最佳的独立模糊测试工具相比,EnFuzz 在崩溃发现方面提升了多少?
  • RQ4种子同步和结果整合是否能提升集成系统的探索效率和漏洞检测能力?

主要发现

  • EnFuzz 发现的唯一崩溃数量比本研究中表现最佳的独立模糊测试工具 AFL 多出 26.8%。
  • EnFuzz 发现的唯一崩溃数量比 AFLFast 多出 117%,在崩溃检测方面显著优于其表现。
  • EnFuzz 的路径覆盖比 AFLGo 高 19.9%,比 FairFuzz 高 20.0%。
  • EnFuzz 的分支覆盖比 AFLGo 多 21.4%,比 FairFuzz 多 11.1%,展现出更优的代码覆盖能力。
  • EnFuzz 在 Google 的真实世界测试套件上,所有指标——路径覆盖、分支覆盖和崩溃发现——均持续优于所有独立的基础模糊测试工具。
  • 集成方法展现出强大的泛化能力,在各种应用程序中保持了卓越性能,而独立模糊测试工具在不同应用中表现差异显著。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。