【论文速读】| LLAMAFUZZ:大语言模型增强的灰盒模糊测试

图片

本次分享论文:LLAMAFUZZ: Large Language Model Enhanced Greybox Fuzzing

基本信息

原文作者:Hongxiang Zhang, Yuyang Rong, Yifeng He, Hao Chen

作者单位:University of California, Davis

关键词:模糊测试,大语言模型,二进制结构化数据

原文链接:

https://arxiv.org/pdf/2406.07714v2.pdf

开源代码:暂无

论文要点

论文简介:

灰盒模糊测试在揭示程序中的漏洞方面取得了成功。然而,随机变异策略限制了模糊测试器在处理结构化数据时的性能。专门的模糊测试器可以处理复杂的结构化数据,但需要额外的语法工作且吞吐量低。

本文探索了利用大语言模型(LLM)增强灰盒模糊测试的方法。利用LLM的预训练知识生成新的有效输入,并通过成对变异种子进一步微调模型以有效学习结构化格式和变异策略。LLM增强模糊测试器LLAMAFUZZ在标准bug基准测试Magma和各种实际程序上进行了实验,表现优于顶级竞争对手,平均多发现41个bug,并在所有实验中共发现了47个独特的bug。此外,LLAMAFUZZ在触发错误和达到错误方面展示了一致的性能。

图片

研究目的:

本研究旨在利用大语言模型(LLM)提高灰盒模糊测试在处理结构化数据时的性能。传统的灰盒模糊测试在生成结构化数据时效率低下,而LLM具有数据转换和格式的预训练知识,能够生成新的有效输入。通过微调LLM使其学习结构化格式和变异策略,可以增强模糊测试器的性能,发现更多漏洞。

研究贡献:

1. 提出了一个LLM增强的变异策略,可以应用于二进制和文本数据格式。

2. 提供了一种介于通用模糊测试器和专门模糊测试器之间的解决方案,能够学习结构化种子的模式并进行变异。

3. 提供了实验证据,证明LLM可以增强变异过程,提高代码覆盖率。

4. 通过实验解释了LLM如何增强模糊测试过程。

5. 设计了一种轻量级的异步方法,利用LLM和模糊测试器的组合,使LLAMAFUZZ能够在单GPU或多GPU上轻松部署。

引言

模糊测试是一种自动化软件测试技术,通过生成测试种子来发现目标程序或应用程序中的漏洞。在过去几年中,灰盒模糊测试因其在发现新漏洞方面的有效性而备受关注。随着软件系统的复杂性不断增加,适应性测试输入的需求也变得越来越重要。随机变异虽然取得了一些成就,但在生成结构化数据方面却遇到了瓶颈。通用灰盒模糊测试器通过比特级变异实现高吞吐量,但当处理需要结构化输入的应用时,盲目的随机比特级变异往往会破坏数据格式的完整性,导致低效的种子。

为了加速这一过程,honggfuzz提出了共享文件语料库以支持多进程和多线程运行,从而提高了生成更多测试用例的吞吐量。然而,仅仅增加吞吐量和添加更多随机变异策略在处理结构化种子时会形成瓶颈。AFL++和honggfuzz需要大量尝试才能变异出有效的结构化种子。此外,使用随机策略的模糊测试器结果不稳定。为了缓解这种不确定性,需要进行多次重复实验以公平比较。我们提出使用大语言模型(LLM)来增强模糊测试中的变异过程,通过预训练LLM了解数据转换和格式信息来生成新的有效输入,并通过微调LLM学习特定的结构化种子模式和变异策略,从而在通用模糊测试器和专用模糊测试器之间找到平衡。

研究背景

灰盒模糊测试因其在发现许多实际程序中的漏洞方面的有效性而受到关注。然而,随着软件开发的复杂性增加,许多程序使用高度结构化的数据格式,这对传统的模糊测试技术提出了重大挑战。传统的模糊测试主要在比特级进行变异,需要大量尝试才能有效变异这些结构化数据。基于语法的模糊测试提供了一种通过人类指定语法生成良好结构化种子的方法,保证生成的输入在语法上是有效的,并具有多样性。然而,语法指导的模糊测试需要额外的领域知识,这限制了其广泛使用的可能性。

研究方法

LLAMAFUZZ的研究方法主要包括三个阶段:

1. 微调准备:首先,我们收集了来自FuzzBench和AFL++实验的数据,创建了一个多样化的训练集。为了确保LLM能够处理各种数据格式,我们引入了一种数据转换方法,将二进制输入文件转换为统一的十六进制表示。这样做不仅使LLM能够理解并处理不同的数据格式,还确保了训练数据的多样性和有效性。

