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
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
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
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
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
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
Systematic Assessment of Fuzzers using Mutation Analysis
针对模糊测试工具效果评估难的问题,本文采用可合并多变异的现代变异分析技术,搭建评估基准,首次实现用变异分析评估模糊测试工具,实验发现现有工具检测变异比例低,为后续研究指明方向。
2023-07-25 cs.CR cs.SE
SeedSmith: LLM-Driven Seed Synthesis for Directed Fuzzing
UC Santa Barbara(加州大学圣塔芭芭拉分校);Arizona State University(亚利桑那州立大学)
研究针对定向模糊测试常无法触发崩溃的问题,提出SeedSmith这一基于大语言模型的管道,通过复制分析师工作流程合成种子,提升模糊器性能,在Magma和ARVO上取得显著加速和发现新漏洞的成果。
2026-07-16 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
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
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