Targeted Testing of Compiler Optimizations via Grammar-Level Composition Styles
University of California, Los Angeles (UCLA)(加州大学洛杉矶分校);The University of Sydney(悉尼大学);Tulane University(杜兰大学);University of Szeged(塞格德大学)
本文提出TargetFuzz,通过语法层面的组合风格进行定向模糊测试,提升编译器优化的测试覆盖率和触发效率。
2025-12-04 cs.SE
Evolutionary Fuzzing of Android OS Vendor System Services
Android设备由100多家制造商合作伙伴以多种形式提供,这些合作伙伴通过新的系统服务扩展了Android“香草”操作系统,并修改了现有的系统服务。这些专有扩展会使Android设备面临可靠性和安全性问题。在本文中,我们提出了一个基于进化算法的覆盖率引导模糊平台(Chizpurfle)来测试专有的Android系统服务。该平台的一个关键特性是能够利用动态二进制重写技术,在实际的未修改的Android设备上分析覆盖率。我们在三款高端商用Android智能手机上应用了该解决方案。结果证实,进化模糊能够比盲目模糊更有效地测试Android OS系统服务。此外,我们评估了不同选择的适应度函数和选择算法的影响。
2019-06-03 cs.CR cs.SE
Toward Inferring Accurate Context-free Grammars for Big Languages in a Black-box Setting
University of Texas at Arlington(阿灵顿得克萨斯大学);Islamic University of Technology(伊斯兰理工大学);University of Texas at Austin(奥斯汀得克萨斯大学)
针对黑盒上下文无关语法推断在大型语言中存在的可扩展性、准确性和语法可读性问题,Xvada引入新技术,在实证比较中语法准确性和紧凑性优于对手,还发现Python Liquid引擎漏洞及多个新漏洞,且相关内容可免费获取。
2026-07-16 cs.PL cs.SE
Building Fast Fuzzers
模糊技术是评估程序抗攻击鲁棒性的关键技术之一。Fuzzing必须能够有效地生成涵盖功能和发现漏洞的输入。但它也必须能够有效地迅速生产这些投入。随机模糊器非常有效,因为它们可以快速生成随机输入;但它们不是很有效,因为生成的大部分输入在语法上是无效的。基于语法的模糊器利用语法(或输入语言的另一种模型)来产生语法正确的输入,因此可以快速覆盖输入空间和相关功能。然而,现有的基于语法的模糊器的效率惊人地低:即使是最快的语法模糊器Dharma产生的输入仍然比最快的随机模糊器慢1000倍。到目前为止,可以有一个有效的或一个有效的模糊,但不能两者兼而有之。在本文中,我们描述了如何建立快速的语法模糊器从地面上,从程序设计语言实现的角度来处理模糊的问题。从Python教科书方法开始,我们采用并适应函数式编程和虚拟机实现技术中的优化技术,以及其他新颖的特定于域的优化。在我们的F1原型模糊,这些提高生产速度的一个因素100- 300最快的语法模糊达摩。由于F1甚至比词法随机模糊器快5- 8倍,我们可以更快地找到bug,并使用比以前可能的更大的有效输入进行测试。
2019-11-18 cs.CR cs.PL cs.SE
Evolutionary Mutation-based Fuzzing as Monte Carlo Tree Search
基于覆盖率的灰盒模糊检测(CGF)已被证实可以有效地发现安全漏洞。种子调度是从种子库中选择一个输入作为下一次模糊迭代的种子的过程,在CGF中起着核心作用。虽然已经提出了许多种子调度策略,他们中的大多数单独对待这些种子,并没有显式地考虑种子之间的关系。在这项研究中,我们做了一个关键的观察,种子之间的关系是有价值的种子调度。我们设计并提出了一个“种子突变树”,通过调查和利用种子之间的突变关系。利用“种子变异树”,我们进一步将种子调度问题建模为一个蒙特卡罗树搜索(MCTS)问题。也就是说,我们选择下一个种子模糊通过步行这个“种子突变树”通过最佳路径,基于MCTS的估计。我们实现了两个原型,AFL之上的AlphaFuzz和AFL++之上的AlphaFuzz++。三个数据集(UniFuzz数据集,CGC二进制文件和12个真实世界的二进制文件)的评估结果表明,AlphaFuzz和AlphaFuzz++优于最先进的模糊器,具有更高的代码覆盖率和更多的发现漏洞。特别是,AlphaFuzz发现了3个新的漏洞与CVE。
2022-06-15 cs.CR cs.SE
Growing a Test Corpus with Bonsai Fuzzing
本文提出了一种覆盖率引导的基于语法的模糊技术自动生成一个语料库的简洁的测试输入的程序,如编译器。我们走过一个案例研究的编译器设计的教育和相应的问题,产生有意义的测试用例提供给学生。现有技术的解决方案是模糊和测试用例简化技术(诸如增量调试的变体)的组合。我们的关键见解是,而不是试图最大限度地减少复杂的模糊生成的测试输入,我们可以通过使用迭代深化的形式来构建简洁的测试输入。我们称这种方法为Bonsai Fuzzing。实验结果表明,Bonsai Fuzzing可以生成的测试语料库的输入是16- 45%,平均较小的大小相比,模糊然后减少的方法,而实现大致相同的代码覆盖率和故障检测能力。
2021-03-07 cs.PL cs.SE
MTFuzz: Fuzzing with a Multi-Task Neural Network
Fuzzing是一种广泛用于检测软件错误和漏洞的技术。大多数流行的模糊器使用进化搜索来生成新的输入以最大化代码覆盖率。从本质上讲,这些模糊器从一组种子输入开始,对其进行变异以生成新的输入,并使用进化适应度函数来识别有希望的输入以进行进一步的变异。尽管取得了成功,但进化模糊者往往会陷入长序列的非生产性突变中。近年来,基于机器学习(ML)的变异策略已经报道了有希望的结果。然而,现有的基于ML的模糊器受到缺乏质量和多样性的训练数据的限制。由于目标程序的输入空间是高维和稀疏的,因此收集证明成功和不成功突变的许多不同样本来训练模型是极其昂贵的。在本文中,我们通过使用多任务神经网络来解决这些问题,该网络可以基于多个相关任务的不同训练样本来学习输入空间的紧凑嵌入(即,预测不同类型的覆盖率)。紧凑嵌入可以通过将大多数突变集中在嵌入的梯度高的部分上来指导突变过程。\tool发现$11$以前看不见的错误,并实现了平均$2\times$更多的边缘覆盖率相比,5个国家的最先进的模糊10个现实世界的程序。
2020-09-11 cs.SE
FuzzAgent: Multi-Agent System for End-to-End Evolutionary Library Fuzzing
The University of Hong Kong(香港大学);Southeast University(东南大学)
FuzzAgent通过多智能体协作实现库模糊测试的迭代进化,提升覆盖率和崩溃分析的准确性,优于现有方法45.1%至191.2%。
2026-10-30 cs.CR cs.SE
Evolutionary Generative Fuzzing for Differential Testing of the Kotlin Compiler
本文提出一种黑盒生成式模糊测试方法,结合语义接口模型、扩充上下文无关文法及两种遗传算法生成Kotlin程序,用于K1和K2编译器的差分测试,有效发现并确认了多个编译器缺陷。
2024-01-12 cs.SE
Learn&Fuzz: Machine Learning for Input Fuzzing
Microsoft Research(微软研究院);The Technion(以色列理工学院)
Fuzzing包括使用修改的或模糊的输入反复测试应用程序,目的是找到输入解析代码中的安全漏洞。在本文中,我们将展示如何自动生成一个输入语法适合使用样本输入和基于神经网络的统计机器学习技术的输入模糊。我们提出了一个详细的案例研究与复杂的输入格式,即PDF,和一个大型复杂的安全关键的解析器,这种格式,即嵌入在微软的新边缘浏览器的PDF解析器。我们讨论(和测量)冲突的学习和模糊目标之间的紧张关系:学习想要捕获格式良好的输入的结构,而模糊想要打破这种结构,以覆盖意外的代码路径和发现错误。我们还提出了一种新的算法,这种学习和模糊的挑战,它使用一个学习的输入概率分布,智能地指导在哪里模糊输入。
2017-01-25 cs.AI cs.CR cs.LG
ExplainFuzz: Explainable and Constraint-Conditioned Test Generation with Probabilistic Circuits
UCLA(加州大学洛杉矶分校);KU Leuven(鲁汶大学)
ExplainFuzz利用概率电路学习并查询基于语法规则的测试输入的结构分布,通过条件化能力整合测试约束,提升生成输入的现实性和多样性,显著提高缺陷触发率。
2026-04-08 cs.LG cs.SE
Inferring Input Grammars from Dynamic Control Flow
程序的特征在于其输入模型,并且形式化输入模型可以用于不同的领域,包括脆弱性分析、逆向工程、模糊和软件测试、克隆检测和重构。不幸的是,典型程序的输入模型通常不可用或过时。虽然存在可以挖掘程序输入的语法结构的算法,但它们要么产生笨拙和难以理解的语法,要么需要针对特定解析模式的语法分析。在本文中,我们提出了一个通用的算法,需要一个程序和一个小的样本输入,并自动推断出一个可读的上下文无关文法捕捉输入语言的程序。我们推断的句法输入结构,只有通过观察在不同位置的输入解析器的输入字符的访问。这适用于所有基于程序堆栈的递归下降输入解析器,包括PEG和解析器组合子,并且可以完全不使用程序特定的语法。我们的Mimid原型为各种评估主题生成了准确可读的语法,包括expr、URLparse和microJSON。
2019-12-12 cs.PL cs.SE
Neural Network Guided Evolutionary Fuzzing for Finding Traffic Violations of Autonomous Vehicles
Columbia University(哥伦比亚大学)
自动驾驶汽车和卡车,自动驾驶汽车(AV),不应该被监管机构和公众接受,直到他们对它们的安全性和可靠性有更高的信心-这可以通过测试最实际和令人信服地实现。但是,现有的测试方法不足以检查AV控制器的端到端行为,以应对复杂的现实世界中涉及与多个独立代理(如行人和人类驾驶车辆)交互的角落情况。虽然在街道和高速公路上试驾自动驾驶汽车无法捕捉到许多罕见的事件,但现有的基于模拟的测试方法主要集中在简单的场景上,并且无法很好地扩展到需要对周围环境进行复杂感知的复杂驾驶情况。为了解决这些限制,我们提出了一种新的模糊测试技术,称为AutoFuzz,它可以利用广泛使用的AV模拟器的API语法生成语义和时间有效的复杂的驾驶场景(场景序列)。为了在大搜索空间中有效地搜索交通违规诱导场景,我们提出了一种约束神经网络(NN)进化搜索方法来优化AutoFuzz。我们的原型在一个最先进的基于学习的控制器,两个基于规则的控制器和一个工业级控制器上进行了五种情况的评估,结果表明AutoFuzz在高保真仿真环境中有效地发现了数百种交通违规行为。对于每个场景,AutoFuzz可以找到比最佳基线方法平均多10-39%的独特交通违规。此外,通过AutoFuzz发现的交通违规对基于学习的控制器进行微调,成功地减少了新版本AV控制器软件中发现的交通违规。
2022-07-21 cs.LG cs.NE cs.RO
GEML: A Grammar-based Evolutionary Machine Learning Approach for Design-Pattern Detection
University of Córdoba(科尔多瓦大学);Virginia Tech(弗吉尼亚理工大学)
本文提出GEML方法,通过进化机器学习提取符合上下文无关文法的人类可读规则并构建分类器,在15个设计模式上验证了其检测有效性与鲁棒性。
2024-01-13 cs.AI cs.SE
Semantic-Aware Fuzzing: An Empirical Framework for LLM-Guided, Reasoning-Driven Input Mutation
School of Computing, Queen’s University(女王大学计算机学院);McGill University(麦吉尔大学);Defence R&D Canada(国防研发加拿大)
针对现有模糊测试缺乏语义推理的问题,提出集成推理LLM与AFL++的微服务框架,实验表明Deepseek表现最佳,变异质量取决于提示复杂度与模型选择。
2025-09-23 cs.AI cs.CR cs.SE
High-Performance Generation of Constrained Inputs
CISPA Helmholtz Center for Information Security(CISPA 赫尔姆霍兹信息安全中心)
研究基于语言测试中生成带约束输入的问题,提出将语法定义转换为Rust类型及使用更好进化算法的方法,使原型FANDANGO-RS性能大幅提升,能解决复杂约束,每分钟为C编译器生成401个有效测试输入。
2026-07-27 cs.FL cs.PL cs.SE
ELFuzz: Efficient Input Generation via LLM-driven Synthesis Over Fuzzer Space
本文提出ELFuzz方法,利用LLM驱动的进化合成自动生成定制模糊测试器,无需人工编写规格,在真实规模系统上实现了更高的覆盖率和漏洞发现率。
2025-08-12 cs.CR cs.SE