Peeling Off the Cocoon: Unveiling Suppressed Golden Seeds for Mutational Greybox Fuzzing
Nanjing University(南京大学);State Key Laboratory for Novel Software Technology(新型软件技术国家重点实验室)
PoCo通过去除障碍条件语句并深入种子选择,提升现代覆盖引导的种子选择技术性能。
2026-02-27 cs.SE
Investigating Coverage Guided Fuzzing with Mutation Testing
覆盖率引导模糊测试(CGF)是一种有效的测试技术,已经从各种软件应用程序中检测出数十万个错误。它专注于最大化代码覆盖率,以在模糊化过程中揭示更多的错误。然而,更高的覆盖率并不一定意味着更好的故障检测能力。触发一个错误不仅涉及到特定的程序路径,但也达到感兴趣的程序状态在该路径。在本文中,我们使用变异测试,以提高CGF在检测错误。我们使用变异分数作为反馈来指导模糊检测错误,而不仅仅是覆盖代码。为了评估我们的方法,我们在5个基准上进行了精心设计的实验。我们选择国家的最先进的模糊技术Zest作为基线,并构建两个修改后的技术,它使用我们的方法。实验结果表明,该方法可以提高CGF在代码覆盖率和错误检测。
2022-05-01 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
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
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
Complementing Model Learning with Mutation-Based Fuzzing
在最小适当教师框架中制定的学习算法的持续挑战是有效地获得反例。在本文中,我们比较和结合一致性测试和基于变异的模糊方法获得反例时,学习有限状态机模型的反应式软件系统的反应式系统(RERS)的严格审查的挑战。我们发现,对于挑战的LTL问题,模糊器提供了一个独立的确认,学习过程已经成功,因为没有额外的反例被发现。然而,对于挑战的可达性问题,模糊器发现了更多的可达错误状态比学习者和测试者,尽管在某些情况下,学习者和测试者发现了一些没有被模糊器发现。这使我们相信,这些正交方法在模型学习的背景下是互补的。
2016-11-08 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
MOTIF: A tool for Mutation Testing with Fuzzing
MOTIF利用灰盒模糊测试生成C语言单元测试用例,克服了符号执行的局限性,能有效检测变异体中的注入故障,在安全关键CPS软件测试中表现更优。
2024-06-04 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
Fuzzing MLIR Compilers with Custom Mutation Synthesis
针对MLIR自定义方言测试生成器手动编写困难的问题,提出SYNTHFUZZ模糊测试器,结合语法模糊与自定义变异合成,自动推断上下文相关变异,显著提升覆盖率和有效测试比例。
2024-08-27 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
MTFuzz: Fuzzing with a Multi-Task Neural Network
Fuzzing是一种广泛用于检测软件错误和漏洞的技术。大多数流行的模糊器使用进化搜索来生成新的输入以最大化代码覆盖率。从本质上讲,这些模糊器从一组种子输入开始,对其进行变异以生成新的输入,并使用进化适应度函数来识别有希望的输入以进行进一步的变异。尽管取得了成功,但进化模糊者往往会陷入长序列的非生产性突变中。近年来,基于机器学习(ML)的变异策略已经报道了有希望的结果。然而,现有的基于ML的模糊器受到缺乏质量和多样性的训练数据的限制。由于目标程序的输入空间是高维和稀疏的,因此收集证明成功和不成功突变的许多不同样本来训练模型是极其昂贵的。在本文中,我们通过使用多任务神经网络来解决这些问题,该网络可以基于多个相关任务的不同训练样本来学习输入空间的紧凑嵌入(即,预测不同类型的覆盖率)。紧凑嵌入可以通过将大多数突变集中在嵌入的梯度高的部分上来指导突变过程。\tool发现$11$以前看不见的错误,并实现了平均$2\times$更多的边缘覆盖率相比,5个国家的最先进的模糊10个现实世界的程序。
2020-09-11 cs.SE
Fuzzing for CPS Mutation Testing
本文提出利用模糊测试为安全攸关CPS的C/C++软件生成变异测试数据,并通过在轨卫星组件实证表明其显著优于或可补充符号执行。
2023-08-15 cs.SE
Adaptive Grey-Box Fuzz-Testing with Thompson Sampling
Bloomberg(彭博)
模糊测试或“模糊”是指广泛部署的一类技术,用于通过生成一组输入来测试程序,以明确地找到错误和识别安全缺陷。灰盒模糊是最流行的模糊检测策略,它结合了轻量级程序插装和数据驱动过程来生成新的程序输入。在这项工作中,我们提出了一个机器学习的方法,建立在AFL,卓越的灰箱模糊,通过自适应学习概率分布在其变异算子的程序特定的基础上。这些操作员,这是随机选择均匀的AFL和突变模糊一般,决定如何产生新的输入,模糊的功效的核心部分。我们的主要贡献是两方面的:首先,我们表明,从训练计划中估计的突变算子的采样分布可以显着提高AFL的性能。其次,我们介绍了一个汤普森采样,基于带宽的优化方法,微调的mutator分布自适应,在模糊的过程中,一个单独的程序。一组跨复杂程序的实验表明,调整突变运算符分布生成的输入集产生显着更高的代码覆盖率,并发现更多的崩溃更快,更可靠的AFL的基线版本以及其他基于AFL的学习方法。
2018-08-24 cs.AI 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
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
Direct Mutation and Crossover in Genetic Algorithms Applied to Reinforcement Learning Tasks
University of Birmingham(伯明翰大学);Technology Innovation Institute(技术创新研究院)
神经进化最近被证明在强化学习(RL)设置中具有相当的竞争力,并且能够减轻基于梯度的方法的一些缺点。本文将集中于应用神经进化,使用一个简单的遗传算法(GA),以找到一个神经网络,产生最佳行为代理的权重。此外,我们提出了两个新的修改,提高了数据效率和收敛速度相比,初始实现。这些修改在OpenAI gym提供的FrozenLake环境中进行了评估,并证明明显优于基线方法。
2022-01-19 cs.LG cs.NE
Greybox fuzzing time-intensive programs
本文从几何视角研究定向灰盒模糊测试,提出并评估了面向时间密集型程序的模糊测试器 GoExploreFuzz,展示了其在量化路径多样性和自主调节变异带宽方面的能力。
2023-11-28 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
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
BeDivFuzz: Integrating Behavioral Diversity into Generator-based Fuzzing
分支覆盖率是评价模糊器性能的一个常用指标。然而,我们认为,仅仅关注覆盖许多不同的分支(即,丰富性)是不够的,因为大多数被覆盖的分支可能只被执行过一次,这不能激发对被覆盖代码的可靠性的高置信度。相反,执行分支的分布(即,均匀性)也应当考虑。也就是说,只有当生成的输入不仅触发许多不同的分支,而且还使用不同的输入均匀地触发它们时,才给出行为多样性。我们介绍BeDivFuzz,一个反馈驱动的模糊技术的发电机为基础的模糊。BeDivFuzz在语法有效输入的空间中区分结构保持和结构改变的突变,并根据收到的程序反馈将其突变策略偏向有效性和行为多样性。我们已经在Ant、Maven、Rhino、Closure、Nashorn和Tomcat上评估了BeDivFuzz。结果表明,BeDivFuzz比最先进的技术实现了更好的行为多样性,这是通过生态学领域既定的生物多样性指标(即Hill数)来衡量的。
2022-02-26 cs.SE
Type-Centric Kotlin Compiler Fuzzing: Preserving Test Program Correctness by Preserving Types
Kotlin是来自JetBrains的一种相对较新的程序设计语言:它的开发始于2010年,1.0版于2016年初完成。Kotlin编译器虽然缓慢而稳定地变得越来越成熟,但仍然会在更棘手的输入程序上不时崩溃,尤其是因为其功能及其交互的复杂性。这使得它成为模糊化的一个很好的目标,即使是基本形式的模糊化也可以发现大量的Kotlin编译器崩溃。然而,模糊化有一个问题,与崩溃的原因密切相关:生成一个随机的,非平凡的和语义有效的Kotlin程序是困难的。在本文中,我们谈论以类型为中心的枚举的形式,以类型为中心的编译器模糊,一种方法的灵感来自骨架程序枚举和基于生成和基于变异的模糊的组合,它解决了这个问题,专注于程序类型。在创建骨架程序之后,我们用合适类型的片段填充类型化的洞,这些片段通过生成来创建并通过语义感知突变来增强。我们在我们的Kotlin编译器模糊化框架中实现了这种方法,称为后端Bug测试(BBF),并进行了广泛的评估,不仅测试了我们方法的现实可行性,还将其与其他编译器模糊化技术进行了比较。结果表明,与其他模糊方法相比,我们的方法在生成语义有效的Kotlin程序方面要好得多,同时创建了更有趣的崩溃诱导输入。我们设法找到了50多个以前未知的编译器崩溃,其中18个在编译器团队分类后被认为是重要的。
2020-12-11 cs.PL cs.SE
An Exploratory Survey of Hybrid Testing Techniques Involving Symbolic Execution and Fuzzing
最近在实际符号执行方面的努力已经成功地在一定程度上缓解了路径爆炸问题,基于搜索的算法和组合方法。类似地,由于廉价多核商品计算机的性能提高,模糊作为一种可行的基于随机变异的测试方法也有希望。然而,结合符号执行和模糊,从而提供一个机会,以减轻彼此的缺点的可能性,还没有得到充分的探讨。例如,模糊可以加速符号执行中的路径探索,符号执行可以使模糊中的种子输入生成更有效。在我们看来,只有很少的混合解决方案提案以象征性的执行和模糊为中心。通过对77篇相关文献的分析,本文(1)对符号执行和模糊化的混合解决方案进行了综述,(2)分析了改进普通符号执行和模糊化的混合技术研究的差距,(3)提出了混合测试用例生成技术的新思路。
2017-12-19 cs.SE
Program Environment Fuzzing
本文提出一种基于灰盒模糊测试扩展的程序环境模糊测试方法,通过记录系统调用并选择性变异来搜索导致崩溃的环境,无需人工环境建模,其 EnvFuzz 工具在真实软件中发现 33 个未知缺陷(含 16 个 CVE)。
2024-09-02 cs.SE
ZTaint-Havoc: From Havoc Mode to Zero-Execution Fuzzing-Driven Taint Inference
该研究利用 AFL++ 的 havoc 变异实现零额外执行的 FTI,并借助热点字节指导变异,以极低开销提升边覆盖率。
2025-06-10 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
Triggering and Detecting Exploitable Library Vulnerability from the Client by Directed Greybox Fuzzing
Zhejiang University(浙江大学);Central University of Finance and Economics(中央财经大学)
本文提出LiveFuzz方法,基于定向灰盒模糊测试检测客户端程序触发库漏洞的可利用性,无需证明概念,通过目标元组扩展DGF技术,引入抽象路径映射机制和风险自适应突变策略,提升路径覆盖率和漏洞暴露速度。
2026-04-05 cs.CR cs.SE
MoCo: Fuzzing Deep Learning Libraries via Assembling Code
针对深度学习库模糊测试在输入多样性、测试预言构建等方面的局限,提出基于代码组装的MoCo模糊测试方法,可快速定位漏洞,在三类主流DL库中检测出64个新漏洞。
2024-05-13 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
PrescientFuzz: A more effective exploration approach for grey-box fuzzing
PrescientFuzz利用目标程序控制流图语义信息,通过输入语料库调度器优先选择接近未覆盖边的输入进行变异,在Google FuzzBench基准测试中实现了领先的平均代码覆盖率和排名。
2025-01-24 cs.CR cs.SE
Compositional Fuzzing Aided by Targeted Symbolic Execution
近年来,由于其快速的路径覆盖引导的输入变异策略,引导模糊已经能够发现现实世界中的软件中的许多新的漏洞。然而,大多数模糊器无法在程序的更深部分实现高覆盖率。此外,模糊器严重依赖于种子输入的多样性,通常是手动提供的,以便能够产生有意义的结果。在本文中,我们提出了野火,一种新的开源组合模糊框架。Wildfire通过模糊化C程序中的孤立函数来发现漏洞,然后使用有针对性的符号执行来确定利用这些漏洞的可行性。基于我们对23个开源源程序(近100万个)的评估,我们表明,由于覆盖率的增加,Wildfire比基线符号执行和模糊工具以及最先进的覆盖率引导工具发现了更多的真阳性结果,而这些工具所花费的分析时间只有10%。此外,Wildfire还发现了许多其他潜在的漏洞,这些漏洞的可行性可以通过组合来确定,以确认它们是否是误报。Wildfire还可以复制所有已知的漏洞,并在三个开源库中发现了几个以前未知的漏洞。
2019-10-11 cs.SE
Semantic Fuzzing with Zest
期望结构化输入的程序通常由语法分析阶段和语义分析阶段组成,语法分析阶段解析原始输入,语义分析阶段对解析的输入进行检查并执行程序的核心逻辑。QuickCheck谱系中基于生成器的测试工具是为这些程序生成随机语法有效的测试输入的一种很有前途的方法。我们提出了热情,一种技术,自动引导快速检查一样的随机输入生成器,以更好地探索语义分析阶段的测试程序。Zest将随机输入生成器转换为确定性参数生成器。我们提出的关键见解,突变的无类型的参数域映射到输入域的结构突变。Zest利用代码覆盖率和输入有效性形式的程序反馈来执行反馈导向的参数搜索。我们评估了Zest对AFL和QuickCheck的五个Java程序:Maven,Ant,BCEL,Closure和Rhino。Zest在基准语义分析阶段中覆盖的分支是基线技术的1.03 - 2.81倍。此外,我们在这些基准测试的语义分析阶段发现了10个新的错误。Zest是可靠快速地找到这些bug的最有效的技术,平均最多需要10分钟才能找到每个bug。
2019-06-07 cs.SE
Fuzzwise: Intelligent Initial Corpus Generation for Fuzzing
University of Texas at Dallas(德克萨斯大学达拉斯分校)
FuzzWise通过基于LLM的多代理框架,高效生成初始语料,提升模糊测试的代码覆盖和错误触发效率。
2025-12-24 cs.LG cs.SE
Systematic Assessment of Fuzzers using Mutation Analysis
针对模糊测试工具效果评估难的问题,本文采用可合并多变异的现代变异分析技术,搭建评估基准,首次实现用变异分析评估模糊测试工具,实验发现现有工具检测变异比例低,为后续研究指明方向。
2023-07-25 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
HornFuzz: Fuzzing CHC solvers
针对缺乏 CHC 求解器专用模糊测试工具的问题,提出基于蜕变测试的变异灰盒工具 HornFuzz,并在 Spacer 中发现多个严重缺陷。
2023-06-08 cs.SE
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
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
INSTILLER: Towards Efficient and Realistic RTL Fuzzing
针对现有CPU RTL模糊测试输入指令过长、难模拟真实中断等问题,提出基于VACO的指令蒸馏工具INSTILLER,搭配硬件相关种子策略,在覆盖率、漏洞检测等指标上优于现有方法。
2024-01-29 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
Fuzz4All: Universal Fuzzing with Large Language Models
University of Illinois Urbana-Champaign(伊利诺伊大学厄巴纳-香槟分校);University of Stuttgart(斯图加特大学)
本文提出 Fuzz4All,利用 LLM 自动提示与迭代模糊循环实现跨六种语言、九类系统的通用模糊测试,覆盖率优于专用工具并发现 98 个缺陷。
2024-12-09 cs.LG cs.SE
DeepHunter: Hunting Deep Neural Network Defects via Coverage-Guided Fuzzing
Nanyang Technological University(南洋理工大学);Harbin Institute of Technology(哈尔滨工业大学);Carnegie Mellon University(卡内基梅隆大学);University of Illinois at Urbana–Champaign(伊利诺伊大学厄巴纳-香槟分校);Kyushu University(九州大学);NVIDIA AI Technology Center(英伟达人工智能技术中心)
随着过去十年的数据爆炸,基于深度神经网络(DNN)的软件经历了前所未有的飞跃,并正在成为许多新颖工业应用的关键驱动力,包括许多安全关键场景,如自动驾驶。尽管在各种人类智能任务中取得了巨大的成功,但与传统软件类似,DNN也可能表现出由隐藏缺陷引起的不正确行为,从而导致严重的事故和损失。在本文中,我们提出了DeepHunter,一个自动化的模糊测试框架,用于搜索通用DNN的潜在缺陷。DeepHunter执行变形突变以生成新的语义保留的测试,并利用多个可插入的覆盖标准作为反馈,从不同的角度指导测试生成。为了向实际规模的DNN扩展,DeepHunter批量维护多个测试,并根据主动反馈优先选择测试。DeepHunter的有效性在3个流行的数据集(MNIST,CIFAR-10,ImageNet)和7个具有不同复杂性的DNN上进行了广泛的研究,并在6个覆盖标准作为反馈。大规模实验表明,DeepHunter可以(1)通过指导显著提高覆盖率;(2)生成有用的测试来检测错误行为,并促进DNN模型质量评估;(3)在DNN量化过程中准确捕获潜在缺陷,用于平台迁移。
2018-11-16 cs.AI cs.CR cs.LG
Revisiting Neural Program Smoothing for Fuzzing
Robert Bosch GmbH(罗伯特·博世有限公司);Saarland University(萨尔大学);CISPA Helmholtz Center for Information Security(CISPA亥姆霍兹信息安全中心)
本文通过大规模实验重新评估NPS模糊器,发现其原有性能主张不成立,并实现Neuzz++、提出评测指南与可复现平台MLFuzz。
2023-09-28 cs.AI cs.CR cs.SE
Tensor-Based Batch Fuzzing with Adaptive Perturbation Scaling for Deep Neural Networks
University of New South Wales(新南威尔士大学)
提出一种基于张量的批量模糊测试框架,通过自适应扰动缩放和规范感知的批量处理,显著提升深度神经网络测试吞吐量和违规发现效率。
2026-06-25 cs.SE
CoCoFuzzing: Testing Neural Code Models with Coverage-Guided Fuzzing
基于深度学习的代码处理模型在预测方法名称、总结程序和注释生成等任务上表现出了良好的性能。然而,尽管取得了巨大的进步,但深度学习模型往往容易受到对抗攻击,这可能会导致这些模型对意外输入的错误分类,从而严重威胁到这些模型的鲁棒性和可推广性。为了解决上述问题,已经提出了许多深度学习测试方法,然而,这些方法主要集中在测试图像、音频和文本分析等领域中的深度学习应用,由于程序的独特性质,其不能直接应用于神经模型以用于代码。在本文中,我们提出了一个基于覆盖率的模糊框架CoCoFuzzing,用于测试基于深度学习的代码处理模型。特别是,我们首先提出了十个变异算子自动生成有效的和语义保持源代码的例子作为测试,然后我们提出了一个基于神经元覆盖的方法来指导测试的生成。我们研究了CoCoFuzzing在三种最先进的神经代码模型上的性能,即,NeuralCodeSum、CODE2SEQ和CODE2VEC。我们的实验结果表明,CoCoFuzzing可以生成有效的和语义保留的源代码的例子,用于测试这些模型的鲁棒性和泛化能力,并提高神经元的覆盖率。此外,这些测试可用于通过对抗性再训练来提高目标神经代码模型的性能。
2021-06-17 cs.SE
Kaizen: Metamorphic Fuzzing and Differential Testing for LLM-Translated HPC Applications
Oregon State University(俄勒冈州立大学);Oak Ridge National Laboratory(橡树岭国家实验室)
研究大语言模型驱动的高性能计算应用代码翻译的正确性评估,提出用变质模糊测试和差分测试框架Kaizen,经源码变异、语法输入模糊等生成等价程序,暴露语义差异,评估揭示了编译成功与正确性的关系。
2026-07-07 cs.PL cs.SE
ShellFuzzer: Grammar-based Fuzzing of Shell Interpreters
本文提出 ShellFuzzer,一种结合基于语法的生成与随机变异来自动生成大量 shell 脚本以测试 Unix shell 解释器的技术,并在 mksh 中发现了 8 个此前未知的问题,其中 7 个已获维护者确认并修复。
2024-08-01 cs.SE
Perception-Guided Fuzzing for Simulated Scenario-Based Testing of Autonomous Driving Systems
提出SimsV,一种面向多模块自动驾驶系统的感知引导模糊测试方法,通过高保真模拟器生成测试输入和预言机,成功发现商业级4级ADS Apollo的感知弱点及碰撞等严重问题。
2024-08-24 cs.SE
Fuzzing with Quantitative and Adaptive Hot-Bytes Identification
本文提出一种定量与自适应热字节识别的模糊测试方法,通过表达性模型和信息量度量学习输入与分支条件的关系,并根据当前瓶颈分支动态调整策略,在真实程序和 LAVA-M 数据集上实现了更高的分支覆盖率和更多的漏洞发现。
2023-07-05 cs.CR cs.SE
Low-Cost and Comprehensive Non-textual Input Fuzzing with LLM-Synthesized Input Generators
本文提出G2FUZZ方法,利用LLM合成并变异Python输入生成器生成非文本数据,再结合传统模糊测试工具进一步变异,实现低成本且全面的非文本输入模糊测试,在代码覆盖率和漏洞发现上优于SOTA工具。
2025-01-31 cs.SE