【论文速读】| 基于大语言模型的模糊测试技术

图片

本次分享论文为:Large Language Models Based Fuzzing Techniques: A Survey

基本信息

原文作者:Linghan Huang, Peizhou Zhao, Huaming Chen, Lei Ma

作者单位:悉尼大学;东京大学;阿尔伯塔大学

关键词:大语言模型,模糊测试,软件测试,自动化测试

原文链接:

https://arxiv.org/pdf/2402.00350.pdf

开源代码:

https://github.com/EdPuth/LLMs-based-Fuzzer-Survey

论文要点

论文简介:本文系统回顾了将大语言模型(LLMs)与模糊测试技术结合应用于软件测试的方法。研究表明,虽然现有的模糊测试技术还未能实现完全自动化,并且软件漏洞持续演化,但基于LLMs的模糊测试生成表现出显著的优势。此趋势促进了LLMs生成的模糊测试技术更广泛的部署和应用潜力。

研究目的:探索大语言模型在软件测试领域的应用,尤其是如何通过LLMs提高模糊测试的效率和准确性,从而提升软件的可靠性和安全性。

研究贡献:

1.相关文献提出或改进了基于大语言模型(LLM)的模糊测试工具、框架及方法。

2.研究聚焦于LLM环境中的模糊测试方法、概念与框架。

3.研究探讨了模糊测试与LLM概念之间的相互作用,涵盖了理论和方法论的讨论。

4.研究分析了结合LLM进行模糊测试的优势、潜在限制及未来的发展方向。

引言

模糊测试技术在软件安全性领域扮演着越来越重要的角色,因为它能够有效地识别和修复潜在的软件漏洞。随着软件系统的复杂性不断增加,传统的模糊测试方法开始显得力不从心,迫切需要引入新的技术来提升测试的效率和准确性。在这样的背景下,大语言模型(LLMs)的引入为软件测试带来了新的机遇。通过结合LLMs的模糊测试技术,可以利用语言模型生成的数据来进行软件测试,这不仅提高了测试的效率,还增强了对漏洞的识别能力。这种结合LLMs的方法在自动化测试领域展现出了巨大的潜力,尤其是在提高软件测试的自动化程度和扩大测试覆盖范围方面。然而,尽管LLMs结合的模糊测试技术展现出了诸多优势,但它目前还没有实现完全自动化,并且面临着软件漏洞不断进化的挑战。本文对这一技术进行了系统的回顾和分析,探讨了其在软件测试中的应用前景和潜在的发展方向,旨在为软件测试的研究和实践提供有价值的指导和启示。

研究背景

大语言模型(LLMs)的发展极大促进了包括翻译、摘要、信息检索和对话交互在内的复杂语言任务。这些模型之所以强大,关键在于采用了变换器机制(transformers mechanism),这一技术显著增强了处理能力。根据2023年7月的数据,从2019年到2023年,共涌现出75个具有影响力的LLMs,被广泛应用于通用语言处理、医疗、教育、科学、法律和金融等多个领域。这些模型主要分为仅解码器语言模型、仅编码器掩码语言模型以及编码器-解码器语言模型三种类型,特别是仅解码器语言模型在零样本程序合成上的应用尤为突出。自1990年代起,模糊测试技术已广泛应用于通过生成意外的输入以测试软件的可靠性和安全性,成为软件测试不可缺少的部分。随着软件行业的发展,模糊测试的技术和方法持续进化,覆盖率引导的模糊测试成为了新的主流趋势。

模糊测试分析

模糊测试,作为评估软件可靠性和安全性的关键方法,已在众多软件领域得到广泛运用。面对传统模糊测试的限制,研究者开始利用大语言模型(LLMs)以提高测试效率和准确率。对基于LLMs的模糊测试工具的分析表明,这些工具主要依靠优化提示生成(prompt engineering)和种子文件的变异策略来提升测试的性能。性能评估指标包括代码覆盖率、错误检测数量、命中率和变异效率,同时还考虑了执行时间和漏洞检测速度等与时间相关的因素。

图片

