關閉選單
PortGPT:研究人員如何教導人工智慧自動移植安全補丁
PortGPT 解決舊版軟體維護的痛點

確保舊版軟體的安全性通常意味著需要將新版本中的修補程式移植到舊版本中。這是一項例行但繁瑣的工作,尤其對於像 Linux 核心這樣的大型開源專案而言更是如此。一項新的研究工作開發了一種工具,該工具利用大型語言模型自動完成這項工作。

對於許多開源專案,特別是涉及關鍵基礎設施的軟體(如 Linux 核心),長期支援(LTS)版本是維護穩定性和服務舊版用戶的基石。然而,當主線(Mainline)分支發現並修復安全漏洞時,必須將這些修復應用於所有正在維護的穩定分支。這個稱為「向後移植」(Backporting)的過程,需要維護人員深入理解不同版本程式碼之間的差異,手動調整修補程式以避免引入新的錯誤。PortGPT 的出現,旨在透過人工智慧自動化這一耗時且高技術要求的工作,以更快的速度確保舊版軟體的安全性。

PortGPT:基於 LLM 的自動化向後移植系統

來自中國、美國和加拿大的研究團隊開發了PortGPT,這是一個旨在自動將安全修補程式從主線分支遷移到舊版本軟體的人工智慧系統。他們將自己的方法描述為試圖複製開發人員手動調整補丁時的推理步驟。

PortGPT 的核心目標是模仿軟體開發人員在執行向後移植時的思維過程和操作。開發人員在向後移植一個安全修補程式時,需要追蹤原始程式碼的變動、識別目標版本中相應的程式碼位置,並調整補丁的內容(例如函數名稱、變數結構或周邊程式碼邏輯)以適應舊版本的環境。PortGPT 透過大型語言模型(LLM)的強大程式碼理解和生成能力,來實現這種複雜的「推理步驟」。

 

開源軟體維護中的挑戰:向後移植的複雜性

開源專案會維護不同的分支,以確保穩定性並服務長期用戶。當主分支中的錯誤或漏洞被修復後,維護者必須將該修復移植到穩定且長期支援的版本中。這個過程稱為向後移植(註),可能需要一些時間,通常需要了解不同版本之間的程式碼變更情況。

開源專案的維護體系通常包含一個不斷發展的主分支和多個穩定或長期支援(LTS)分支。LTS 版本對企業和關鍵系統至關重要,但隨著時間推移,它與主分支的程式碼差異越來越大。當一個安全漏洞在主分支被修復,該修復必須「向後移植」到 LTS 版本中。程式碼上下文的差異、API 的變動以及檔案結構的演進,都使得簡單的複製貼上不可行,這要求維護者投入大量精力進行手動修正和驗證。這也是 PortGPT 試圖透過自動化解決的效率瓶頸。

註:

PortGPT 的技術架構與自主代理趨勢

PortGPT 是基於一個大型語言模型構建,該模型透過一組專用工具與程式碼互動。這些工具使其能夠存取原始檔案、查看程式碼歷史記錄、定位函數並逐步套用修補程式。這項工作也凸顯了一個更廣泛的趨勢,即使用大型語言模型作為自主代理進行軟體維護。透過整合程式碼理解、版本控制感知和回饋循環,像 PortGPT 這樣的工具展示了人工智慧如何參與實際的開發工作流程。

PortGPT 的創新之處在於它不僅僅是 LLM,而是一個配備了專用工具集的「自主代理」(Autonomous Agent)。這些工具賦予 LLM 實際操作程式碼庫的能力,包括:存取和讀取目標版本的原始檔案;分析程式碼的版本控制歷史記錄以理解變革脈絡;精確定位需要修補的函數或程式碼區塊;以及根據 LLM 的判斷逐步套用和調整修補程式。這種架構代表了軟體工程領域的重大進步:LLM 正從簡單的程式碼生成器,轉變為能夠理解、推理並執行複雜開發任務的代理人,將人工智慧深度整合到實際的軟體開發與維護工作流程中。

 

加速安全修補與維護效率的未來

PortGPT 的研究成果展示了人工智慧在解決軟體安全維護中「繁瑣但必要」問題的巨大潛力。透過自動化安全修補程式的向後移植,PortGPT 可以大幅減少開源專案維護人員的工作量,縮短安全修復部署到舊版軟體所需的時間,從而降低長期運行舊版本軟體的安全風險。這種基於 LLM 的自主代理模式,預示著未來軟體維護將更加依賴人工智慧工具,使開發者能夠專注於創新和解決更複雜的架構問題。


資料來源:https://www.helpnetsecurity.com/2025/11/05/portgpt-ai-backport-security-patches-automatically/
 
由中美加團隊開發的 PortGPT 是一個基於大型語言模型的 AI 系統,能自動將主分支的安全修補程式向後移植到舊版軟體,大幅減輕開源專案維護的繁瑣工作。