Skip to main content
QUICK REVIEW

[论文解读] PTrix: Efficient Hardware-Assisted Fuzzing for COTS Binary

Yaohui Chen, Dongliang Mu|arXiv (Cornell University)|May 25, 2019
Software Testing and Debugging Techniques参考文献 25被引用 9
一句话总结

PTrix 是一种硬件辅助模糊测试工具,利用英特尔处理器跟踪(PT)加速仅二进制文件的模糊测试,绕过动态插桩带来的性能瓶颈。通过实现并行跟踪解析并直接使用原始 PT 数据包作为反馈信号(而非重建代码覆盖率),PTrix 显著提升了模糊测试速度,在已充分模糊测试的二进制文件中发现了 35 个新漏洞,其中包括 11 个 CVE。

ABSTRACT

Despite its effectiveness in uncovering software defects, American Fuzzy Lop (AFL), one of the best grey-box fuzzers, is inefficient when fuzz-testing source-unavailable programs. AFL's binary-only fuzzing mode, QEMU-AFL, is typically 2-5X slower than its source-available fuzzing mode. The slowdown is largely caused by the heavy dynamic instrumentation. Recent fuzzing techniques use Intel Processor Tracing (PT), a light-weight tracing feature supported by recent Intel CPUs, to remove the need of dynamic instrumentation. However, we found that these PT-based fuzzing techniques are even slower than QEMU-AFL when fuzzing real-world programs, making them less effective than QEMU-AFL. This poor performance is caused by the slow extraction of code coverage information from highly compressed PT traces. In this work, we present the design and implementation of PTrix, which fully unleashes the benefits of PT for fuzzing via three novel techniques. First, PTrix introduces a scheme to highly parallel the processing of PT trace and target program execution. Second, it directly takes decoded PT trace as feedback for fuzzing, avoiding the expensive reconstruction of code coverage information. Third, PTrix maintains the new feedback with stronger feedback than edge-based code coverage, which helps reach new code space and defects that AFL may not. We evaluated PTrix by comparing its performance with the state-of-the-art fuzzers. Our results show that, given the same amount of time, PTrix achieves a significantly higher fuzzing speed and reaches into code regions missed by the other fuzzers. In addition, PTrix identifies 35 new vulnerabilities in a set of previously well-fuzzed binaries, showing its ability to complement existing fuzzers.

研究动机与目标

  • 解决现有硬件辅助模糊测试工具依赖 PT 跟踪解码与代码覆盖率重建所导致的性能下降问题。
  • 克服 QEMU-AFL 在仅二进制文件模糊测试中因动态插桩导致的效率低下问题,该问题使模糊测试速度降低 2–5 倍。
  • 设计一种系统,充分利用英特尔 PT 的低开销跟踪能力,实现对源代码不可用二进制文件的高速、路径敏感模糊测试。
  • 通过使用原始 PT 数据包作为输入引导反馈,改进代码覆盖率反馈机制,实现比基于边界的覆盖率更优的路径探索能力。
  • 在真实世界二进制文件中,相比最先进模糊测试工具,实现更优越的漏洞发现能力。

提出的方法

  • 提出一种并行、弹性化的跟踪解析方案,将 PT 跟踪处理与目标程序执行解耦,通过并发线程在程序运行时同时解析跟踪数据。
  • 实现一种边界更新机制,动态调整执行窗口以确保及时更新跟踪边界,防止解析线程落后。
  • 将传统的基于边界的代码覆盖率反馈替换为一种兼容 PT 的反馈机制,直接将解码后的 PT 数据包流编码为模糊测试反馈。
  • 使用原始 PT 跟踪流作为路径敏感的反馈信号,相比基于边界的覆盖率,能提供更精确、更具信息量的引导,以探索新的代码路径。
  • 将新型反馈机制集成到经过修改的类似 AFL 的模糊测试架构中,以保持与现有模糊测试工作流的兼容性。
  • 通过最小化中间重建步骤,优化系统以实现低延迟跟踪处理与高吞吐量模糊测试。

实验结果

研究问题

  • RQ1英特尔处理器跟踪(PT)能否用于消除仅二进制文件模糊测试中动态插桩带来的性能开销?
  • RQ2为何现有基于 PT 的模糊测试工具尽管使用硬件跟踪,性能仍不如 QEMU-AFL?
  • RQ3原始 PT 数据包流能否作为有效且高效的反馈机制用于模糊测试,从而绕过代码覆盖率重建过程?
  • RQ4基于 PT 跟踪的路径敏感反馈是否相比基于边界的反馈,能提升代码覆盖率与漏洞发现能力?
  • RQ5PTrix 是否能在真实世界商用现成(COTS)二进制文件上,同时在速度与缺陷发现能力上超越最先进模糊测试工具?

主要发现

  • PTrix 的模糊测试速度显著高于 QEMU-AFL,性能提升主要归因于消除了动态插桩的开销。
  • 原始 PT 数据包反馈机制降低了反馈计算成本,相比需重建代码覆盖率的系统,实现了更快、更响应迅速的模糊测试。
  • PTrix 有效探索了其他模糊测试工具未能触及的代码区域,包括在已充分模糊测试的二进制文件中此前未知的路径。
  • 该系统在一组商用现成(COTS)二进制文件中发现了 35 个新漏洞,其中 11 个已获得 CVE 标识符。
  • 并行、弹性化的跟踪解析方案有效缓解了跟踪边界更新延迟问题,确保了解析线程的高效利用。
  • PTrix 在模糊测试吞吐量与代码覆盖率覆盖范围方面,均优于 QEMU-AFL 和其他基于 PT 的模糊测试工具(如 kAFL、PTFuzz)。

更好的研究,从现在开始

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

无需绑定信用卡

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