2. 微调LLM进行变异:在这一阶段,我们对预训练的LLM进行微调,使其能够学习特定的结构化种子模式和变异策略。通过在结构化数据上进行监督微调,LLM能够调整其权重,从而准确地理解输入的语法并生成有效的变异模式。我们使用了分步提示的方法,引导LLM生成符合预期格式的变异输出。

图片

3. 集成模糊测试器和LLM:为了解决LLM生成速度较慢与灰盒模糊测试高吞吐量之间的矛盾,我们设计了一种异步通信方法,将模糊测试器与LLM集成在一起。在这一过程中,当前种子被转换为十六进制表示后发送给LLM,LLM进行变异后将新的种子返回给模糊测试器。通过异步处理,确保模糊测试器在等待LLM生成变异种子的同时,能够继续高效地处理其他任务,从而提高整体测试效率。

研究实验

为了评估LLM在解决传统模糊测试在处理结构化数据方面的局限性,LLAMAFUZZ通过扩展AFL++实现,并在两个基准测试上进行了评估。实验包括在Magma基准测试和实际开源程序中的表现。结果显示,LLAMAFUZZ在bug发现数量和代码覆盖率方面均优于现有的模糊测试器,展示了其在处理结构化数据方面的优势。具体而言,LLAMAFUZZ在Magma基准测试中,平均比顶级竞争对手多发现41个bug,共发现47个独特bug。在实际开源程序测试中,LLAMAFUZZ在15个模糊测试目标中有10个显示出显著的代码覆盖率提升,平均提高27.19%。

图片

相关工作

模糊测试是一种自动化随机软件测试技术,用于发现目标程序或应用程序中的漏洞。传统的模糊测试方法包括黑盒模糊测试、白盒模糊测试和灰盒模糊测试。黑盒模糊测试对程序结构不了解,主要通过随机生成测试输入实现高执行量,但效果有限。白盒模糊测试利用程序分析提高代码覆盖率,但耗时较长。灰盒模糊测试结合了白盒和黑盒模糊测试的优点,通过反馈机制生成更有价值的测试种子,提高测试效率。

图片

论文结论

本文提出了一种利用大型语言模型(LLM)增强灰盒模糊测试的方法,通过预训练和微调LLM,使其能够有效地生成和变异结构化数据。实验结果表明,LLAMAFUZZ在bug发现数量和代码覆盖率方面均优于现有的模糊测试器,展示了其在处理结构化数据方面的优势。LLAMAFUZZ的成功验证了LLM在提高模糊测试效率和发现漏洞能力方面的潜力,具有广泛的应用前景。

原作者:论文解读智能体

校对:小椰风

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/35164.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云动态摘要 2024-06-27

给您带来云厂商的最新动态,最新产品资讯和最新优惠更新。 最新产品更新 veLinux 2.0 镜像邀测发布 火山引擎 2024-06-26 veLinux 2.0 镜像邀测发布 ECS支持100台实例批量续费/退订 火山引擎 2024-06-26 ECS支持100台实例批量续费/退订 弹性伸缩支持目标追踪规则(邀测) …

花8000元去培训机构学习网络安全值得吗,学成后就业前景如何?

我就是从培训机构学的网络安全,线下五六个月,当时学费不到一万,目前已成功入行。所以,只要你下决心要入这一行,过程中能好好学,那这8000就花得值~ 因为只要学得好,工作两个多月就能赚回学费&am…

Shell (一)Ubuntu的网络配置及软件安装

Ubuntu的配置及软件安装 网络配置 虚拟机提供的网络类型 桥接模式 主机和虚拟机分别拥有不同的ip地址,可以实现和外界设备通信 NAT模式 也可以联网,但是和主机共用同一个ip地址,外界无法识别虚拟机和主机发送的信息 仅主机模式 虚拟机不可…

数据资产与人工智能的融合之路:探讨如何结合AI技术优化数据资产管理,提升企业智能化水平

目录 一、引言 二、数据资产管理的现状与挑战 1、数据资产管理的重要性 2、数据资产管理的挑战 三、人工智能在数据资产管理中的应用 1、数据采集与整合 2、数据清洗与校验 3、数据安全与隐私保护 4、数据分析与挖掘 四、结合AI技术优化数据资产管理的策略 1、制定数…

【stm32-新建工程-HAL库版本】

stm32-新建工程-HAL库版本 ■ 1. 下载STM32Cube官方固件包(F1/F4/F7/H7)■ 2. 新建HAL库版本MDK工程所需的文件夹■ 2.1 新建工程文件- XXX项目并在下面新建如下文件夹■ 2.2 向Drivers文件添加如下文件■ 2.3 向Mrddlewares文件添加文件■ 2.4 设置Outp…

一篇文章带你玩懂数据库的基础函数

数据库的函数 单行函数1.数据函数2.字符串函数3.时间函数4.流程函数 多行函数聚合函数 阅读指南: 本文章讲述了对于数据库的单行和多行函数,如果读者感兴趣,后续我们会更新高级的操作在我们的对于数据库教程的合集中,大家可以来很…

