[论文阅读] 人工智能 + 软件工程 | 大型语言模型对决传统方法:多语言漏洞修复能力大比拼

大型语言模型对决传统方法:多语言漏洞修复能力大比拼

论文阅读:On the Evaluation of Large Language Models in Multilingual Vulnerability Repair

arXiv:2508.03470
On the Evaluation of Large Language Models in Multilingual Vulnerability Repair
Dong wang, Junji Yu, Honglin Shu, Michael Fu, Chakkrit Tantithamthavorn, Yasutaka Kamei, Junjie Chen
Subjects: Software Engineering (cs.SE)

一段话总结

本文通过大规模实证研究,评估了现有自动漏洞修复(AVR)方法和大型语言模型(LLMs) 在七种编程语言(C、C#、C++、Go、JavaScript、Java、Python)中的漏洞修复性能。研究发现,GPT-4o在指令微调结合少样本提示策略下,Exact Match(EM)分数达28.71%,与最优AVR方法VulMaster(28.94%)相当;LLM方法在修复独特漏洞最危险漏洞上更具优势,对未见过的编程语言(如TypeScript)泛化能力更强;所有模型在Go语言上修复效果最佳,C/C++ 最差。该研究为LLMs在多语言漏洞修复中的应用提供了关键 insights。
在这里插入图片描述

研究背景

想象一下,你手机里的APP、电脑上的软件,就像一座座复杂的城堡,而“软件漏洞”就是城堡墙上的裂缝——黑客可能通过这些裂缝闯入,窃取你的信息、操控设备,甚至造成巨大损失。比如2021年的Log4Shell漏洞,堪称“十年一遇的大裂缝”,攻击者能在任何受影响的系统上执行恶意代码,导致无数用户遭殃。

随着软件越来越复杂,漏洞数量也在飙升。2023年报告的软件漏洞多达28961个,比2022年猛增15.57%。但修复这些漏洞可不是件容易事:一方面,需要专业知识;另一方面,手动修复平均要45天以上,远跟不上漏洞出现的速度。

过去,研究者们开发了不少基于深度学习的“自动漏洞修复工具”,但这些工具大多只擅长修复C/C++语言的漏洞。可现在的软件开发早已是“多国部队”——Python、Java、Go等语言都广泛使用,它们的漏洞同样需要关注。这就像只给消防员配备了扑灭木房火灾的工具,却面对的是钢筋水泥建筑的火灾,显然不够用。

而近年来大火的大型语言模型(LLMs),比如GPT系列,号称能理解多种语言,甚至能写代码。那么,它们能不能成为“多语言漏洞修复”的万能灭火器?这正是这篇论文要探究的问题。

主要作者及单位信息

  • DONG WANG,天津大学智能与计算学部
  • JUNJI YU,天津大学智能与计算学部
  • HONGLIN SHU,九州大学(日本)
  • MICHAEL FU,墨尔本大学(澳大利亚)
  • CHAKKRIT TANTITHAMTHAVORN,莫纳什大学(澳大利亚)
  • YASUTAKA KAMEI,九州大学(日本)
  • JUNJIE CHEN(通讯作者),天津大学智能与计算学部

创新点

这篇论文的“独特亮点”主要有三个:

  1. 首次全面对比:是首个系统评估“传统自动修复方法”和“大型语言模型”在多语言漏洞修复中表现的研究,覆盖了7种主流编程语言(C、C#、C++、Go、JavaScript、Java、Python)。

  2. 策略深挖:不仅测试了LLMs的基础能力,还设计了“零样本提示”“少样本提示”“指令微调”等多种策略,找到让LLMs发挥最佳效果的方式。

  3. 泛化能力验证:专门测试了模型对“从未见过的编程语言”(如TypeScript)的漏洞修复能力,这对实际应用至关重要——毕竟软件世界总有新语言出现。

研究方法和思路

研究团队就像一场“漏洞修复大赛”的组织者,设计了一套严谨的“比赛规则”,步骤如下:

  1. 选数据集:用了目前最新的多语言漏洞数据集REEF,里面有4466个真实漏洞案例(CVE),30987个修复补丁,覆盖7种语言。相当于给参赛者准备了丰富的“练习题”。

  2. 确定参赛选手

    • 传统自动修复工具(AVR):比如VulMaster、VulRepair等5种,都是该领域的佼佼者。
    • 预训练语言模型(PLM):比如CodeBERT、CodeT5等7种,擅长处理代码的AI模型。
    • 大型语言模型(LLMs):包括DeepSeek-Coder、Code Llama、Llama 3、GPT-3.5-Turbo、GPT-4o,既有开源的,也有闭源的。
  3. 设计比赛项目

    • 基础能力测试(RQ1):传统工具和PLM在多语言修复中表现如何?
    • LLM专项测试(RQ2):不同LLM用不同策略(零样本、少样本、指令微调)时,谁修复得最好?
    • 优劣势分析(RQ3):哪种方法擅长修复独特漏洞?哪种更能处理危险漏洞?
    • 泛化能力测试(RQ4):对没学过的语言(如TypeScript),模型还能修复漏洞吗?
  4. 评分标准:用三个指标打分:

    • Exact Match(EM):修复结果和正确答案完全一样的比例,相当于“全对”。
    • BLEU-4:生成代码和正确答案的相似度,看“意思对不对”。
    • ROUGE:评估修复内容的覆盖度,看“关键部分有没有修到”。

主要贡献

这篇论文的成果就像给“漏洞修复界”投下了一颗重磅炸弹,带来了三个关键价值:

  1. 找到了当前最佳选手:GPT-4o在“指令微调+少样本提示”策略下,EM分数达28.71%,和传统工具中最强的VulMaster(28.94%)几乎打平。这意味着LLMs已经具备挑战传统方法的实力。

  2. 揭示了LLMs的独特优势

    • 更擅长修复“独特漏洞”:LLM能修复169个传统工具修不了的漏洞,比VulMaster多24%。
    • 更能处理危险漏洞:在2023年最危险的25种漏洞中,LLM修复成功率32.48%,高于传统工具的31.15%。
    • 泛化能力强:对没学过的TypeScript语言,GPT-4o修复成功率28.57%,而VulMaster只有5.88%。
  3. 指明了语言差异:所有模型在Go语言上修复效果最好(平均EM 31.59%),在C/C++上最差(C++仅6.73%)。这可能和Go语法简洁、C/C++复杂有关,为后续优化指明方向。


2. 思维导图

在这里插入图片描述


3. 详细总结

1. 研究背景与目的
  • 背景:现有基于深度学习的自动漏洞修复(AVR)方法局限于特定语言(如C/C++),而大型语言模型(LLMs)具备跨语言能力,但在多语言漏洞修复中的有效性尚未明确。
  • 目的:通过大规模实证研究,对比现有AVR方法、预训练语言模型(PLMs)和LLMs在七种编程语言中的漏洞修复性能,探索LLMs的潜力与局限。
2. 实验设计
  • 数据集:采用REEF多语言漏洞数据集,包含4466个CVE、30987个补丁,覆盖7种语言(C、C#、C++、Go、JavaScript、Java、Python),经处理后得到10649个函数对(训练集7448、验证集1059、测试集2142)。
  • 模型
    • AVR方法:VulMaster、VulRepair等5种;
    • PLMs:CodeBERT、CodeT5等7种;
    • LLMs:DeepSeek-Coder、Code Llama、Llama 3、GPT-3.5-Turbo、GPT-4o共5种。
  • LLM策略:零样本提示、少样本提示(BM25选3个示例)、指令微调(结合LoRA)。
  • 评估指标:Exact Match(EM)、BLEU-4、ROUGE-1/2/L。
3. 研究结果(RQ1-RQ4)
研究问题关键发现关键数据
RQ1:现有方法表现VulMaster最优,Encoder-decoder PLMs(如CodeT5)优于其他PLMs;Go效果最好,C/C++最差VulMaster的EM(beam 1)为28.94%,CodeT5为14.33%
RQ2:LLMs表现指令微调+少样本策略最优,GPT-4o的EM达28.71%,与VulMaster无统计差异;Go最佳,C/C++最差GPT-4o(指令微调+少样本)EM 28.71%,McNemar检验p=0.8314
RQ3:方法优劣势LLM(GPT-4o)修复169个独特漏洞,多于VulMaster(136个);在2023年Top25危险CWE中修复率32.48%,高于AVR(31.15%)独特正确修复:LLM 169 > AVR 136 > PLM 8
RQ4:泛化能力GPT-4o对未见过的TypeScript漏洞EM达28.57%,远超VulMaster(5.88%)TypeScript修复:GPT-4o 28.57% vs VulMaster 5.88%
4. 结论与贡献
  • 首次系统评估多语言漏洞修复中的AVR、PLM和LLMs;
  • 验证了LLMs(尤其指令微调+少样本策略)在多语言修复中的潜力;
  • 揭示了LLMs的能力与局限,为未来研究提供指导;
  • 开源数据、代码和分析细节。

4. 关键问题

  1. 问题:在多语言漏洞修复中,LLMs与现有最优AVR方法(如VulMaster)的核心差异是什么?
    答案:LLMs(如GPT-4o,指令微调+少样本)在EM分数上与VulMaster接近(28.71% vs 28.94%),但在修复独特漏洞(169个 vs 136个)和2023年Top25危险CWE(32.48% vs 31.15%)上表现更优,且对未见过的语言(如TypeScript)泛化能力更强(28.57% vs 5.88%)。

  2. 问题:哪种LLM策略对多语言漏洞修复最有效?其性能如何?
    答案指令微调结合少样本提示策略最有效。其中,GPT-4o在该策略下EM达28.71%,BLEU-4为0.8448,ROUGE-1为0.9232,显著优于零样本(0.33%)和单纯少样本(26.89%)策略,且在7种语言中对Go修复效果最好(41.02%),C/C++最差(13.82%)。

  3. 问题:不同编程语言的漏洞修复效果有何差异?原因可能是什么?
    答案:所有模型在Go语言上修复效果最佳( median EM 31.59%),C/C++ 最差(C:8.03%,C++:6.73%)。可能原因是Go语言较新、语法简洁,而C/C++语法复杂、内存操作等漏洞类型更难修复。

总结

这篇论文通过大规模实验,全面对比了传统自动修复工具、预训练模型和大型语言模型在多语言漏洞修复中的表现。结果显示:

  • 传统工具中,VulMaster表现最佳(EM 28.94%);
  • 大型语言模型中,GPT-4o在“指令微调+少样本提示”策略下表现最优(EM 28.71%),与VulMaster不相上下;
  • LLMs在修复独特漏洞、危险漏洞和未见过的语言漏洞上更有优势;
  • 所有模型在Go语言上修复效果最好,C/C++最差。

这项研究证明了LLMs在多语言漏洞修复中的巨大潜力,为未来开发更通用、更高效的漏洞修复工具提供了重要参考。

解决的主要问题/成果

  1. 解决了“传统工具语言局限”的问题,证明LLMs能跨语言修复漏洞。
  2. 找到了LLMs的最佳使用策略(指令微调+少样本提示),为实际应用提供指导。
  3. 揭示了不同语言修复难度的差异,帮助研究者针对性优化模型。
  4. 开源了所有数据和代码,方便其他研究者继续探索。

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

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

相关文章

计算机网络2-3:传输方式

目录 串行传输和并行传输 同步传输和异步传输 单工、半双工以及全双工通信 总结 串行传输和并行传输 并行传输的优点是速度为串行传输的n倍,但也存在一个严重的缺点即成本高 同步传输和异步传输 单工、半双工以及全双工通信 总结

文档生成PPT软件哪个好?深度测评8款word转ppt生成工具

在日常办公与教学场景中,如何高效地将Word文档内容转化为专业PPT,一直是职场人士、教育工作者及内容创作者的共同痛点。随着AI技术的普及,一键式转换工具应运而生,它们不仅能精准识别Word中的标题与段落结构,还能自动套…

Azimutt:一款免费开源的多功能数据库工具

Azimutt 是一款支持数据库设计、表结构探索与分析、数据查询以及数据库文档生成功能的全栈工具。 Azimutt 是一个免费开源的项目,源代码托管在 GitHub: https://github.com/azimuttapp/azimutt 功能特性 多数据库支持:包括主流数据库 MySQ…

智算赋能:移动云助力“世界一流数据强港”建设之路

2024年5月,某创新产业园区智算中心正式揭牌成立。台下响起的掌声不仅是对一个项目的祝贺,更是客户对未来的期许—— 推动产业结构优化升级,领跑数字经济转型发展。5家500强企业、8家上市企业、17家独角兽企业……该创新产业园区在成为“世界一…

达梦自定义存储过程实现获取表完整的ddl语句

--导出表的ddl CREATE OR REPLACE PROCEDURE show_create_table( db IN varchar(255), tb IN varchar(255)) ASsql1 text;ret text : ;cmt text :;sql2 text :; BEGINFOR WSX IN (select TABLEDEF(db,tb) as ddl from dual) LOOPret: ret||WSX.DDL;END LOOP;ret : ret||chr(10…

【ARM】keil提示UVISION: Error: Encountered an improper argument

1、 文档目标 解决MDK退出debug模式后,提示UVISION: Error: Encountered an improper argument。 2、 问题场景 在退出Debug模式的时候,弹出提示窗口,提示:UVISION: Error: Encountered an improper argument。(如图…

【2025最新版】PDF24 Creator,PDF编辑,合并分割,格式转换全能工具箱,本地离线版本,完全免费!

软件介绍(文末获取)这款软件于1999年开发,至今已经有26年了,这26年里它都完全免费!简洁的操作界面,让用户轻松上手,高效完成 PDF 文件的处理,方便又实用。这次给大家带来的是一个本地…

如何使用VLLM进行openai/gpt-oss系列推理与支持工具调用

OpenAI时隔6年再次推出开源模型gpt-oss系列,本次gpt-oss系列包含两个模型gpt-oss-120b与gpt-oss-20b。由于模型原生支持一种新的量化技术MXFP4,所以模型的部署所需的显存也显著的降低。openai/gpt-oss-20b 只需要大概16GB的显存openai/gpt-oss-120b 需要…

SVN 查看历史信息

SVN 查看历史信息 引言 Subversion(简称SVN)是一个开源的版本控制系统,广泛应用于软件开发中。查看SVN的历史信息对于了解代码变更、追踪问题来源以及理解项目发展历程具有重要意义。本文将详细介绍如何在SVN中查看历史信息。 SVN历史信息概述…

vue+flask山西非遗文化遗产图谱可视化系统

文章结尾部分有CSDN官方提供的学长 联系方式名片 文章结尾部分有CSDN官方提供的学长 联系方式名片 关注B站,有好处!编号:F068 项目介绍: 本系统主要实现了以下功能: 非遗项目知识图谱可视化 非遗项目可视化关键词分析 …

Jetson NX Python环境搭建:使用APT轻松安装NumPy, scikit-learn, OpenCV

引言 在NVIDIA Jetson NX等ARM架构的嵌入式AI板子上搭建Python开发环境,特别是安装像NumPy、OpenCV这样包含C/C底层代码的科学计算库时,经常会遇到编译失败、耗时过长或依赖冲突等问题。这些问题尤其在通过pip从源代码编译安装时更为突出,例如…

Spring Boot项目中线程池的全面教程

一、线程池基础概念与重要性1.1 为什么需要线程池在Spring Boot应用中,线程池是一种至关重要的并发编程工具,它通过​​复用线程资源​​显著提升系统性能。主要优势包括:​​减少开销​​:避免频繁创建和销毁线程带来的性能损耗​…

机器学习第八课之K-means聚类算法

目录 简介 一、K-means 的核心思想 二、K-means 聚类的工作流程 1. 确定聚类数量 K 2.初始化 K 个簇中心 3.簇分配:将数据点分配到最近的簇 4.更新簇中心:重新计算每个簇的中心 5.判断是否收敛 6.输出聚类结果 三、聚类效果评价方式 四、k-…

【P21】OpenCV Python——RGB和BGR,HSV和HSL颜色空间,及VScode中报错问题解决

P21 1 RGB和BGR2 HSV和HSL,YUV2.1 HSV2.1. 色调H2.1.2 饱和度S2.1.3 明度V2.2 HSL2.3 YUV3 颜色空间转换实战4 VScode中报错问题5 Windows 下 VScode 路径格式(VScode很强大,路径格式写法自由多样)RGB/BGR人眼识别的颜色 &#xf…

.NET 应用程序 Linux下守护进程脚本编写

下面的脚本是生产可用,可靠的sh脚本,用于监控 .NET 应用程序并自动重启。假如你打包发布到Linux的程序名称为MyAspDemo;推荐打包模式为框架依赖:需要在Linux上安装对应的donet版本;1.在Linux下新建一个文件&#xff0c…

图论理论部分

旅游完回来继续学习。 先来看一下图论的理论部分,然后稍微做一下DFS的题目。 图的基本概念 二维坐标中,两点可以连成线,多个点连成的线就构成了图。 当然图也可以就一个节点,甚至没有节点(空图) 图的种…

WebSocket集群方案解析与实现

一、WebSocket集群核心挑战 1.1 关键问题分析 #mermaid-svg-gzRCTMr7wiVCokct {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-gzRCTMr7wiVCokct .error-icon{fill:#552222;}#mermaid-svg-gzRCTMr7wiVCokct .error-t…

使用dify搭建hr简历助手-上传简历-对接飞书ai表格

一、需求背景 hr在招聘平台获取简历后,想整理到简历库,在线管理和维护,及其不方便,所以用dify搭建一个简历上传助手,并且能保存到线上表格,方便维护和查看。 先看下最终的效果我们的工作流即可自动获取文件…

《算法导论》第 22 章 - 基本的图算法

大家好!今天我们来深入学习《算法导论》第 22 章的基本图算法。图论是计算机科学中的重要基础,这些基本算法是解决很多复杂问题的基石。本文将结合代码实现,帮助大家更好地理解和应用这些算法。思维导图22.1 图的表示在计算机中,图…

基于PROFINET的西门子PLC通讯:S7-200与S7-1200在自动化仓储中的协同应用

一.行业痛点与解决方案传统仓储物流系统中,采用西门子SMARTS7-200PLC(如CPUSR20、SR30等型号)的设备往往面临三大通讯难题:一是无法直接接入以太网网络,导致多PLC间的数据交互需要通过复杂的串口级联实现,响…