本文提出了一种名为PATA的模糊测试工具,其核心创新在于实现了路径感知的污点分析技术。传统污点分析在处理真实程序中的循环结构时,难以区分同一变量在循环中多次出现的约束条件。PATA通过以下步骤解决该问题:首先,识别约束中使用的变量,并构建代表变量序列(RVS),该序列包含所有代表性约束变量的出现及其值;其次,扰动输入,将扰动后的RVS与原始RVS匹配,通过值变化识别影响每个RVS条目的输入字节;最后,变异对应的输入字节以求解给定路径上的约束。实验在Google的fuzzer-test-suite、LAVA-M以及多个开源项目上评估,与AFL、MOPT、TortoriseFuzz、VUzzer、Angora、Redqueen和Greyone等先进模糊测试工具对比。在Google测试套件上,PATA发现的唯一路径数量和覆盖的基本块数量分别比其他领先模糊测试工具高出29%–1830%和7%–87%,并发现了更多漏洞,包括17个未列出的漏洞。在LAVA-M上,PATA在所有评估的模糊测试工具中表现最佳,发现了2602个漏洞。在开源项目中,PATA发现了40个以前未知的漏洞,其中12个已确认为CVE。
💡 推荐理由: 该研究提出了一种新颖的路径感知污点分析方法,显著提升了模糊测试在复杂程序(尤其是含循环结构)中的约束求解能力和漏洞发现效率,对改进模糊测试技术有重要参考价值。
🎯 建议动作: 研究跟进