唐兴通:银行金融数字化转型营销客户销售个金对公讲师培训师

唐兴通 数字化转型顾问、金融产品营销专家、数字化销售增长教练、沃顿商学院演讲嘉宾。全球创新增长战略大家EM罗杰斯(创新的扩散)、杰弗里摩尔(跨越鸿沟)、亨利切萨布鲁夫(开放式创新)在中国合作者。《中…

秋招倒计时?到底需要准备到什么程度?

秋招倒计时?需要准备到什么程度? 秋招,面向全国的毕业生,招聘的激烈程度可想而知!按照往年时间,秋招通常从八月初开始,九月黄金期,十月中后期。距今刚好差不多60天,时间其…

【PyScript】PyScript 基础入门

【PyScript】PyScript 基础入门 PyScript 是一个为了支持 Python 运行在浏览器的开源平台。 1.PyScript 应用程序的创建 PyScript 程序需要以下三个内容 一个提供给浏览器的 index.html 文件。PyScript 的运行环境描述,通常是一个 pyscript.json 或 pyscript.to…

从零到一打造自己的大模型:模型训练

前言 最近看了很多大模型,也使用了很多大模型。对于大模型理论似乎很了解,但是好像又缺点什么,思来想去决定自己动手实现一个 toy 级别的模型,在实践中加深对大语言模型的理解。 在这个系列的文章中,我将通过亲手实践…

入门篇:创建和运行Hello World

DevEco Studio安装完成后,可以通过运行Hello World工程来验证环境设置是否正确。接下来以创建一个支持Phone设备的工程为例进行介绍。 创建一个新工程 打开DevEco Studio,在欢迎页单击Create Project,创建一个新工程。根据工程创建向导&…

硬件开发笔记(二十二):AD21软件中创建元器件AXK5F80337YG原理图库、封装库和3D模型

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/140007117 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…

EE trade:贵金属投资的优点及缺点

贵金属(如黄金、白银、铂金和钯金)一直以来都是重要的投资和避险工具。它们具有独特的物理和化学特性,广泛应用于各种行业,同时也被视为财富储备。在进行贵金属投资时,了解其优点和缺点对于做出明智的投资决策至关重要。 一、贵金属投资的优…

240万亿巨量数据被洗出,足够训出18个GPT-4!全球23所机构联手,清洗秘籍公开

是时候把数据Scale Down了!Llama 3揭示了这个可怕的事实:数据量从2T增加到15T,就能大力出奇迹,所以要想要有GPT-3到GPT-4的提升,下一代模型至少还要150T的数据。好在,最近有团队从CommonCrawl里洗出了240T数…

算法刷题笔记--二叉树篇

感觉树这一章还是没搞清楚,可能是基础不扎实的缘故,学完C巩固底层知识后二刷 理论基础 确定递归函数的参数和返回值 :确定哪些参数是递归的过程中需要处理的,那么就在递归函数里加上这个参数, 并且还要明确每次递归的返回值是什么…

第二证券:美股市场新结算制度:T+2还是T+1?

美股商场新结算制度:T1结算。 从2024年5月28日开端,美国股票生意的结算周期将从之前的T2(生意日后两天)缩短为T1,即投资者当天卖出的股票,在生意后一个工作日就能收到结算的资金。 例如,假如生…

OpenFast软件中5MW_Land_DLL_WTurb.fst文件解读

这个文件5MW_Land_DLL_WTurb.fst是OpenFAST软件用于模拟NREL 5.0 MW基准陆上风力涡轮机的输入文件。该文件包含了多个部分,每个部分定义了不同的仿真设置和参数。以下是对文件主要内容的总结: 1. 标题和描述 文件标题说明这是OpenFAST的一个输入文件&a…

电脑的D盘E盘F盘突然消失了 电脑只剩下C盘了其他盘怎么恢复

现如今随着时代的发展,无纸化办公成为主流,这主要归功于电脑,能够通过电脑完成的工作绝不使用纸质文件,这不仅提高了工作效率,也让一些繁杂的工作变的更加简单。不过电脑毕竟是电子产品,不可避免的会出现一…

Java日志 - JUL

一、JUL学习总结 (1)总结 JDK自带的日志系统中已经为我们创建了一个顶层的RootLogger,可以针对这个顶层的RootLogger设置多个Handler(如ConsoleHandler, FileHandler等),如果想在控制台输出debug级别以上的…

定时推送邮件如何与自动化工作流程相结合?

定时推送邮件如何设置?怎么优化推送邮件的发送频率? 在现代商业环境中,自动化工作流程和定时推送邮件是提高效率和优化运营的重要工具。AoKSend将探讨如何将这两者结合起来,以实现更高效的工作流程和更好的客户沟通。 定时推送邮…