[論文閱讀] 人工智能 + 軟件工程 | 大型語言模型對決傳統方法:多語言漏洞修復能力大比拼

大型語言模型對決傳統方法:多語言漏洞修復能力大比拼

論文閱讀: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
英文地址,請注明出處:http://en.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間的數據交互需要通過復雜的串口級聯實現,響…