灰盒模糊已经成为最具可扩展性和实用性的软件测试方法。大多数灰盒模糊工具都是基于覆盖率的,因为代码覆盖率与bug覆盖率是紧密相关的。然而,由于大多数覆盖的代码可能不包含错误,盲目扩展代码覆盖的效率较低,特别是在角落的情况下。不像基于覆盖的fuzzer以一种无方向的方式扩展代码覆盖,有方向的fuzzer将大部分的时间预算花在到达特定的目标位置(例如,bug倾向区)而不会浪费资源去强调不相关的部分。因此,直接灰盒模糊特别适合于补丁测试、bug复制和特殊bug查找等场景。本文首次对定向灰盒模糊进行了深入的研究。我们调查了28个与DGF密切相关的最先进的fuzzer(82%是在2019年之后发布的),这些fuzzer有各种定向类型和优化技术。基于DGF的特征,我们提取了15个度量指标,对收集到的工具进行全面评估,并将该领域的知识系统化。最后,总结了该领域面临的挑战,并提出了该领域的展望,旨在促进和推动未来的研究。
我们调查了28个与DGF密切相关的最先进的fuzzer(82%是在2019年之后发布的),这些fuzzer有各种定向类型和优化技术。我们根据DGF的特征提取15个指标,对收集到的工具进行全面评估,并将该领域的知识系统化。-在评价已有研究成果的基础上,总结了DGF研究面临的六个挑战,包括二进制代码支持、目标自动识别、权重区分、全局最优偏差、缺少间接调用和勘探开发协调。我们揭示了这些挑战背后的深层原因,并提出了可能的解决方案。-我们对未来的发展方向进行展望,旨在促进和推动该领域的研究。
CGF与DGF的区别:种子优先级,目标的参与,勘探-