AI软件与非AI软件之间在结构和功能方面的差异是显著的:AI软件能够进行自主学习和处理自然语言,而非AI软件主要依靠预设的规则和配置。基于这些差异,针对这两种类型的软件的基于LLMs的模糊测试工具(LLMs-based Fuzzer)在其设计上也呈现出不同。在研究中,一些模糊测试工具专门为AI软件开发,而其他工具则专注于非AI软件。这些工具的开发不仅提升了软件测试流程的自动化程度,而且为提高未来软件的质量和安全性奠定了坚实的基础。

图片

研究论述

相比于传统的模糊测试工具,基于大语言模型(LLMs)的模糊测试工具在API和代码覆盖率、计算效率、复杂错误检测能力以及自动化水平方面表现出显著优势。未来的任务和挑战包括探讨两种类型的基于LLMs的模糊测试工具、预训练数据使用的策略、时间效率、为基于大语言模型的模糊测试定义评估框架,以及如何实现完全自动化的问题。

论文结论

这项调研报告深入探讨了基于大语言模型(LLMs)的模糊测试技术,全面概述了其在AI及非AI软件领域的应用。报告总结了基于LLMs模糊测试工具的架构和理念,并讨论了LLMs如何增强传统模糊测试的性能。相较于传统模糊测试,基于LLMs的方法在提升API和代码覆盖率、识别更复杂错误以及增加测试自动化方面显示出显著优势。因此,LLMs基础上的模糊测试技术在推动软件测试领域进步方面具有极大潜力。这份调研的发现和见解预计将为研究和实践界提供重要资源,引导开发更高效、可靠且自动化的模糊测试方案。

原作者:论文解读智能体

润色:Fancy

校对:小椰风

图片

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

8. Spring Boot 配置文件

源码地址:SpringBoot_demo 本篇文章内容源码位于上述地址的com/chenshu/springboot_demo/config包下 1. 配置文件是什么 上节说到,Spring Boot的项目分为三个部分:源代码目录、资源目录、单元测试目录。 而配置文件的位置就位于资源目录res…

Python-VBA函数之旅-delattr函数

目录 1、 delattr函数: 1-1、Python: 1-2、VBA: 2、相关文章: 个人主页:https://blog.csdn.net/ygb_1024?spm1010.2135.3001.5421 delattr函数在Python中具有广泛的应用场景,主要用于动态地管理对象的属性。常用…

Python十大最佳实践:高效Python编程的十个关键方法

在当今的软件开发世界中,Python是一种极其重要且广泛使用的编程语言。以下是Python编程的十大最佳实践,这些实践将帮助你提升编程效率,优化代码质量,以及更好地应用Python的强大功能。 1.理解Pythonic的方式 “Pythonic”是指遵循…

傲基科技冲刺上市:依赖单一产品,元气未恢复,有股东提前退出

近日,傲基科技股份有限公司(下称“傲基科技”)递交招股书,准备在港交所主板上市,华泰证券为其独家保荐人。 据招股书介绍,傲基科技是一家提供家具家居类产品的品牌运营商及出口物流服务商。傲基科技在招股…

Java+vue2+springboot智慧班牌系统源码,支持PC端、移动客户端、电子班牌端,SaaS模式部署

智慧班牌作为一个班级的标识,也是班级空间日常管理的载体,作为班级文化展示交流窗口与学科教学、德育管理,以及学校信息収布等有机结合起来,作为学生展示的平台,又可应用于普及教育安全知识和科学文化,拓展…

Python爬虫:requests模块的基本使用

学习目标: 了解 requests模块的介绍掌握 requests的基本使用掌握 response常见的属性掌握 requests.text和content的区别掌握 解决网页的解码问题掌握 requests模块发送带headers的请求掌握 requests模块发送带参数的get请求 1 为什么要重点学习requests模块&…

shell-将密码输入错误超过4次的IP地址通过firewalld防火墙阻止访问

应用场景:防止恶意IP尝试ssh登录 脚本说明:将密码输入错误超过四次得ip地址通过iptable防火墙访问。 分析: 首先,需要知道ssh远程访问记录在哪一个文件中 /var/log/secure 其次,模拟远程访问输错密码,查…

2024 十五届蓝桥杯省赛Python B组

