新提交的提交容易将漏洞引入程序。作为一种有前途的对策,可以使用定向灰盒模糊测试器通过将提交更改位置指定为目标来测试提交更改。但是,现有的定向模糊测试器主要侧重于达到单个目标,而忽略了对其他受影响代码的多样化探索。因此,它们可能会忽略在远离更改位置的位置崩溃的错误,并且在多目标场景中缺乏直接性,这在提交测试的背景下都很常见。在本文中,我们提出了一种直接灰盒模糊测试器 WAFLG O ,以有效发现提交引入的漏洞。WAFLGO 采用一种新颖的关键代码引导输入生成策略来彻底探索受影响的代码。具体而言,我们确定了两种类型的关键代码:路径前缀代码和数据后缀代码。关键代码首先引导输入生成逐渐、增量地到达更改位置。然后,在保持关键代码可达性的同时,输入生成策略进一步鼓励在探索受影响代码时生成输入的多样性。此外,WAFLGO 引入了一种轻量级多目标距离度量,用于直接和彻底检查所有更改点。我们实现了 WAFLG O,并使用提交引入的 30 个真实错误对其进行了评估。与 8 种最先进的工具相比,WAFLGO 实现了平均 10.3 × 的加速。此外,WAFLGO 在测试最近 50 次提交的真实软件(包括 libtiff、fig2dev 和 libming 等)时发现了 7 个新漏洞,其中包括 4 个 CVE。
近年来,协作模糊已成为一种有效而有效的方法来发现软件漏洞。这种协作方法利用了多个模糊器的优势来增强模糊过程的总体功效。这种方法的显着例子[1-4]包括诸如Autofz [3]之类的项目,该项目结合了11种不同的模糊剂的集体努力和Pastis [1],这是SBFT23竞争中展示的三个模糊剂的组合。这些举措证明了在各种软件应用程序中出土漏洞的协作模糊的巨大潜力。协作模糊的原理很简单:通过结合不同的模糊技术,我们可以创建一个更强大,更具智力的绒毛。每个模糊器都贡献其独特的优势,例如不同的突变操作或种子选择策略。通过合并这些独特的方法来实现的协同作用显着增加了发现以前有用的软件脆弱性的可能性,甚至在
可满足性模理论 (SMT) 求解器是许多技术的核心引擎,例如符号执行。因此,确保 SMT 求解器的稳健性和正确性至关重要。虽然模糊测试是一种确保 SMT 求解器质量的有效方法,但我们观察到之前的模糊测试工作仅侧重于生成各种一阶公式作为输入,而忽略了 SMT 求解器的算法配置空间,这导致许多深藏不露的错误未被及时报告。在本文中,我们提出了 Falcon,一种同时探索公式空间和配置空间的模糊测试技术。将这两个空间结合起来会显著扩大搜索空间,使有效检测错误变得更加困难。我们通过利用两个空间之间的相关性来减少搜索空间,并引入自适应变异策略来提高搜索效率,从而解决了这个问题。经过六个月的广泛测试,Falcon 在两款最先进的 SMT 求解器 CVC4 和 Z3 中发现了 518 个已确认的错误,其中 469 个已经修复。与两款最先进的模糊测试器相比,Falcon 在 24 小时的测试中检测到了 38 个和 44 个以上的错误,并且覆盖率大幅提高。
由于物联网(IoT)系统的体系结构和外围设备的多样性,BlackBox Fuzzing脱颖而出是发现IoT设备漏洞的主要选择。现有的黑盒模糊工具通常依靠伴侣应用来生成有效的模糊数据包。但是,现有方法在依靠基于云的通信的模糊设备方面遇到了绕过云服务器端验证的挑战。此外,他们倾向于将精力集中在Android Companion应用程序中的Java组件上,从而限制了它们在评估非java组件(例如基于JavaScript的Mini-Apps)方面的有效性。在本文中,我们介绍了一种新颖的黑盒模糊方法,名为Riot-Fuzzer,旨在借助伴侣应用程序远程发现物联网设备的脆弱性,尤其是那些由JavaScript基于JavaScript的Mini-Mini-Apps功能启用的全合一应用程序启动的应用程序。我们的方法利用基于文档的控制命令提取,用于突变点识别的混合分析和侧向通道引导的模糊来有效解决模糊IoT设备的挑战。我们将Riotfuzzer应用于突出平台上的27个物联网,并发现了11个漏洞。所有这些都得到了相应的供应商的认可。8已由供应商确认,并已分配4个CVE ID。我们的实验结果还表明,侧通道引导的模糊可以显着提高发送到IoT设备的模糊数据包的效率,平均增加76.62%,最大增加362.62%。
摘要 — RTL 验证中的一个关键挑战是生成有效的测试输入。最近,RFUZZ 提出使用一种自动化软件测试技术,即灰盒模糊测试,来有效地生成测试输入,以最大限度地提高整个硬件设计的覆盖率。对于需要测试大型硬件设计的一小部分的情况,RFUZZ 方法非常耗时。在这项工作中,我们提出了一种定向测试生成机制 DirectFuzz。DirectFuzz 使用定向灰盒模糊测试生成针对模块实例的测试输入,从而实现有针对性的测试。我们的实验结果表明,在各种 RTL 设计上,DirectFuzz 覆盖目标站点的速度比 RFUZZ 快 17.5 倍(平均 2.23 倍)。索引术语 —灰盒模糊测试、RTL 验证、覆盖定向测试生成、RISC-V I. 介绍
摘要操作系统(OS)内核是模式计算中的基础,尤其是随着不同计算设备的扩散。但是,其发展也带来了可能导致严重安全漏洞的漏洞。与用户空间模糊相比,用来发现这些漏洞的技术是一种用于发现这些漏洞的技术。这些包括配置测试环境并解决内核和模糊过程固有的状态的复杂性。尽管安全界引起了人们的兴趣,但仍然缺乏对内核模糊的全面理解,阻碍了该领域的进一步进步。在本文中,我们介绍了第一个专门用于OS内核模糊的系统研究。首先总结了2017年至2024年之间从顶级场所进行99项学术研究的进展。之后,我们引入了一个基于舞台的模糊模型和一种新颖的模糊分类法,该模型突出了内核模糊特有的九种核心功能。根据定性评估标准,对这些功能与它们相应的方法学方法进行了检查。我们的系统化确定了满足功能要求的挑战,并提出了潜在的技术解决方案。fi-Nelly,我们概述了指导即将进行的内核安全研究的有希望和实用的未来方向,部分支持了我们案例研究的见解。
Also called Dynamic Application Security Testing • Fuzzing – input data “fuzz” to try to crash software or break thru defenses • Can use AI • Automated Security Scanning (to check for known vulnerabilities) • Penetration Testing (can be both static & dynamic), usually manual, post development • Key Coding Standards: OWASP, CERT, DISA STIG, ISO Standards, e.g., 5055 • Catalogs of security漏洞和暴露:CWE,CVE,NVD,KEV
软件开发是一个持续、渐进的过程。开发人员不断以小批量而非一次性大批量的方式改进软件。小批量的高频率使得使用有效的测试方法在有限的测试时间内检测出错误变得至关重要。为此,研究人员提出了定向灰盒模糊测试 (DGF),旨在生成针对某些目标站点进行压力测试的测试用例。与旨在最大化整个程序的代码覆盖率的基于覆盖范围的灰盒模糊测试 (CGF) 不同,DGF 的目标是覆盖潜在的错误代码区域(例如,最近修改的程序区域)。虽然先前的研究改进了 DGF 的几个方面(例如电源调度、输入优先级和目标选择),但很少有人关注改进种子选择过程。现有的 DGF 工具使用主要为 CGF 定制的种子语料库(即一组覆盖程序不同区域的种子)。我们观察到,使用基于 CGF 的语料库限制了定向灰盒模糊测试器的错误查找能力。为了弥补这一缺陷,我们提出了 TargetFuzz,这是一种为 DGF 工具提供面向目标的种子语料库的机制。我们将此语料库称为 DART 语料库,它仅包含与目标“接近”的种子。这样,DART 语料库就可以引导 DGF 找到目标,从而即使在有限的模糊测试时间内也能暴露漏洞。对 34 个真实漏洞的评估表明,与基于 CGF 的通用语料库相比,配备 DART 语料库的 AFLGo(一种最先进的定向灰盒模糊测试器)可以发现 10 个额外的漏洞,并且平均在暴露时间上实现了 4.03 倍的加速。
软件开发是一个持续、渐进的过程。开发人员不断以小批量而非一次性大批量的方式改进软件。小批量的高频率使得使用有效的测试方法在有限的测试时间内检测出错误变得至关重要。为此,研究人员提出了定向灰盒模糊测试 (DGF),旨在生成针对某些目标站点进行压力测试的测试用例。与旨在最大化整个程序的代码覆盖率的基于覆盖范围的灰盒模糊测试 (CGF) 不同,DGF 的目标是覆盖潜在的错误代码区域(例如,最近修改的程序区域)。虽然先前的研究改进了 DGF 的几个方面(例如电源调度、输入优先级和目标选择),但很少有人关注改进种子选择过程。现有的 DGF 工具使用主要为 CGF 定制的种子语料库(即一组覆盖程序不同区域的种子)。我们观察到,使用基于 CGF 的语料库限制了定向灰盒模糊测试器的错误查找能力。为了弥补这一缺陷,我们提出了 TargetFuzz,这是一种为 DGF 工具提供面向目标的种子语料库的机制。我们将此语料库称为 DART 语料库,它仅包含与目标“接近”的种子。这样,DART 语料库就可以引导 DGF 找到目标,从而即使在有限的模糊测试时间内也能暴露漏洞。对 34 个真实漏洞的评估表明,与基于 CGF 的通用语料库相比,配备 DART 语料库的 AFLGo(一种最先进的定向灰盒模糊测试器)可以发现 10 个额外的漏洞,并且平均在暴露时间上实现了 4.03 倍的加速。
软件开发是一个持续、渐进的过程。开发人员会以小批量而非一次性大批量的方式不断改进软件。小批量的高频率使得使用有效的测试方法在有限的测试时间内检测出错误变得至关重要。为此,研究人员提出了定向灰盒模糊测试 (DGF),旨在生成针对特定目标位置进行压力测试的测试用例。与旨在最大化整个程序的代码覆盖率的基于覆盖范围的灰盒模糊测试 (CGF) 不同,DGF 的目标是覆盖潜在的错误代码区域(例如,最近修改的程序区域)。虽然先前的研究改进了 DGF 的几个方面(例如电源调度、输入优先级和目标选择),但很少有人关注改进种子选择过程。现有的 DGF 工具使用主要针对 CGF 定制的种子语料库(即一组覆盖程序不同区域的种子)。我们观察到,使用基于 CGF 的语料库会限制定向灰盒模糊测试器的发现错误的能力。为了弥补这一缺陷,我们提出了 TargetFuzz,这是一种为 DGF 工具提供面向目标的种子语料库的机制。我们将此语料库称为 DART 语料库,它仅包含与目标“接近”的种子。这样,DART 语料库就可以引导 DGF 找到目标,从而即使在有限的模糊测试时间内也能暴露漏洞。对 34 个真实漏洞的评估表明,与基于 CGF 的通用语料库相比,配备 DART 语料库的 AFLGo(一种最先进的定向灰盒模糊测试器)可以发现 10 个额外的漏洞,并且平均暴露时间加快了 4.03 倍。