Fuzzing MLIR Compilers with Custom Mutation Synthesis
针对MLIR自定义方言测试生成器手动编写困难的问题,提出SYNTHFUZZ模糊测试器,结合语法模糊与自定义变异合成,自动推断上下文相关变异,显著提升覆盖率和有效测试比例。
2024-08-27 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
MTFuzz: Fuzzing with a Multi-Task Neural Network
Fuzzing是一种广泛用于检测软件错误和漏洞的技术。大多数流行的模糊器使用进化搜索来生成新的输入以最大化代码覆盖率。从本质上讲,这些模糊器从一组种子输入开始,对其进行变异以生成新的输入,并使用进化适应度函数来识别有希望的输入以进行进一步的变异。尽管取得了成功,但进化模糊者往往会陷入长序列的非生产性突变中。近年来,基于机器学习(ML)的变异策略已经报道了有希望的结果。然而,现有的基于ML的模糊器受到缺乏质量和多样性的训练数据的限制。由于目标程序的输入空间是高维和稀疏的,因此收集证明成功和不成功突变的许多不同样本来训练模型是极其昂贵的。在本文中,我们通过使用多任务神经网络来解决这些问题,该网络可以基于多个相关任务的不同训练样本来学习输入空间的紧凑嵌入(即,预测不同类型的覆盖率)。紧凑嵌入可以通过将大多数突变集中在嵌入的梯度高的部分上来指导突变过程。\tool发现$11$以前看不见的错误,并实现了平均$2\times$更多的边缘覆盖率相比,5个国家的最先进的模糊10个现实世界的程序。
2020-09-11 cs.SE
DARWIN: Survival of the Fittest Fuzzing Mutators
Fuzzing是一种被业界广泛采用的自动化软件测试技术。一个流行的变体是基于变异的模糊,它在实践中发现了大量的错误。虽然研究界已经研究基于突变的模糊化多年,但模糊器内的算法交互非常复杂,并且可以与模糊器的每个实例中的随机性一起导致不可预测的效果。大多数改善这种脆弱交互的努力都集中在优化种子调度上。然而,像Google的FuzzBench这样的现实世界的结果突出表明,这些方法在实践中并没有始终如一地显示出改进。另一种改进模糊算法的方法是优化变异调度。不幸的是,现有的变异调度方法也未能说服,因为缺少现实世界的改善或太多的用户控制的参数,其配置需要有关目标程序的专家知识。这就留下了一个具有挑战性的问题,即巧妙地处理测试用例并实现可测量的改进。我们提出了DARWIN,一种新的突变调度程序,第一个显示模糊的改进,在一个现实的情况下,不需要引入额外的用户可配置的参数,开放这种方法的广泛模糊社区。达尔文使用演化策略系统地优化和适应模糊过程中变异算子的概率分布。我们实现了一个原型的基础上流行的通用模糊AFL。在我们自己的覆盖率实验中,DARWIN在FuzzBench中的表现明显优于最先进的突变调度器和AFL基线,并在MAGMA基准测试中找到了21个错误中最快的15个。最后,DARWIN在广泛使用的实际应用中发现了20个独特的bug(包括一个新bug),比AFL多66%。
2022-10-21 cs.CR cs.SE
Fuzzing for CPS Mutation Testing
本文提出利用模糊测试为安全攸关CPS的C/C++软件生成变异测试数据,并通过在轨卫星组件实证表明其显著优于或可补充符号执行。
2023-08-15 cs.SE
Fuzzing-based Mutation Testing of C/C++ Software in Cyber-Physical Systems
本文提出用模糊测试替代符号执行对 CPS 中 C/C++ 软件进行变异测试,并在卫星系统组件上验证其可检测 40%-90% 开发者测试遗漏的变异体,结合 Clang、内存消毒器和 laf-intel 插桩效果最佳,检测率比符号执行最高提升 50 个百分点。
2025-07-03 cs.SE
Superion: Grammar-Aware Greybox Fuzzing
近年来,基于覆盖率的灰盒模糊技术已被证明是在实践中发现安全漏洞的最有效的技术之一。特别是美国的Fuzzy Lop(简称AFL)算法,被认为在相对简单的测试输入的模糊化方面取得了巨大的成功。然而,当遇到XML和JavaScript等结构化测试输入时,AFL中的语法盲裁剪和变异策略阻碍了AFL的有效性和效率。为此,我们提出了一个基于覆盖率的模糊处理结构化输入的灰盒模糊方法。鉴于语法(这往往是公开的)的测试输入,我们引入了一个语法感知修剪策略修剪测试输入在树级使用的抽象语法树(AST)解析的测试输入。此外,我们引入了两种语法感知的突变策略(即,增强的基于字典的突变和基于树的突变)。具体来说,基于树的变异通过使用解析的测试输入的AST替换子树来工作。该方法具有语法感知能力,可以将模糊推理的探索扩展到广度和深度。我们实现了我们的方法作为一个扩展AFL,命名为Escapon;和评估Escapon在现实生活中的大型程序(XML引擎libplist和三个JavaScript引擎WebKit,Jerryscript和ChakraCore)的有效性。我们的研究结果表明,ESPON可以提高代码覆盖率(即,行和函数覆盖率分别为16.7%和8.8%)和缺陷发现能力(即,31个新漏洞,其中我们发现了21个新漏洞,分配了16个CVE,并通过AFL和jsfunfuzz获得了3.2K美元的漏洞奖励。我们还证明了我们…
2019-01-23 cs.CR cs.SE
LLAMA: Multi-Feedback Smart Contract Fuzzing Framework with LLM-Guided Seed Generation
本文提出基于LLM的多反馈智能合约模糊测试框架LLAMA,结合分层提示生成种子、多反馈优化机制和进化模糊引擎,显著提升了代码覆盖率与漏洞检测能力。
2025-07-16 cs.CR cs.SE
SLOPT: Bandit Optimization Framework for Mutation-Based Fuzzing
Ricerca Security, Inc.(里卡安全公司);University of Tsukuba(筑波大学);National Institute of Advanced Industrial Science and Technology (AIST)(日本产业技术综合研究所)
在过去的十年中,基于突变的模糊已经成为最常见的漏洞发现解决方案之一。当针对特定程序时,模糊可以被优化,并且鉴于此,一些研究已经采用在线优化方法来自动进行,即,以程序不可知的方式为任何给定的程序调整模糊器。然而,以往的研究既没有充分探讨适合在线优化方法的变异方案,也没有适合变异方案的在线优化方法。在这项研究中,我们提出了一个称为SLOPT的优化框架,包括一个强盗友好的突变方案和突变方案友好的强盗算法。SLOPT的优点是它通常可以合并到现有的模糊器中,例如AFL和Honggfuzz。作为概念验证,我们通过将SLOPT集成到AFL++中来实现SLOPT-AFL++,并表明SLOPT提供的程序无关优化使SLOPT-AFL++在所有10个实际FuzzBench程序中实现了比AFL++更高的代码覆盖率。此外,我们对来自OSS-Fuzz的几个真实世界的程序运行了SLOPT-AFL++,并成功地识别了三个以前未知的漏洞,尽管这些程序已经在OSS-Fuzz上被AFL++模糊了相当多的CPU天数。
2022-11-07 cs.CR cs.LG cs.SE
Not all bytes are equal: Neural byte sieve for fuzzing
Microsoft Research(微软研究院)
Fuzzing是一种流行的动态程序分析技术,用于发现复杂软件中的漏洞。Fuzzing涉及向目标程序提供精心编制的恶意输入,这些输入旨在导致崩溃、缓冲区溢出、内存错误和异常。以有效的方式制作恶意输入是一个困难的开放问题,通常生成此类输入的最佳方法是通过将均匀随机突变应用于预先存在的有效输入(种子文件)。我们提出了一种学习技术,使用神经网络学习模式的输入文件,从过去的模糊探索,以指导未来的模糊探索。特别地,神经模型学习一个函数来预测输入文件中的好(和坏)位置,以基于过去的突变和对应的代码覆盖信息来执行模糊突变。我们实现了几个神经模型,包括LSTM和序列到序列模型,可以编码可变长度的输入文件。我们将我们的模型在国家的最先进的AFL(美国模糊Lop)模糊,并显示显着的改进,在代码覆盖率,独特的代码路径,崩溃的各种输入格式,包括ELF,PNG,PDF和XML。
2017-11-10 cs.LG cs.SE
Bug Histories as Sources of Compiler Fuzzing Mutators
提出IssueMut方法,从编译器缺陷历史中自动挖掘变异子,集成到现有模糊测试器中,在GCC和LLVM上发现65个新缺陷,其中60个被确认或修复。
2025-10-09 cs.SE
Fuzzing with Agents? Generators Are All You Need
Carnegie Mellon University(卡内基梅隆大学)
本文探讨利用AI代理自动生成针对特定目标的输入生成器,发现生成器在分支覆盖率上优于人工编写者,且无需覆盖引导和突变策略。
2026-04-01 cs.SE
REST API Fuzzing by Coverage Level Guided Blackbox Testing
随着Web应用程序的增长,REST API已成为服务之间的主要通信方法。为了保证系统的可靠性和安全性,软件质量可以通过有效的测试方法来保证。黑盒模糊测试是进行大规模测试的有效方法之一。然而,传统的黑盒模糊测试产生随机数据而不判断输入的质量。我们为REST API实现了一个黑盒模糊测试方法。通过测试覆盖水平反馈,解决了在不知道突变有效性的情况下盲目突变的问题。我们还通过降低REST API的测试复杂度来增强变异策略,生成更合适的测试用例来覆盖可能的路径。我们通过测试两个大型开源项目来评估我们的方法,并报告和确认了89个错误。此外,我们在APIs.guru中发现了来自64个远程API服务的351个错误。该工作在https://github.com/iasthc/hsuan-fuzz上。
2021-12-31 cs.SE
Fuzzing Class Specifications
通过可执行约束表达类规范对于各种软件工程任务(如测试生成、错误发现和自动调试)很重要,但开发人员很少编写它们。从代码中推断规范的技术存在以填补这一空白,但它们被设计为支持特定种类的断言,并且难以适应于支持不同的断言语言,例如,添加对量化的支持,或添加其他比较运算符,如成员资格或包含。为了解决上述问题,我们提出了SpecFuzzer,一种新的技术,结合了基于语法的模糊,动态不变检测和突变分析,自动产生类规范。SpecFuzzer使用:(i)一个模糊器作为候选断言的生成器,该候选断言来自于从类定义自动获得的语法;(ii)一个动态不变检测器(Daikon),用于过滤掉被测试套件无效的断言;以及(iii)一个基于变异的机制,用于对断言进行聚类和排名,以便将类似的约束分组,然后将较强的约束优先化。基于语法的模糊化使得SpecFuzzer能够通过操纵模糊化语法,直接地适应于支持不同的规约语言,以包括额外的操作员。我们评估我们的技术的基准43 Java方法采用的评估国家的最先进的技术GAssert和EvoSpex。我们的研究结果表明,SpecFuzzer可以很容易地支持一个更具表现力的断言语言,这是更有效的比GAssert和EvoSpex在推断规范,根据标准的性能指标。
2022-01-26 cs.SE
zkCraft: Prompt-Guided LLM as a Zero-Shot Mutation Pattern Oracle for TCCT-Powered ZK Fuzzing
zkCraft结合确定性R1CS感知本地化与证明承载搜索,通过编码候选约束编辑为Row-Vortex多项式,利用LLM驱动的突变模板检测语义不一致,降低误报并提升ZK电路开发的鲁棒性。
2026-07-23 cs.CR cs.SE
BeDivFuzz: Integrating Behavioral Diversity into Generator-based Fuzzing
分支覆盖率是评价模糊器性能的一个常用指标。然而,我们认为,仅仅关注覆盖许多不同的分支(即,丰富性)是不够的,因为大多数被覆盖的分支可能只被执行过一次,这不能激发对被覆盖代码的可靠性的高置信度。相反,执行分支的分布(即,均匀性)也应当考虑。也就是说,只有当生成的输入不仅触发许多不同的分支,而且还使用不同的输入均匀地触发它们时,才给出行为多样性。我们介绍BeDivFuzz,一个反馈驱动的模糊技术的发电机为基础的模糊。BeDivFuzz在语法有效输入的空间中区分结构保持和结构改变的突变,并根据收到的程序反馈将其突变策略偏向有效性和行为多样性。我们已经在Ant、Maven、Rhino、Closure、Nashorn和Tomcat上评估了BeDivFuzz。结果表明,BeDivFuzz比最先进的技术实现了更好的行为多样性,这是通过生态学领域既定的生物多样性指标(即Hill数)来衡量的。
2022-02-26 cs.SE
An Exploratory Survey of Hybrid Testing Techniques Involving Symbolic Execution and Fuzzing
最近在实际符号执行方面的努力已经成功地在一定程度上缓解了路径爆炸问题,基于搜索的算法和组合方法。类似地,由于廉价多核商品计算机的性能提高,模糊作为一种可行的基于随机变异的测试方法也有希望。然而,结合符号执行和模糊,从而提供一个机会,以减轻彼此的缺点的可能性,还没有得到充分的探讨。例如,模糊可以加速符号执行中的路径探索,符号执行可以使模糊中的种子输入生成更有效。在我们看来,只有很少的混合解决方案提案以象征性的执行和模糊为中心。通过对77篇相关文献的分析,本文(1)对符号执行和模糊化的混合解决方案进行了综述,(2)分析了改进普通符号执行和模糊化的混合技术研究的差距,(3)提出了混合测试用例生成技术的新思路。
2017-12-19 cs.SE
FuzzerGym: A Competitive Framework for Fuzzing and Learning
Carnegie Mellon University(卡内基梅隆大学);Georgia Institute of Technology(佐治亚理工学院);Twentieth Century Fox(二十世纪福克斯公司);Starfleet Academy(星际舰队学院);Tyrell Inc.(泰瑞尔公司)
Fuzzing是一种常用的技术,旨在通过自动制作程序输入来测试软件。目前,最成功的模糊算法强调简单,低开销的策略,在执行过程中有效地监视程序状态的能力。通过编译时插装,这些方法可以访问程序状态的许多方面,包括覆盖率、数据流以及异构故障检测和分类。然而,现有的方法在生成测试输入时利用盲随机变异策略。我们提出了一种不同的方法,使用这种状态信息来优化变异算子,使用强化学习(RL)。通过将OpenAI Gym与libFuzzer集成,我们能够同时利用强化学习和模糊化的进步,在多个不同的基准测试中实现更深入的覆盖。我们的技术将LLVM算法提供的丰富、高效的程序监控器与深度神经网络连接起来,直接从输入数据中学习突变选择策略。我们开发的跨语言异步架构使我们能够将任何OpenAI Gym兼容的深度强化学习算法应用于任何模糊问题,并且速度最小。
2018-07-19 cs.AI cs.LG cs.SE
Coverage-Guided Tensor Compiler Fuzzing with Joint IR-Pass Mutation
University of Illinois at Urbana-Champaign(伊利诺伊大学厄巴纳-香槟分校);Tongji University(同济大学);Fudan University(复旦大学)
在过去的十年中,深度学习(DL)系统已被广泛部署在各个领域,以方便我们的日常生活。与此同时,确保DL系统的正确性(例如,由于其固有的不确定性),并且DL系统中的错误可能导致严重的后果,甚至可能威胁人类生命。在文献中,研究人员已经探索了各种技术来测试,分析和验证DL模型,因为它们的质量直接影响相应的系统行为。最近,研究人员还提出了用于测试底层操作符级DL库(如TensorFlow和PyTorch)的新技术,这些库为每个高级DL操作符提供了通用的二进制实现,以便在许多平台上运行各种DL模型。然而,针对新兴张量编译器的可靠性的工作仍然有限,这些编译器旨在直接将高级张量计算图编译为高性能二进制文件,以提高效率,可移植性和可扩展性。本文针对张量编译器测试这一重要问题,提出了一种实用的模糊测试技术Tzer,用于广泛使用的TVM张量编译器。由于高级中间表示(IR)的变异空间有限,Tzer专注于对TVM的低级IR进行变异。更具体地说,Tzer利用覆盖反馈指导的通用和张量编译器特定的变异器进行进化IR变异;此外,Tzer还与IR变异串联执行传递变异,以实现更有效的模糊化。我们的研究结果表明,Tzer在张量编译器测试方面大大优于现有的模糊技术,覆盖率比第二好的技术高75%,测试价值高50%。到目前为止,Tzer已经检测到49个TVM以前未知的bug,其中37个bug得到确认,25个bug得到修复(PR…
2022-02-21 cs.CR cs.LG cs.PL
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
FMViz: Visualizing Tests Generated by AFL at the Byte-level
软件模糊测试是一种强有力的测试技术,已经成为工业界自动化软件测试和软件漏洞检测的事实上的方法。模糊的随机性使得监控和理解模糊器的行为变得困难。在本文中,我们报告了模糊突变可视化工具(FMViz)的开发,该工具专注于可视化模糊器中的字节级突变。特别是,FMViz扩展了美国模糊Lop(AFL),以可视化生成的测试输入,并突出显示连续生成的种子之间的变化,作为一个模糊活动的进展。我们的工具的首要目标是帮助开发人员和学生更好地理解AFL模糊器的内部工作原理。在本文中,我们提出了FMViz的体系结构,讨论了它的一个示例案例研究,并概述了未来的工作。FMViz是开源的,可在https://github.com/AftabHussain/afl-test-viz上公开获取。
2021-12-25 cs.SE
CovRL: Fuzzing JavaScript Engines with Coverage-Guided Reinforcement Learning for LLM-based Mutation
Yonsei University(延世大学);Suresofttech Inc.(Suresofttech公司)
本文提出CovRL技术,通过TF-IDF构建加权覆盖率图并结合强化学习将覆盖率反馈直接集成到LLM变异器中,显著提升了JavaScript引擎模糊测试的代码覆盖率与漏洞发现能力。
2024-02-19 cs.CL cs.CR cs.LG
Towards Large Language Model Guided Kernel Direct Fuzzing
本文提出 SyzAgent 框架,将大语言模型与内核模糊测试器 Syzkaller 集成,利用 LLM 实时引导测试用例的变异与生成,有效应对操作系统频繁更新与复杂性挑战,并在基准实验中约 67% 的用例上验证了有效性。
2025-03-04 cs.SE
IcFuzz: Fuzzing Isaac Sim with Semantic Stage Guidance and Multi-level Mutation
Sun Yat-sen University(中山大学);Nanyang Technological University(南洋理工大学);Chinese University of Hong Kong(香港中文大学)
本文提出首个针对Isaac Sim的模糊测试方法IcFuzz,通过LLM语义阶段分割、多级变异算子与多臂老虎机算法提升测试效果,在代码覆盖率与漏洞检测上优于基线,已发现11个漏洞且9个被确认修复。
2026-08-07 cs.RO cs.SE
MoCo: Fuzzing Deep Learning Libraries via Assembling Code
针对深度学习库模糊测试在输入多样性、测试预言构建等方面的局限,提出基于代码组装的MoCo模糊测试方法,可快速定位漏洞,在三类主流DL库中检测出64个新漏洞。
2024-05-13 cs.SE
Fuzz Smarter, Not Harder: Towards Greener Fuzzing with GreenAFL
针对传统模糊测试能耗高、碳足迹大的问题,提出能源感知框架GreenAFL,通过功耗感知的语料库最小化与能源引导变异启发式,在保持覆盖率的同时降低能耗,实现更绿色的模糊测试。
2025-10-29 cs.SE
Compositional Fuzzing Aided by Targeted Symbolic Execution
近年来,由于其快速的路径覆盖引导的输入变异策略,引导模糊已经能够发现现实世界中的软件中的许多新的漏洞。然而,大多数模糊器无法在程序的更深部分实现高覆盖率。此外,模糊器严重依赖于种子输入的多样性,通常是手动提供的,以便能够产生有意义的结果。在本文中,我们提出了野火,一种新的开源组合模糊框架。Wildfire通过模糊化C程序中的孤立函数来发现漏洞,然后使用有针对性的符号执行来确定利用这些漏洞的可行性。基于我们对23个开源源程序(近100万个)的评估,我们表明,由于覆盖率的增加,Wildfire比基线符号执行和模糊工具以及最先进的覆盖率引导工具发现了更多的真阳性结果,而这些工具所花费的分析时间只有10%。此外,Wildfire还发现了许多其他潜在的漏洞,这些漏洞的可行性可以通过组合来确定,以确认它们是否是误报。Wildfire还可以复制所有已知的漏洞,并在三个开源库中发现了几个以前未知的漏洞。
2019-10-11 cs.SE
LLAMAFUZZ: Large Language Model Enhanced Greybox Fuzzing
University of California, Davis(加州大学戴维斯分校);University of Hong Kong(香港大学)
本文提出LLAMAFUZZ,利用大语言模型生成有效输入,提升灰盒模糊测试对结构化数据的处理能力,实验表明其在发现漏洞方面表现优异。
2026-03-17 cs.AI cs.CR cs.SE
Mut4All: Fuzzing Compilers via LLM-Synthesized Mutators Learned from Bug Reports
Beijing Jiaotong University(北京交通大学);Singapore Management University(新加坡管理大学);University of Alberta(阿尔伯塔大学);Tianjin University(天津大学)
Mut4All通过LLM合成变异器自动发现编译器错误,实现高效且跨语言的模糊测试
2026-10-06 cs.SE
Adaptive Grey-Box Fuzz-Testing with Thompson Sampling
Bloomberg(彭博)
模糊测试或“模糊”是指广泛部署的一类技术,用于通过生成一组输入来测试程序,以明确地找到错误和识别安全缺陷。灰盒模糊是最流行的模糊检测策略,它结合了轻量级程序插装和数据驱动过程来生成新的程序输入。在这项工作中,我们提出了一个机器学习的方法,建立在AFL,卓越的灰箱模糊,通过自适应学习概率分布在其变异算子的程序特定的基础上。这些操作员,这是随机选择均匀的AFL和突变模糊一般,决定如何产生新的输入,模糊的功效的核心部分。我们的主要贡献是两方面的:首先,我们表明,从训练计划中估计的突变算子的采样分布可以显着提高AFL的性能。其次,我们介绍了一个汤普森采样,基于带宽的优化方法,微调的mutator分布自适应,在模糊的过程中,一个单独的程序。一组跨复杂程序的实验表明,调整突变运算符分布生成的输入集产生显着更高的代码覆盖率,并发现更多的崩溃更快,更可靠的AFL的基线版本以及其他基于AFL的学习方法。
2018-08-24 cs.AI cs.SE
HornFuzz: Fuzzing CHC solvers
针对缺乏 CHC 求解器专用模糊测试工具的问题,提出基于蜕变测试的变异灰盒工具 HornFuzz,并在 Spacer 中发现多个严重缺陷。
2023-06-08 cs.SE
Targeted Testing of Compiler Optimizations via Grammar-Level Composition Styles
本文提出TargetFuzz,通过语法层面的组合风格进行定向模糊测试,提升编译器优化的测试覆盖率和触发效率。
2025-12-04 cs.SE
Improve Model Testing by Integrating Bounded Model Checking and Coverage Guided Fuzzing
由Simulink或Ptolemy建立的控制逻辑模型在工业现场得到了广泛的应用。保证控制逻辑模型的安全性和可靠性是一个迫切需要解决的问题。测试用例生成技术被广泛应用于保证软件的安全性和可靠性。最先进的模型测试工具采用模型检验技术或基于搜索的方法来生成测试用例。传统的基于Simulink仿真的搜索技术存在速度慢、开销大等问题。传统的模型检验技术如符号执行在处理非线性元素和复杂循环时性能有限。最近,覆盖率引导模糊技术被认为是有效的测试用例生成,由于其高效率和令人印象深刻的效果,在复杂的分支循环。在本文中,我们应用模糊方法来改善模型测试,并证明了有效性。模糊化方法旨在通过变异有价值的种子来覆盖更多的程序分支。受此启发,我们提出了一种新的集成技术SPsCGF,它利用有界模型检验的符号执行,产生测试用例作为初始种子,然后进行模糊的基础上,这些有价值的种子。以这种方式,我们的工作结合了模型检验方法和模糊技术的优点,在一个新的方式。由于控制逻辑模型总是接收信号输入,因此我们专门为信号设计了新型变异算子,以改进模型测试中现有的模糊方法。在由工业案例组成的评估基准上,SPsCGF可以实现8%到38%的模型覆盖率和3倍到10倍的时间效率。
2022-11-09 cs.SE
IRFuzzer: Specialized Fuzzing for LLVM Backend Code Generation
本文提出IRFuzzer,通过约束变异生成有效LLVM IR输入并引入匹配器表覆盖率反馈,对LLVM后端代码生成进行专用模糊测试,在29个后端目标中发现74个已确认新错误,显著提升了测试效果。
2025-07-14 cs.SE
Better Pay Attention Whilst Fuzzing
Fuzzing是漏洞检测的主流方法之一。然而,即使是最先进的模糊方法在一段时间后也变得无效,即,由于现有方法不能有效地将模糊注意力集中在覆盖难以触发的程序路径上,因此覆盖率几乎没有提高。换句话说,他们不能生成可以打破瓶颈的输入,因为在捕获测试输入和程序覆盖之间的复杂关系方面存在根本性的困难。特别地,现有的模糊器受到以下主要限制:1)缺乏对程序的总体分析以识别最“有回报”的种子,以及2)缺乏可以连续地选择和变异种子的更相关的“字节”的有效变异策略。在这项工作中,我们提出了一种称为ATTuzz的方法来系统地解决这两个问题。首先,我们提出了一个轻量级的动态分析技术,估计“奖励”覆盖每个基本块,并选择最有价值的种子。其次,我们根据神经网络模型对所选种子进行变异,该模型预测给定种子的某些字节上的某些变异是否会覆盖某个“奖励”块。该模型是一个配备了注意力机制的深度学习模型,该机制在模糊化的同时定期学习和更新。我们的评估表明,ATTuzz在实现更高的边缘覆盖率和发现新错误方面,在13个流行的现实世界程序上显着优于5个最先进的灰盒模糊器。特别是,ATTuzz在24小时运行中实现了2倍于AFL的边缘覆盖率和4倍于AFL的bug检测。此外,ATTuzz从长远来看持续改善边缘覆盖,即,在5天内实现比AFL多50%的覆盖率。
2021-12-14 cs.CR cs.SE
Large Language Models are Zero-Shot Fuzzers: Fuzzing Deep-Learning Libraries via Large Language Models
检测深度学习(DL)库中的错误(例如,TensorFlow/PyTorch)对于几乎所有下游DL系统都至关重要,可以确保最终用户的有效性/安全性。同时,传统的模糊技术对于这样一个具有挑战性的领域可能很难有效,因为输入DL程序需要满足输入语言(例如,Python)语法/语义和用于张量计算的DL API输入/形状约束。为了解决这些限制,我们提出TitanFuzz -第一种直接利用大语言模型(LLM)来生成模糊DL库的输入程序的方法。LLM是在数十亿代码片段上训练的巨大模型,可以自动回归生成类似人类的代码片段。我们的关键见解是,现代LLM还可以在其训练语料库中包含大量调用DL库API的代码片段,因此可以隐式地学习语言语法/语义和复杂的DL API约束,以生成有效的DL程序。更具体地说,我们使用生成和填充LLM(例如,Codex/InCoder)生成和变异有效/多样的输入DL程序,以进行模糊化。我们的实验结果表明,TitanFuzz可以实现比TensorFlow/PyTorch上最先进的模糊器高30.38%/50.84%的代码覆盖率。此外,TitanFuzz能够检测到65个bug,其中41个已经被确认为以前未知的bug。本文表明,现代Titanic LLM可以直接执行几十年来研究的基于生成和基于突变的模糊,同时完全自动化,可推广,并适用于传统方法(如DL系统)具有挑战性的领域。我们希望Ti…
2023-03-07 cs.SE
PrescientFuzz: A more effective exploration approach for grey-box fuzzing
PrescientFuzz利用目标程序控制流图语义信息,通过输入语料库调度器优先选择接近未覆盖边的输入进行变异,在Google FuzzBench基准测试中实现了领先的平均代码覆盖率和排名。
2025-01-24 cs.CR cs.SE
Efficient Fuzz Testing for Apache Spark Using Framework Abstraction
新兴的数据密集型应用程序越来越依赖于数据密集型可扩展计算(DISC)系统,如Apache Spark,以处理大数据。尽管它们很受欢迎,但DISC应用程序很难测试。近年来,模糊测试取得了显著的成功;然而,将这种传统模糊测试直接应用于大数据分析并非易事,因为:(1)DISC系统的长延迟禁止了模糊测试的适用性,以及(2)常规分支覆盖不太可能从DISC框架实现中识别应用逻辑。我们设计了一种新的模糊测试工具BigFuzz,它可以自动为Apache Spark程序的输入生成具体的数据。我们的方法的关键本质是,我们抽象的可执行规范的DISC框架的可执行的行为,我们设计的模式感知突变的基础上,在DISC应用程序中常见的错误类型。我们的实验表明,与随机模糊相比,BigFuzz能够将模糊时间加快1477倍,将应用程序代码覆盖率提高271%,并在检测应用程序错误方面实现157%的提高。BigFuzz的演示视频可在https://www.youtube.com/watch?上获得v=YvYQISILQHs&feature= youtu.be.
2021-03-08 cs.SE
Investigating Design Anti-pattern and Design Pattern Mutations and Their Change- and Fault-proneness
在软件演化过程中,当缺乏经验的开发人员修改他们的软件系统以修复错误或根据需求的变化添加新功能时,他们可能会引入设计反模式。开发人员还可以使用设计模式来提高软件质量,或者作为某些设计反模式的可能解决方案。因此,设计模式和设计反模式由开发人员引入、删除和变异。许多研究调查了设计模式和设计反模式的演变及其对软件开发的影响。然而,他们孤立地研究了设计模式或设计反模式,没有考虑它们的突变以及这些突变对软件质量的影响。因此,我们报告我们的研究设计模式和设计反模式之间的双向突变和这些突变对软件的变化和故障倾向的影响。我们分析了7个Java软件系统的快照,这些系统具有不同的规模、演化历史和应用领域。我们构建了马尔可夫模型来捕获不同设计模式和设计反模式突变的发生概率。我们的研究结果表明:(1)设计模式和设计反模式突变为其他设计模式和/或设计反模式。它们还表明:(2)某些更改类型主要触发设计模式和设计反模式的突变(重命名和对注释、声明和操作符的更改),以及(3)设计反模式和设计模式的某些突变在特定上下文中更容易出错。这些结果提供了重要的洞察设计模式和设计反模式的演变及其对软件系统的变化和故障倾向的影响。
2021-03-31 cs.SE
CoCoFuzzing: Testing Neural Code Models with Coverage-Guided Fuzzing
基于深度学习的代码处理模型在预测方法名称、总结程序和注释生成等任务上表现出了良好的性能。然而,尽管取得了巨大的进步,但深度学习模型往往容易受到对抗攻击,这可能会导致这些模型对意外输入的错误分类,从而严重威胁到这些模型的鲁棒性和可推广性。为了解决上述问题,已经提出了许多深度学习测试方法,然而,这些方法主要集中在测试图像、音频和文本分析等领域中的深度学习应用,由于程序的独特性质,其不能直接应用于神经模型以用于代码。在本文中,我们提出了一个基于覆盖率的模糊框架CoCoFuzzing,用于测试基于深度学习的代码处理模型。特别是,我们首先提出了十个变异算子自动生成有效的和语义保持源代码的例子作为测试,然后我们提出了一个基于神经元覆盖的方法来指导测试的生成。我们研究了CoCoFuzzing在三种最先进的神经代码模型上的性能,即,NeuralCodeSum、CODE2SEQ和CODE2VEC。我们的实验结果表明,CoCoFuzzing可以生成有效的和语义保留的源代码的例子,用于测试这些模型的鲁棒性和泛化能力,并提高神经元的覆盖率。此外,这些测试可用于通过对抗性再训练来提高目标神经代码模型的性能。
2021-06-17 cs.SE
Systematic Assessment of Fuzzers using Mutation Analysis
针对模糊测试工具效果评估难的问题,本文采用可合并多变异的现代变异分析技术,搭建评估基准,首次实现用变异分析评估模糊测试工具,实验发现现有工具检测变异比例低,为后续研究指明方向。
2023-07-25 cs.CR cs.SE
Fuzzing: Randomness? Reasoning! Efficient Directed Fuzzing via Large Language Models
Security Technology Inc.(360安全技术公司);School of Science Edith Cowan University(科学学院,埃迪斯科文大学)
针对模糊测试中随机性导致效率低下的问题,提出融合大语言模型的定向模糊测试框架RandLuzz,通过生成可达种子、构建漏洞专属变异器提升测试效率,实验验证其相较现有工具速度提升显著。
2025-06-30 cs.AI cs.CR cs.PL
Investigating Metamorphic Fuzz Oracle Enhancement via Large Language Models
Tsinghua University(清华大学)
提出基于大语言模型的MetaFOE框架,自动生成和集成蜕变关系以增强模糊测试预言,在OSS-Fuzz驱动上平均提升18.7%边覆盖并触发1528个独特崩溃。
2026-06-15 cs.CR cs.SE
MASFuzzer: Fuzz Driver Generation and Adaptive Scheduling via Multidimensional API Sequences
Beihang University(北京航空航天大学);Jinan University(暨南大学)
MASFuzzer通过多维API序列生成和自适应调度策略提升软件库测试效率,实现更高的代码覆盖率和漏洞发现能力。
2026-04-20 cs.SE
TransferFuzz: Fuzzing with Historical Trace for Verifying Propagated Vulnerability Code
针对代码复用导致漏洞传播但现有方法无法验证其在新环境中可触发的问题,提出TransferFuzz框架,通过提取基础二进制文件的历史轨迹并结合密钥字节引导变异与嵌套模拟退火算法,实现高效验证,速度为现有方法的2.5-26.2倍,还扩展了15个漏洞的受影响范围。
2024-11-27 cs.SE
BASFuzz: Towards Robustness Evaluation of LLM-based NLP Software via Automated Fuzz Testing
BASFuzz提出一种面向基于LLM的NLP软件的自动化模糊测试方法,通过文本一致性引导变异、Beam-Annealing Search算法及信息熵自适应策略,在六个数据集上实现90.335%测试有效性并显著降低时间开销。
2025-09-22 cs.SE
ShellFuzzer: Grammar-based Fuzzing of Shell Interpreters
本文提出 ShellFuzzer,一种结合基于语法的生成与随机变异来自动生成大量 shell 脚本以测试 Unix shell 解释器的技术,并在 mksh 中发现了 8 个此前未知的问题,其中 7 个已获维护者确认并修复。
2024-08-01 cs.SE
PatchFuzz: Patch Fuzzing for JavaScript Engines
针对JavaScript引擎补丁模糊测试的种子来源受限与PoC收集难问题,提出端到端可持续方法PatchFuzz,通过自动化收集历史漏洞PoC并结合对应补丁进行选择性插桩与变异优化,在六款引擎中发现54个漏洞并获62,500美元赏金。
2025-05-01 cs.CR cs.SE
Perception-Guided Fuzzing for Simulated Scenario-Based Testing of Autonomous Driving Systems
提出SimsV,一种面向多模块自动驾驶系统的感知引导模糊测试方法,通过高保真模拟器生成测试输入和预言机,成功发现商业级4级ADS Apollo的感知弱点及碰撞等严重问题。
2024-08-24 cs.SE
Facilitating Parallel Fuzzing with mutually-exclusive Task Distribution
模糊测试,或称模糊测试,已经成为软件工业中错误发现的事实标准技术之一。一般来说,模糊处理向目标程序提供各种输入,以发现未处理的异常和崩溃。在时间预算有限的业务部门,软件供应商通常并行启动许多模糊实例,作为增加代码覆盖率的常用方法。然而,大多数流行的模糊工具在并行模式下都是单纯地并发运行多个实例,而没有详细的工作负载分配。这可能导致不同的实例探索重叠的代码区域,最终减少并发的好处。在本文中,我们提出了一个通用的模型来描述并行模糊。该模型将互斥但权重相似的任务分配给不同的实例,促进了并发性和实例间的公平性。根据这个模型,我们开发了一个解决方案,称为AFL-EDGE,以改善AFL的并行模式,考虑一轮突变到一个唯一的种子作为一个任务,并采用边缘覆盖来定义一个种子的唯一性。我们已经在AFL之上实现了AFL-EDGE,并在9个广泛使用的基准程序上评估了AFL的实现情况。这表明AFL-EDGE可以提高AFL的边缘覆盖率。在24小时的测试中,根据实例数量的不同,AFL-EDGE给AFL带来的边缘覆盖率提升幅度在9.49%到10.20%之间。作为一个附带的好处,我们发现了14个以前未知的bug。
2021-09-17 cs.CR cs.SE
INSTILLER: Towards Efficient and Realistic RTL Fuzzing
针对现有CPU RTL模糊测试输入指令过长、难模拟真实中断等问题,提出基于VACO的指令蒸馏工具INSTILLER,搭配硬件相关种子策略,在覆盖率、漏洞检测等指标上优于现有方法。
2024-01-29 cs.CR cs.SE
KQFuzz: Knowledge-Guided Fuzzing for Quantum Libraries via Large Language Models
Shanghai Jiao Tong University(上海交通大学);Nanyang Technological University(南洋理工大学);Hong Kong University of Science and Technology(香港科技大学);Zhejiang University of Technology(浙江工业大学);College of Computing and Data Science(计算与数据科学学院);School of Physical and Mathematical Sciences(物理与数学科学学院)
针对量子库模糊测试灵活性和效率不足问题,提出KQFuzz,利用代码库知识结合适应度引导评估与两级变异,实现高质量测试生成。在三个量子库上测试效果显著优于其他方法,发现多个错误,推动量子计算领域发展。
2026-07-29 cs.AI cs.MA cs.SE
FeatureFuzz: Treating Bug-prone Features as Core Primitives for Compiler Fuzzing
State Key Laboratory of Novel Software Technology, Nanjing University(南京大学软件新技术国家重点实验室);Institute of Dataspace, Hefei Comprehensive National Science Center(合肥综合性国家科学中心数据空间研究所);Honor Device Co., Ltd(荣耀终端有限公司)
FeatureFuzz通过语义逻辑重组发现编译器缺陷,有效提升模糊测试的多样性与发现能力。
2026-10-19 cs.SE
Model-guided Fuzzing of Distributed Systems
本文提出利用 TLA+ 抽象模型定义覆盖率并引导分布式系统模糊测试,在 Etcd-raft 与 RedisRaft 上提升覆盖率、加速缺陷发现,并找到13个新缺陷。
2025-08-31 cs.DC cs.SE