以下仅是我的答案,仅供参考,欢迎讨论。 A:穿越时空之门 二进制、四进制转换。答案:63。 B:数字串个数 排除0,总的方案数9^10000,减去不存在3和不存在7的2*8^10000,再加上同时不存在3和7的7^…

MYSQL09_行格式概述、变长字段、NULL值、记录头信息、真实数据、内部结构

文章目录 ①. InnoDB - 行格式概述②. 变长字段长度列表 ③. NULL值列表④. 记录头信息5字节⑤. 记录的真实数据⑥. Compact行记录的内部结构⑦. Dynamic和Compressed行格式 ①. InnoDB - 行格式概述 ①. 我们平时的数据以行为单位来向表中插入数据,这些记录在磁盘上的存放方式…

【C语言基础】:编译和链接(计算机中的翻译官)

文章目录 一、翻译环境和运行环境1. 翻译环境1.1 编译1.1.1 预处理1.1.2 编译1.1.3 汇编 1.2 链接 2. 运行环境 一、翻译环境和运行环境 我们在Visual Studio上写的C语言代码其实都是一些文本信息,计算机是不能够直接执行他们的,计算机只能够执行二进制…

基于Linux定时任务实现的MySQL周期性备份

1、创建备份目录 sudo mkdir -p /var/backups/mysql/database_name2、创建备份脚本 sudo touch /var/backups/mysql/mysqldump.sh# 用VIM编辑脚本文件,写入备份命令 sudo vim /var/backups/mysql/mysqldump.sh# 内如如下 #!/bin/bash mysqldump -uroot --single-…

下载好了annaconda,但是在创建一个新的Conda虚拟环境报错

文章目录 问题描述:解决方案1.生成一个配置文件 问题总结 问题描述: ProxyError(MaxRetryError(“HTTPSConnectionPool(host‘repo.anaconda.com’, port443): Max retries exceeded with url: /pkgs/pro/win-64/repodata.json.bz2 (Caused by ProxyErr…

系统架构最佳实践 -- 金融企业的资损防控

一、资损产生的原因 由于支付行业的特殊性与复杂性(主要处理资金相关业务),支付公司处于资损的风口浪尖,最容易发生资损,可以说资损风险无处不在。 常规来说,资损原因主要可以分为以下三类: 1…

【鸿蒙开发】第二十章 Camera相机服务

1 简介 开发者通过调用Camera Kit(相机服务)提供的接口可以开发相机应用,应用通过访问和操作相机硬件,实现基础操作,如预览、拍照和录像;还可以通过接口组合完成更多操作,如控制闪光灯和曝光时间、对焦或调焦等。 2 …

浮点数的表示

王道考研ppt总结: 二、个人理解 浮点数解决的是定点数的位数局限,导致表示范围有限的问题 阶码:由阶符和数值部分组成,阶符为,小数点向左移动,否则向右移动;数值部分,是底数的几次幂…

【新版】系统架构设计师 - 知识点 - 面向对象开发方法

个人总结,仅供参考,欢迎加好友一起讨论 文章目录 架构 - 知识点 - 面向对象开发方法面向对象开发方法面向对象的分析需求模型分析模型 面向对象的设计 用例模型关系、UML事务关系、类的关系 架构 - 知识点 - 面向对象开发方法 面向对象开发方法 分析阶段…

多协议接入视频汇聚EasyCVR平台vs.RTSP安防视频EasyNVR平台:设备分组的区别

EasyCVR视频融合云平台则是旭帆科技TSINGSEE青犀旗下支持多协议接入的视频汇聚融合共享智能平台。平台可支持的接入协议比EasyNVR丰富,包括主流标准协议,有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海…

面试算法-164-K 个一组翻转链表

题目 给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 你不能只是单纯的改变节点内…

MySQL事务与事务原理

目录 事务 事务的四大特性ACID 事务隔离级别 事务原理 存储引擎 四大特性的保证 MVCC 事务链 ReadView 事务 事务指逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么全部失败。 start transaction; -- 开启事务 或者 b…

【CDN(Content Delivery Network)】

文章目录 CDN(Content Delivery Network)视频流化服务和CDN:上下文多媒体: 视频存储视频的流化服务:多媒体流化服务:DASH流式多媒体技术3: DASH CDN(Content Delivery Network) 视频流化服务和…