可满足性模理论 (SMT) 求解器是许多技术的核心引擎,例如符号执行。因此,确保 SMT 求解器的稳健性和正确性至关重要。虽然模糊测试是一种确保 SMT 求解器质量的有效方法,但我们观察到之前的模糊测试工作仅侧重于生成各种一阶公式作为输入,而忽略了 SMT 求解器的算法配置空间,这导致许多深藏不露的错误未被及时报告。在本文中,我们提出了 Falcon,一种同时探索公式空间和配置空间的模糊测试技术。将这两个空间结合起来会显著扩大搜索空间,使有效检测错误变得更加困难。我们通过利用两个空间之间的相关性来减少搜索空间,并引入自适应变异策略来提高搜索效率,从而解决了这个问题。经过六个月的广泛测试,Falcon 在两款最先进的 SMT 求解器 CVC4 和 Z3 中发现了 518 个已确认的错误,其中 469 个已经修复。与两款最先进的模糊测试器相比,Falcon 在 24 小时的测试中检测到了 38 个和 44 个以上的错误,并且覆盖率大幅提高。
摘要 — RTL 验证中的一个关键挑战是生成有效的测试输入。最近,RFUZZ 提出使用一种自动化软件测试技术,即灰盒模糊测试,来有效地生成测试输入,以最大限度地提高整个硬件设计的覆盖率。对于需要测试大型硬件设计的一小部分的情况,RFUZZ 方法非常耗时。在这项工作中,我们提出了一种定向测试生成机制 DirectFuzz。DirectFuzz 使用定向灰盒模糊测试生成针对模块实例的测试输入,从而实现有针对性的测试。我们的实验结果表明,在各种 RTL 设计上,DirectFuzz 覆盖目标站点的速度比 RFUZZ 快 17.5 倍(平均 2.23 倍)。索引术语 —灰盒模糊测试、RTL 验证、覆盖定向测试生成、RISC-V I. 介绍
通过利用其他信息,例如(部分)错误堆栈跟踪,补丁或风险操作的操作,的指示模糊着重于自动测试代码的特定部分。 关键应用程序包括错误复制,补丁测试和静态分析报告验证。 最近有指示的模糊引起了很多关注,但诸如无用后(UAF)之类的难以检测的漏洞仍未得到很好的解决,尤其是在二进制层面上。 我们提出了UAF UZZ,这是第一个(二进制级)定向的灰色fuzzer,该灰盒源自UAF错误。 该技术采用了针对UAF指定的量身定制的模糊引擎,轻质代码仪器和有效的错误分类步骤。 对实际情况的错误复制的实验评估表明,就故障检测率,暴露时间和虫子三叶虫的时间而言,UAZ的UZZ明显优于最先进的指示fuzz。 uaf uzz也已被证明在补丁测试中有效,从而在Perl,GPAC和GNU补丁等程序中发现了30个新错误(7 CVE)。 最后,我们向社区提供了一个巨大的模糊基准,该基准专用于UAF,并建立在真实的代码和实际错误上。的指示模糊着重于自动测试代码的特定部分。关键应用程序包括错误复制,补丁测试和静态分析报告验证。最近有指示的模糊引起了很多关注,但诸如无用后(UAF)之类的难以检测的漏洞仍未得到很好的解决,尤其是在二进制层面上。我们提出了UAF UZZ,这是第一个(二进制级)定向的灰色fuzzer,该灰盒源自UAF错误。该技术采用了针对UAF指定的量身定制的模糊引擎,轻质代码仪器和有效的错误分类步骤。对实际情况的错误复制的实验评估表明,就故障检测率,暴露时间和虫子三叶虫的时间而言,UAZ的UZZ明显优于最先进的指示fuzz。uaf uzz也已被证明在补丁测试中有效,从而在Perl,GPAC和GNU补丁等程序中发现了30个新错误(7 CVE)。最后,我们向社区提供了一个巨大的模糊基准,该基准专用于UAF,并建立在真实的代码和实际错误上。
