Skip to main content
QUICK REVIEW

[论文解读] TOFU: Target-Oriented FUzzer

Zi Wang, Ben Liblit|arXiv (Cornell University)|Apr 29, 2020
Parallel Computing and Optimization Techniques被引用 7
一句话总结

TOFU 是一种目标导向模糊测试工具,通过结合基于距离的搜索与基于 Protobuf 规范的输入结构感知,加速定向模糊测试。在 xmllint 上,其目标可达速度比 AFLGo 快 28%,目标覆盖范围多出 45%,通过结构化变异和路径距离启发式方法,引导输入生成精准指向程序中的特定位置。

ABSTRACT

Program fuzzing---providing randomly constructed inputs to a computer program---has proved to be a powerful way to uncover bugs, find security vulnerabilities, and generate test inputs that increase code coverage. In many applications, however, one is interested in a target-oriented approach-one wants to find an input that causes the program to reach a specific target point in the program. We have created TOFU (for Target-Oriented FUzzer) to address the directed fuzzing problem. TOFU's search is biased according to a distance metric that scores each input according to how close the input's execution trace gets to the target locations. TOFU is also input-structure aware (i.e., the search makes use of a specification of a superset of the program's allowed inputs). Our experiments on xmllint show that TOFU is 28% faster than AFLGo, while reaching 45% more targets. Moreover, both distance-guided search and exploitation of knowledge of the input structure contribute significantly to TOFU's performance.

研究动机与目标

  • 为解决标准模糊测试工具在程序中定位特定目标位置(尤其是深层代码位置)时的局限性。
  • 通过整合基于距离的引导机制与输入结构知识,改进定向模糊测试。
  • 评估基于距离的搜索与结构化变异对模糊测试整体有效性的独立贡献。
  • 提供一种可扩展、通用的解决方案,用于生成能够触发特定程序目标的输入,尤其适用于复杂或结构化输入格式的程序。
  • 为目标导向输入生成提供一种实用的替代方案,避免使用符号执行和约束求解。

提出的方法

  • TOFU 使用预先计算的程序基本块之间的距离度量,估算输入执行轨迹与目标位置的接近程度。
  • 采用反馈驱动的变异策略,优先选择距离得分较低的输入,引导模糊测试工具向目标靠近。
  • TOFU 利用基于 Protobuf 的输入规范来建模有效输入结构,支持保持语法正确性的结构化变异。
  • 通过仅修改输入的有效结构组件生成变异体,降低输入无效导致偏离目标路径的可能性。
  • 模糊测试工具维护一个种子队列,并使用结合目标距离与代码覆盖率的适应度函数,选择后续变异的输入。
  • TOFU 的设计通过将命令行参数和标志等视为结构化输入组件,支持复杂输入格式。

实验结果

研究问题

  • RQ1基于距离的搜索在 TOFU 整体有效性中,对实现目标程序位置的贡献有多大?
  • RQ2结构化变异在 TOFU 整体有效性中,对实现目标程序位置的贡献有多大?
  • RQ3TOFU 在速度和目标覆盖范围方面,与当前最先进的目标导向模糊测试工具(如 AFLGo 和 Hawkeye)相比表现如何?
  • RQ4输入结构感知与距离度量在多大程度上减少了无效输入数量,并提升了收敛到目标的速度?
  • RQ5TOFU 的方法能否有效应用于具有复杂输入格式的程序,例如使用命令行标志和结构化数据的程序?

主要发现

  • 在 xmllint 基准测试中,TOFU 的目标可达速度比 AFLGo 快 28%。
  • 在相同基准测试中,TOFU 比 AFLGo 多达到 45% 的目标位置,表明其定向搜索性能更优。
  • 基于距离的搜索与结构化变异均对 TOFU 的性能有显著贡献,消融实验表明两者各自独立提升目标覆盖范围。
  • 输入结构感知的使用减少了无效输入数量,降低了因解析失败或执行异常而浪费计算资源的情况。
  • TOFU 的距离度量提供了一种直观且可解释的接近目标程度的衡量方式,有助于调试和输入选择。
  • 即使在输入解析代码中的浅层目标上,TOFU 的表现也优于 AFLGo,表明其在各类目标类型中均具有广泛适用性。

更好的研究,从现在开始

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

无需绑定信用卡

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