覆盖引导模糊测试 (CGF) 已成为最流行和最有效的漏洞检测方法。它通常被设计为自动化的“黑盒”工具。安全审计员启动它,然后只需等待结果。然而,经过一段时间的测试,CGF 很难逐渐找到新的覆盖范围,因此效率低下。用户很难解释阻止模糊测试进一步进展的原因,也很难确定现有的覆盖范围是否足够。此外,没有办法交互和指导模糊测试过程。在本文中,我们设计了动态定向灰盒模糊测试 (DDGF),以促进用户和模糊测试器之间的协作。通过利用 Ball-Larus 路径分析算法,我们提出了两种新技术:动态自省和动态方向。动态自省通过编码和解码揭示了路径频率分布的显著不平衡。基于自省的洞察力,用户可以动态地指导模糊测试器实时将测试重点放在选定的路径上。我们基于 AFL++ 实现 DDGF。在 Magma 上的实验表明,DDGF 能够有效帮助模糊测试器更快地重现漏洞,速度提升高达 100 倍,而性能开销仅为 13%。DDGF 展示了人在回路中模糊测试的巨大潜力。
主要关键词