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

图片

本次分享论文为: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

校对:小椰风

图片

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

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

相关文章

DP算法的精髓是什么?

概述 DP(动态规划)通过将原问题拆分成一系列子问题,并通过对子问题求解。所以,也可以把DP算法定义为“多阶段决策最优解模型”(决策树) 同时该模型也具有以下明显特征: 问题的最优解包含子问题的最优解。反过来说的…

[全网最全]2024MathorCup妈妈杯ABCD题成品论文33页+配套完整代码数据汇总

所有题目的每一小问解答(含配套代码和数据)都已经更新完毕,其中C题成品论文33页更新,B题论文更新,A题半成品论文21页完整解答代码数据。 (完整版的资料放在文末了) A题 移动通信网络中PCI规划问…

使用云服务器搭建CentOS操作系统

云服务器搭建CentOS操作系统 前言一、购买云服务器腾讯云阿里云华为云 二、使用 XShell 远程登陆到 Linux关于 Linux 桌面下载 XShell安装XShell查看 Linux 主机 ip使用 XShell 登陆主机 三、无法使用密码登陆的解决办法 前言 CentOS是一种基于Red Hat Enterprise Linux&#…

Java入门学习Day05

本篇文章主要有创建package、关系运算符、逻辑运算符、三元运算符和其对应的实例。 一、创建package 创建一个包,把我们之前或之后用到的运算符代码都放到这个package里,方面管理。 包的命名通常是公司的网站名称倒着写(com.mayin),再加上…

C语言 数据输入输出

本文 我们来说 数据的输入与输出 及数据的运算 在程序的运算工程中 往往需要输入一些数据 而程序的运算 所得到的运算结果又需要输出给用户 因此 数据的输入与输出 就显得非常重要 在C语言中 不提供专门的输入输出语句 所有的输入输出 都是通过对标准库的调用 来实现的 一般 …

电池电量监测系统设计 单片机+LabVIEW+Matlab+Protues+Keil程序

目录 前言 提供 软件 系统展示 1.放电试验及其处理 2.硬件系统原理图 3.下位机程序 4.显示 5.上位机界面 6.上位机程序 7.文档 资料下载地址:电池电量监测系统设计 单片机LabVIEWMatlabProtuesKeil程序 前言 这套系统首先使用Matlab分析获得了电压…

KL散度的非负性证明

KL散度主要是用于衡量两个分布之间的差异。KL散度的公式如下: 其中,p,q分别是两个分布,且有: 证明KL散度的非负性,即证明: 即证明: 即证明: 由吉布斯不等式可知&#…

大模型(Large Models):探索人工智能领域的新边界

🌟文章目录 🌟大模型的定义与特点🌟模型架构🌟大模型的训练策略🌟大模型的优化方法🌟大模型的应用案例 随着人工智能技术的飞速发展,大模型(Large Models)成为了引领深度…

[C++]让C++的opencv库支持写出h264格式视频

当我们写下面测试代码时候&#xff1a; #include <opencv2/opencv.hpp>int main() {cv::VideoCapture cap("E:\\car.mp4"); // 打开默认摄像头if (!cap.isOpened()) {std::cout << "读取完毕!" << std::endl;return -1;}double fps ca…

Ja-netfilter(idea激活码破解原理)分析

Ja-netfilter&#xff08;idea破解&#xff09;分析 简介 ja-netfilter是一款可以破解jetbrainsIDE系列的javaagent jar 包。 原理简介 通过javaagent创造修改字节码的时机。通过asm修改相关类&#xff0c;达到hook特定方法的作用。主要依赖power&#xff08;rsa方法hook&a…

在 Google Cloud 上轻松部署开放大语言模型

今天&#xff0c;“在 Google Cloud 上部署”功能正式上线&#xff01; 这是 Hugging Face Hub 上的一个新功能&#xff0c;让开发者可以轻松地将数千个基础模型使用 Vertex AI 或 Google Kubernetes Engine (GKE) 部署到 Google Cloud。 Model Garden (模型库) 是 Google Clou…

2024认证杯数学建模C题思路模型代码

目录 2024认证杯数学建模C题思路模型代码&#xff1a;4.11开赛后第一时间更新&#xff0c;获取见文末名片 以下为2023年认证杯C题&#xff1a; 2024年认证杯数学建模C题思路模型代码见此 2024认证杯数学建模C题思路模型代码&#xff1a;4.11开赛后第一时间更新&#xff0c;获…

JavaScript进阶6之函数式编程与ES6ESNext规范

函数式编程 柯里化currycurrycompose示例&#xff1a;简化版展开写&#xff1a; debug示例一&#xff1a;示例二&#xff1a; 模板字符串css in js方案 箭头函数问题 生成器 generator应用场景 反射 Reflect 柯里化curry compose是curry的应用 在 lodash/fp underscore ramba …

53.网络游戏逆向分析与漏洞攻防-基础数据分析筛选-逆向分析寻找消息数据解压缩过程

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 如果看不懂、不知道现在做的什么&#xff0c;那就跟着做完看效果 现在的代码都是依据数据包来写的&#xff0c;如果看不懂代码&#xff0c;就说明没看懂数据包…

C# Solidworks二次开发:访问BOM表特性相关API详解

大家好&#xff0c;今天要讲的文章是和BOM表特性相关的API。 下面为要介绍的API&#xff1a; &#xff08;1&#xff09;第一个为GetConfigurationCount&#xff0c;这个API的含义为获取此BOM表可用或在此BOM表中使用的配置数&#xff0c;下面是官方的具体解释&#xff1a; …

phpMyadmin 设置显示完整内容

额外选项这里&#xff0c;默认部分内容改成完整内容 方案&#xff1a; 版本>4.5.4.1&#xff0c;修改文件&#xff1a;config.inc.php&#xff0c;添加一行代码&#xff1a; if ( !isset($_REQUEST[pftext])) $_REQUEST[pftext] F;

浮点数的表示

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

区块链媒体推广的8个成功案例解析-华媒舍

区块链领域作为一个新兴行业&#xff0c;媒体推广对于项目的成功发展起着至关重要的作用。本文将从八个成功案例中来分析区块链媒体推广的重要性和成功策略。 1. 媒体报道对于区块链项目的重要影响 媒体报道是提升区块链项目知名度和用户认可度的重要手段。对于区块链项目来说…

Java | Leetcode Java题解之第25题K个一组翻转链表

题目&#xff1a; 题解&#xff1a; class Solution {public ListNode reverseKGroup(ListNode head, int k) {ListNode hair new ListNode(0);hair.next head;ListNode pre hair;while (head ! null) {ListNode tail pre;// 查看剩余部分长度是否大于等于 kfor (int i 0…

CSS3新增

一些CSS3新增的功能 课程视频链接 目录 CSS3概述私有前缀长度单位remvwvhvmaxvmin 颜色设置方式rgbahslhsla 选择器动态伪类目标伪类语言伪类UI伪类结构伪类否定伪类伪元素 盒子属性box-sizing问题插播 宽度与设置的不同 resizebox-shadowopacity 背景属性background-originb…