近期,人工智能领域兴起了大模型的研究热潮,一些研究开始将模糊测试(Fuzz)与大模型(LLM)进行结合,大模型赋能模糊测试又会碰撞出什么新的研究思路呢?小编将近两年Fuzz与LLM进行结合的论文统计出来以供大家查阅,还将此次分享的论文在研究方向上进行了分类,以供大家参考。论文及摘要情况如下:
Large Language Models
Based Fuzzing Techniques: A Survey
论文作者
Linghan Huang1 , Peizhou Zhao1 , Huaming Chen1 , Lei Ma2,3
论文作者机构
University of Sydney
The University of Tokyo
University of Alberta
发表期刊、会议
arXiv
所属方向
综述
论文摘要
在软件起到重要作用的现代,软件安全和漏洞分析已经成为软件开发的关键。模糊测试作为一种高效的软件测试方法,被广泛应用于各个领域。此外,大语言模型(LLM)的快速发展也促进了其在软件测试领域的应用,并展示出其卓越的性能。考虑到现有的模糊测试技术并非完全自动化,而且软件漏洞仍在不断演变,采用基于大语言模型生成的模糊测试已成为一种趋势。本调查报告系统地概述了将LLM和模糊测试结合到软件测试中的方法。本文从三个方面对文献进行了统计分析和讨论,包括LLMs、模糊测试和基于LLMs生成的模糊测试,总结了截至 2024 年的最新方法。我们的调查还研究了基于LLM 生成的模糊测试技术在未来广泛部署和应用的潜力。
论文作者
Feng Qiu, Pu Ji, Baojian Hua, and Yang Wang
论文作者机构
School of Software Engineering, University
of Science and Technology of China, China;
Suzhou Institute for Advanced Research,
University of Science and Technology of China,
China;
Computer Science Department,
The Johns Hopkins University, USA
发表期刊、会议
2023 IEEE 23rd International Conference on
Software Quality, Reliability, and Security
Companion (QRS-C)
所属方向
LLM辅助模糊测试
论文摘要
量子化学软件会实现第一原理的量子计算,在科学研究和化学行业中不可或缺。这类软件中的任何bug都会导致严重后果,从而破坏其可信度和可靠性。然而,对于这类软件的错误检测技术尚未得到充分研究。在本文中,为了填补这一空白,我们提出了一种利用大语言模型(LLMs)对量子化学软件进行模糊测试的新方法。我们的基本思想是,通过提供有价值的化学领域特定知识,利用LLMs从种子输入中生成语法和语义有效的输入文件。基于这个基本思想,我们设计并实现了CHEMFuzz,一个完全自动的模糊测试框架,用于检测量子化学软件中的bug。我们对CHEMFuzz进行了评估,利用包括GPT3.5、Claude-2和Bart在内的流行LLMs作为测试预示器,生成参数来突变输入并分析计算结果。CHEMFuzz检测到了40个独特的错误,并将其分类并报告给开发人员,代码覆盖率达到17.4%。
论文作者
Jueon Eom;Seyeon Jeong;Taekyoung Kwon
论文作者机构
Yonsei University;
Suresofttech Inc.
发表期刊、会议
arXiv
所属方向
LLM辅助模糊测试
论文摘要
模糊测试是一种有效的漏洞查找技术,但在处理需要精确语法输入的复杂系统(如JavaScript引擎)时存在困难。最近,研究人员采用语言模型进行上下文感知突变,以解决这个问题。然而,现有技术在利用覆盖引导进行模糊测试方面存在局限性,通常以黑盒方式进行。本文提出了一种称为CovRL(Coverage-guided Reinforcement Learning)的新技术,将大型语言模型(LLMs)与基于覆盖反馈的强化学习相结合。我们的模糊器CovRL-Fuzz将覆盖反馈直接集成到LLM中,利用词频-逆文档频率(TF-IDF)方法构建加权覆盖映射。这个映射在计算模糊奖励时起着关键作用,然后通过强化学习应用于基于LLM的突变器。通过这种方法,CovRL-Fuzz能够生成更有可能发现新的覆盖范围的测试用例,从而提高漏洞检测能力,同时最大限度地减少语法和语义错误,而无需额外的后处理。我们的评估结果表明,CovRL-Fuzz在代码覆盖率和漏洞查找能力方面优于现有的模糊测试器:CovRL-Fuzz在最新的JavaScript引擎中发现了48个与安全相关的真实漏洞,其中包括39个以前未知的漏洞和11个CVE编号的漏洞。
Fuzz4All: Universal Fuzzing
with Large Language Models
论文作者
Chunqiu Steven Xia;Matteo Paltenghi;
Jia Le Tian;Michael Pradel;
Lingming Zhang
论文作者机构
University of Illinois,Urbana-Champaign,
USA;
University of Stuttgart, Germany
发表期刊、会议
ICSE 2024
所属方向
LLM辅助模糊测试
论文摘要
模糊测试在发现各种软件系统中的错误和漏洞方面取得了巨大成功。接受编程或形式语言作为输入的测试系统(SUTs),例如编译器、运行时引擎、约束求解器和具有可访问API的软件库,尤其重要,因为它们是软件开发的基本构建模块。然而,现有的这类系统的模糊器通常针对特定语言,因此很难轻易地应用于其他语言甚至同一语言的其他版本。此外,现有模糊器生成的输入通常局限于输入语言的特定特性,因此很难揭示与其他或新特性相关的错误。本文提出了Fuzz4All,这是第一个通用意义上的模糊器,可以针对许多不同的输入语言和这些语言的许多不同特性进行测试。Fuzz4All背后的关键思想是利用大型语言模型(LLMs)作为输入生成和变异引擎,从而使该方法能够为任何实际相关语言生成多样且逼真的输入。为了实现这个潜力,我们提出了一种新颖的自动提示技术,用于创建适合模糊测试的LLM提示,并提出了一种新颖的LLM驱动的模糊测试循环,通过迭代更新提示以创建新的模糊测试输入。我们在九个接受六种不同语言(C、C++、Go、SMT2、Java和Python)作为输入的测试系统上评估了Fuzz4All。评估结果显示,在所有六种语言中,通用模糊测试实现了比现有的特定语言模糊器更高的覆盖率。此外,Fuzz4All在广泛使用的系统中发现了98个错误,如GCC、Clang、Z3、CVC5、OpenJDK和Qiskit量子计算平台,其中64个错误已由开发人员确认为以前未知的。
论文作者
Ruijie Meng, Martin Mirchev, Marcel Bohme
and Abhik Roychoudhury
论文作者机构
新加坡国立大学;
Sungkyunkwan University
发表期刊、会议
NDSS 2024
所属方向
LLM辅助模糊测试
论文摘要
如何在没有协议的机器可读规范的情况下找到协议实现中的安全漏洞?面对互联网,协议实现是在安全上关键的软件系统,输入必须遵循一个特定的结构和顺序,通常是用数百页的自然语言(RFC)非正式规定的。如果没有某种机器可读版本的协议,就很难自动生成遵循所需结构和顺序的有效测试输入来测试其实现。可以通过对一组记录的消息序列进行变异模糊测试来部分缓解这一挑战。然而,可用种子的集合通常非常有限,并且很难覆盖协议状态和输入结构的多样性。本文探讨了与预训练的大型语言模型(LLMs)进行系统交互的机会,这些模型已经摄取了数百万页人类可读的协议规范,以获取有关协议的机器可读信息,这些信息在协议模糊测试期间可用。我们使用LLMs关于常见协议的协议消息类型的知识,还通过生成消息序列并预测响应代码来检查LLMs在检测具有状态的协议实现中的“状态”的能力。基于这些观察结果,我们开发了一个LLM引导的协议实现模糊引擎。我们的协议模糊器CHATAFL为协议中的每种消息类型构建语法,然后通过与LLMs的交互来变异消息或预测消息序列中的下一条消息。来自PROFUZZBENCH的一系列真实世界协议的实验显示,在状态和代码覆盖率方面具有显著的功效。我们的LLM引导的有状态模糊器与最先进的模糊器AFLNET和NSFUZZ进行了比较。CHATAFL分别覆盖了47.60%和42.69%更多的状态转换,29.55%和25.75%更多的状态,以及5.81%和6.74%更多的代码。除了增强的覆盖率外,CHATAFL还在广泛使用和经过广泛测试的协议实现中发现了九个独特且以前未知的漏洞,而AFLNET和NSFUZZ仅分别发现了三个和四个。
论文作者
Yinlin Deng, Chunqiu Steven Xia,
Chenyuan Yang, Shizhuo Dylan Zhang,
Shujing Yang, Lingming Zhang
论文作者机构
伊利诺伊大学-香槟分校
发表期刊、会议
ICSE 2024
所属方向
LLM辅助模糊测试
论文摘要
深度学习(DL)库的漏洞会影响下游的深度学习应用程序,突出了该系统可靠的必要性。为DL库生成有效的输入程序以进行模糊测试具有挑战性,因为需要满足语言语法/语义和构建有效计算图的约束。最近,TitanFuzz工作表明,现代大型语言模型(LLMs)可以直接利用来隐式学习生成有效的DL程序所需的所有约束。然而,LLMs往往生成普通程序,遵循其庞大的训练语料库中看到的类似模式,而模糊测试偏好覆盖边缘情况或不太可能手工产生的不寻常输入。为填补这一差距,本文提出了FuzzGPT,这是第一种用于为模糊测试合成不寻常程序的技术。FuzzGPT建立在一个众所周知的假设上,即历史上触发漏洞的程序可能包含对于漏洞发现至关重要的罕见/有价值的代码成分。传统技术利用这种历史信息需要大量人力努力设计专用生成器,并确保生成的程序的有效性。FuzzGPT证明了这个过程可以通过LLMs的固有能力(包括微调和上下文学习)完全自动化,同时具有可推广性,并适用于具有挑战性的领域。虽然FuzzGPT可以与不同的LLMs一起使用,本文关注于两个功能强大的GPT风格模型:Codex和CodeGen。此外,FuzzGPT还展示了直接利用最近ChatGPT的指导跟随能力进行有效模糊测试的潜力。在两个流行的DL库(PyTorch和TensorFlow)上进行的评估表明,FuzzGPT可以明显优于TitanFuzz,检测出76个漏洞,其中49个已确认为以前未知的漏洞,包括11个高优先级的漏洞或安全漏洞。
论文作者
Sungmin Kang, Juyeon Yoon, Shin Yoo
论文作者机构
School of Computing KAIST Daejeon,
Republic of Korea
发表期刊、会议
ICSE 2023
所属方向
LLM辅助漏洞复现
论文摘要
研究者已经开发了许多自动测试生成技术来帮助开发人员编写测试。为了促进完全自动化,大多数现有技术的目的要么是增加覆盖范围,要么是生成探索性输入。然而,现有的测试生成技术在很大程度上无法实现更多的语义目标,例如生成测试来重现给定的错误报告。尽管如此,重现bug仍然很重要,因为我们的实证研究表明,由于问题而在开源存储库中添加的测试数量约为相应项目测试套件大小的28%。同时,由于难以将错误报告中的预期程序语义转换为测试预言机,现有的故障再现技术倾向于专门处理程序崩溃,这只是所有错误报告的一小部分。为了从一般的错误报告中自动生成测试,我们提出了LIBRO,这是一个使用大型语言模型(LLM)的框架,我们证明了其可以执行与代码相关的任务。由于LLM本身无法执行目标错误代码,我们将重点放在后处理步骤上,这些步骤有助于我们辨别LLM何时有效,并根据其有效性对生成的测试进行排名。我们对LIBRO的评估表明,在广泛研究的Defects4J基准上,LIBRO可以为33%的研究案例(750个案例中的251个)生成故障再现测试案例,我们建议首先对149个错误进行错误再现测试。为了减少数据污染(即LLM仅部分或全部记住测试代码的可能性),我们还根据LLM训练数据收集终止后提交的31份错误报告对LIBRO进行了评估:LIBRO为32%的研究错误报告生成了错误再现测试。总的来说,我们的结果表明,LIBRO有潜力通过自动从错误报告中生成测试来显著提高开发人员的效率。
论文作者
Yinlin Deng, Chunqiu Steven Xia,
Haoran Peng, Chenyuan Yang,Lingming Zhang
论文作者机构
University of Illinois Urbana-Champaign;
University of Science and Technology of China
发表期刊、会议
ISSTA 2023
所属方向
LLM辅助模糊测试
论文摘要
深度学习(DL)系统的受欢迎程度现已呈指数级增长,并在我们的日常生活中无处不在。这样的系统建立在流行的DL库之上,例如TensorFlow和PyTorch,它们提供API作为DL系统的构建块。在确保最终用户的有效性/安全性方面,检测这些DL库中的漏洞对于几乎所有下游DL系统都至关重要。同时,由于输入DL程序需要满足输入语言(例如Python)语法/语义和用于张量计算的DL API输入/形状约束。
为了解决这些限制,我们提出了TitanFuzz——这是第一种直接利用大型语言模型(LLM)生成模糊DL库的输入程序的方法。LLM是在数十亿个代码片段上训练的巨大模型,可以自回归生成类人代码片段。我们的关键见解是,现代LLM还可以在其训练语料库中包括大量调用DL库API的代码片段,因此可以隐式学习语言语法/语义和复杂的DL API约束,以有效生成DL程序。更具体地说,我们使用生成和填充LLM(例如,Codex/InCoder)来生成和变异有效/多样化的输入DL程序以进行模糊处理。我们的实验结果表明,TitanFuzz的代码覆盖率比TensorFlow/PyThorch上最先进的模糊器高30.38%/50.84%。此外,TitanFuzz能够检测到65个bug,其中41个已经被确认为以前未知的bug。
本文证明,现代的LLM可以直接执行几十年来研究的基于生成和基于突变的模糊化,同时是完全自动化的、可推广的,并适用于对传统方法具有挑战性的领域(如DL系统)。我们希望TitanFuzz能够在LLM用于模糊化的这一有前景的方向上激发更多的工作。
论文作者
Chaofan Shou, Jing Liu,
Doudou Lu, Koushik Sen
论文作者机构
加州大学伯克利分校;
加州大学尔湾分校;
Fuzzland公司
发表期刊、会议
arXiv
所属方向
LLM辅助模糊测试
论文摘要
随着区块链平台的指数级增长,数百万行智能合约代码被部署用于管理庞大的数字资产。然而,这些关键任务的代码中的漏洞导致了重大的利用和资产损失。因此,对智能合约进行彻底的自动化安全分析至关重要。本文介绍了LLM4Fuzz,旨在通过利用大型语言模型(LLMs)来智能引导和优先处理模糊测试活动,以优化智能合约的自动化安全分析。传统的模糊测试在探索广阔的状态空间方面效率低下,而LLM4Fuzz利用LLMs将模糊测试引导至高价值代码区域和更有可能触发漏洞的输入序列。此外,LLM4Fuzz还可以利用LLMs根据用户定义的不变量指导模糊测试,从而减少盲目探索的开销。对实际DeFi项目上LLM4Fuzz的评估显示,与基线模糊测试相比,其在效率、覆盖率和漏洞检测方面均取得了显著的增益。LLM4Fuzz还发现了五个可能导致超过247,000美元损失的关键漏洞。
论文作者
Yunlong Lyu, Yuxuan Xie,
Peng Chen, Hao Chen
论文作者机构
腾讯大数据安全实验室;
加州大学戴维斯分校
发表期刊、会议
arXiv
所属方向
LLM辅助模糊测试
论文摘要
编写高质量的模糊测试驱动程序耗时且需要对库的深入理解。然而,当前自动模糊测试驱动生成技术的性能仍有待改善。从消费者代码中学习的模糊测试驱动程序能够达到深层状态,但受限于其外部输入。另一方面,解释性模糊测试可以探索大多数API,但在广阔的搜索空间中需要大量尝试。我们提出了PromptFuzz,一种用于提示模糊测试的覆盖引导模糊器,该模糊器迭代生成模糊测试驱动程序以探索未发现的库代码。为了在提示模糊测试期间探索模糊测试驱动程序中的API使用,我们提出了几种关键技术:指导性程序生成、错误程序清理、覆盖引导的提示变异和受限的模糊器融合。我们实现了PromptFuzz,并在14个真实世界的库上评估了其有效性,并将其与OSS-Fuzz和最先进的模糊测试驱动生成解决方案(即Hopper)进行了比较。实验结果表明,PromptFuzz生成的模糊测试驱动程序的分支覆盖率比OSS-Fuzz高出1.61倍,比Hopper高出1.67倍。此外,PromptFuzz生成的模糊测试驱动程序成功检测出44个崩溃中的33个真实错误,其中27个已被相应社区确认。
Understanding Large Language
Model Based Fuzz Driver Generation
论文作者
Cen Zhang, Mingqiang Bai, Yaowen Zheng,
Yeting Li, Xiaofei Xie, Yuekang Li, Wei Ma,
Limin Sun, Yang Liu
论文作者机构
南洋理工大学;
中科院信息工程研究所;
中国科学院大学网络安全学院;
新加坡管理大学;
新南威尔士大学
发表期刊、会议
arXiv
所属方向
LLM辅助模糊测试
论文摘要
库API 模糊测试需要模糊驱动程序。自动生成模糊驱动程序具有挑战性,因为它要求生成正确、稳健的高质量 API 使用代码。基于大语言模型的模糊驱动生成器是一个很有前景的方向。与传统的基于程序分析的生成器相比,它是一种基于文本的方法,更加轻便和通用。它可以轻松利用各种 API 使用信息源进行生成,并生成对人类友好的代码。尽管如此,人们对这一方向仍然缺乏基本的了解。为了填补这一空白,我们针对使用 LLMs 有效生成模糊驱动程序的核心问题进行了研究。为了系统地理解,我们设计并分析了从基本到增强的 5 种查询策略。为了进行规模评估,我们建立了一个半自动框架,其中包含一个从 30 个流行 C 项目中收集的 86 个驱动程序生成问题的测验,以及一套用于精确验证驱动程序有效性的标准。总共生成和评估了 189,628 个模糊驱动程序,使用了 0.22 亿个标记。此外,还将生成的驱动程序与工业上使用的驱动程序进行了比较,以获得实用的见解(3.12 CPU 年模糊实验)。我们的研究显示 1) 基于 LLM 的生成显示出良好的实用性。64%的问题可以完全自动解决,如果加入人工语义验证器,这一数字将上升到 91%。此外,生成的驱动程序与业界常用的驱动程序相比,性能更具竞争力;2)LLM 难以生成需要复杂 API 使用细节的模糊驱动程序。有三种关键设计可以提供帮助:重复查询、使用示例查询和迭代查询。将它们结合起来,就能产生一种占主导地位的策略;3)仍有很大的改进余地,例如自动语义正确性验证、API 用途扩展和语义oracle生成。
Attack Prompt Generation for
Red Teaming and Defending Large
Language Models
论文作者
Boyi Deng, Wenjie Wang, Fuli Feng,
Yang Deng, Qifan Wang, Xiangnan He
论文作者机构
中国科学技术大学;
新加坡国立大学;
Meta AI
发表期刊、会议
EMNLP 2023
所属方向
借助Fuzz对LLM测试
论文摘要
大型语言模型(LLM)容易受到红队攻击,这种攻击会诱使LLM 生成有害内容。以往的研究通过手动或自动方法构建攻击提示,这些方法在构建成本和质量方面都有各自的局限性。为了解决这些问题,我们提出了一种结合人工和自动方法的综合方法,以经济的方式生成高质量的攻击提示。具体来说,考虑到新出现的 LLM 的强大能力,我们提出了一种攻击框架,指导 LLM 通过上下文学习模仿人类生成的提示。此外,我们还提出了一种防御框架,通过与攻击框架的迭代交互来微调受害 LLM,从而提高它们抵御红队攻击的安全性。对不同 LLM 的广泛实验验证了我们提出的攻击和防御框架的有效性。此外,我们还发布了一系列名为 SAP 的不同规模的攻击提示数据集,以方便对更多 LLM 进行安全评估和增强。我们的代码和数据集可在此https://github.com/Aatrox103/SAP上获取。
GPTFUZZER: Red Teaming Large
Language Models with Auto-Generated
Jailbreak Prompts
论文作者
Jiahao Yu,Xingwei Lin, Zheng Yu, Xinyu Xing
论文作者机构
Northwestern University;ant Group
发表期刊、会议
arXiv
所属方向
借助Fuzz对LLM测试
论文摘要
大语言模型(LLMs)近来大受欢迎,从闲聊到人工智能驱动的编程都得到了广泛应用。然而,尽管LLM 取得了巨大成功,但它们并不完全可靠,可能会就如何进行有害或非法活动提供详细指导。虽然安全措施可以降低此类输出的风险,但对抗性越狱攻击仍可利用 LLM 制作有害内容。这些越狱模板通常是人工制作的,因此大规模测试具有挑战性。本文介绍的 GPTFuzz 是一种新型黑盒越狱模糊框架,其灵感来自 AFL 模糊框架。GPTFuzz 不需要人工工程,而是自动生成用于红队 LLM 的越狱模板。GPTFuzz 的核心是将人工编写的模板作为初始种子,然后对其进行变异,生成新模板。我们详细介绍了 GPTFuzz 的三个关键组成部分:用于平衡效率和可变性的种子选择策略、用于创建语义等同或相似句子的变异运算符,以及用于评估越狱攻击成功与否的判断模型。我们针对各种商业和开源 LLM(包括 ChatGPT、LLaMa-2 和 Vicuna)在不同攻击场景下的表现对 GPTFuzz 进行了评估。结果表明,GPTFuzz 生成的越狱模板成功率一直很高,超过了人工制作的模板。值得注意的是,即使使用次优的初始种子模板,GPTFuzz 对 ChatGPT 和 Llama-2 模型的攻击成功率也超过了 90%。我们预计,GPTFuzz 将有助于研究人员和从业人员检查 LLM 的鲁棒性,并鼓励进一步探索如何提高 LLM 的安全性。
论文作者
Zhuoer Xu1*, Jianping Zhang2*, Shiwen Cui1,
Changhua Meng1, Weiqiang Wang1
论文作者机构
Tiansuan Lab, Ant Group
Department of Computer Science
and Engineering, The Chinese University
of Hong Kong
发表期刊、会议
arXiv
所属方向
借助Fuzz对LLM测试
论文摘要
大语言模型已经成为各类自然语言任务的最新解决方案,并被集成在到现实世界的各类应用中。然而,LLM可能会表现出不良的安全问题,如社会偏见和不良内容,因而具有潜在的危害性。因此,在部署前对其安全问题进行评估势在必行。然而,现有方法生成的测试样例的质量和多样性还远远不能令人满意。这些方法不仅耗费大量人力物力,而且对于LLM应用的特定测试领域而言,测试样例的生成缺乏可控性。本着将LLM应用与LLM测试的理念,我们提出了第一个LLM测试工具,称为TroubleLLM,用于生成有关LLM 安全问题的可控测试样例。大量的实验和人工评估证明TroubleLLM在生成质量和生成可控性方面的优越性。
以上就是本次分享的全部内容,欢迎各位读者留言交流。
—END—