[论文解读] TOFU: Target-Orienter FUzzer.
TOFU 是一种面向目标的模糊测试工具,通过结合距离度量以引导输入逼近特定程序位置,并引入对输入结构的感知,从而加速漏洞检测。在 xmllint 上,与 AFLGo 相比,TOFU 实现了 28% 的目标发现速度提升和 45% 的目标覆盖度提升,证明了距离引导与结构输入感知的双重有效性。
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 集成解析器或结构感知模型,用于验证和生成符合程序允许输入格式超集的有效输入。
- 通过结合符号执行与动态污点分析,高效追踪执行路径并计算距离评分。
- 模糊测试工具通过变异和交叉操作演化输入,优先选择能降低与目标距离且保持语法正确性的输入。
实验结果
研究问题
- RQ1距离引导搜索在多大程度上提升了模糊测试中到达目标程序位置的效率?
- RQ2输入结构感知在定向模糊测试中对目标发现的增强作用有多大?
- RQ3与当前最先进的方法(如 AFLGo)相比,距离引导与结构感知的结合效果如何?
- RQ4在真实程序上使用 TOFU 时,其在速度和覆盖度方面的性能提升如何?
主要发现
- 在 xmllint 程序上,TOFU 相较于 AFLGo 实现了 28% 的目标发现速度提升。
- TOFU 比 AFLGo 多达到 45% 的目标位置,表明其在定向模糊测试中具有更优的代码覆盖率。
- 距离引导搜索与输入结构感知均对 TOFU 的性能提升有显著贡献。
- 结构化输入知识的引入减少了无效或无关输入的数量,从而提升了搜索效率。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。