Full-speed Fuzzing: Reducing Fuzzing Overhead through Coverage-guided Tracing (SP 2019)
基于覆盖率反馈(Coverage-guided)的Fuzzing是漏洞挖掘的重要方式之一。其中,对覆盖率情况的追踪(Code Coverage Tracing)对Fuzzer性能负载的影响最大。Fuzzer每次执行一个测试用例都会追踪当前代码覆盖率情况,但是大部分测试用例并不会产生新的覆盖率,反而对Fuzzer的执行效率产生了影响。
基于两点观察,本文提出了UnTracer:
- 只有一部分测试用例能够触发新的覆盖率,即需要进行Tracing;
- 经过长时间的Fuzzing后,能触发新覆盖率的测试用例会大幅减少。
UnTracer的Tracing过程如下图所示。
UnTracer的工作流程如下图所示。
论文代码已开源