新聞

AI程式碼生成安全隱憂:語法正確率破九成,但資安漏洞依舊氾濫

2025 / 08 / 11
編輯部
AI程式碼生成安全隱憂:語法正確率破九成,但資安漏洞依舊氾濫
隨著人工智慧技術快速發展,大型語言模型(LLMs)在程式碼生成方面已展現驚人進步。應用程式安全公司Veracode最新研究顯示,新版AI模型產出的程式碼編譯成功率已有顯著提升,然而在資安層面卻毫無進展,特別是AI生成的Java程式碼安全性表現更是令人憂心。

編譯成功率大躍進,資安表現原地踏步

Veracode針對超過100個大型語言模型進行了全面性測試,評估這些AI聊天機器人使用四種程式語言生成語法正確且安全程式碼的能力。研究結果呈現出令人矛盾的現象:過去一年發布的LLMs所生成的程式碼中,超過90%能無錯誤編譯,這比2023年6月前不到20%的比例出現了戲劇性的大幅提升。

然而,令人擔憂的是,僅有55%的程式碼能夠通過資安掃描,而這個比例長期以來一直沒有明顯改善。Veracode技術長Jens Wessling強調,大型語言模型無法替代必要的資安工作,因為LLMs學習的程式碼雖然語法正確,但多數開發人員並不完全理解其決策的資安影響。

這個問題的根源在於LLMs產出的程式碼是根據現有程式碼建模的,而這些程式碼本身就帶有資安漏洞。當缺乏專業知識的非開發人員使用LLMs生成程式碼時,這種做法被稱為「憑感覺寫程式」(vibe coding),在這種情況下,資安漏洞進入正式產品程式碼的風險將顯著提高。

相關文章:Base44「vibe coding」爆重大認證漏洞 可完全繞過SSO存取受保護的應用程式

AI使用普及率攀升,風險隨之擴大

近兩年來,開發人員使用LLMs生成程式碼的情況已大幅增加。根據多項調查顯示,約四分之三的開發人員已在開源專案中應用AI程式碼生成技術,而在巴西、德國和印度,高達97%的開發人員正在使用LLMs。

Bugcrowd創辦人Casey Ellis表示,企業必須尋找保護程式碼的方法,因為AI輔助開發將持續普及。他指出,若某項技術確實能讓開發過程更好、更快、更省成本,它必然會迅速普及,因為人們都渴望更有效率、更經濟的解決方案。

模型規模與程式碼品質無關聯性

Veracode研究中最令人意外的發現之一是,LLM模型的規模大小對語法正確性和程式碼安全性都沒有顯著影響。參數少於200億的小型模型能夠達到與參數超過1000億的大型模型相當的表現,這打破了「模型越大效能越好」的普遍認知。

2023年上半年發布的早期LLMs生成的程式碼大多無法通過編譯,而過去一年發布的更新版本中,95%的生成程式碼已能通過語法檢查。然而,AI生成程式碼的資安水平幾乎沒有改善,約半數LLM生成的程式碼仍存在可偵測的 OWASP 十大資安漏洞,最新LLM模型的資安成功率僅介於40%至60%之間。

Java程式碼安全性表現最差

另一個令人意外的發現是,大型語言模型在生成安全的Java程式碼方面特別困難,這與Java設計初衷之一是提升程式安全性形成強烈對比。測試中的其他程式語言如Python、JavaScript和C#通過資安檢查的成功率為55%至62%,而Java的平均成功率僅有29%。

Wessling推測,Java的悠久歷史是主因,許多程式碼是在資安意識尚未普及時所撰寫的。網路上仍存在大量過時的Java程式範例,這些都成為語言模型的學習素材。這些Java範例多數為了展示功能而設計,而非遵循安全編碼實踐,導致這些不安全的模式被AI模型學習並複製到新生成的程式碼中。

此外,LLMs在處理不同類型的資安缺陷時表現不一。AI生成的程式碼大多能通過SQL注入的安全檢查,但在跨站腳本攻擊(XSS)和加密錯誤的測試中則容易失敗。

資安技術債務正在累積

解決這些問題需要時間,但AI程式碼生成工具的使用速度不太可能放緩,這造成了令人擔憂的安全缺口。史丹佛大學對10萬名開發者的研究顯示,使用LLMs的開發人員程式碼產量平均增加了30%至40%。然而,同一研究也指出,大部分程式碼需要重寫以消除功能性錯誤,使整體生產力實際只增加了15%至20%。

Black Duck的資安解決方案資深經理Mike McGuire表示,尋找並修復資安漏洞將進一步削弱這些生產力提升。企業在依賴AI系統生成程式碼時正在累積資安技術債,這並非因為錯誤率上升,而是因為AI加速了程式碼生產。當團隊在更短時間內產出更多程式碼,且近半數無法通過資安測試時,風險便迅速累積。

Bugcrowd創辦人Ellis預見資安技術債將引發一場危機。他指出,資安漏洞數量與程式碼行數直接相關,隨著我們以加速度向網路釋出程式碼,漏洞也隨之增加。追求速度往往犧牲品質,而良好的資安正是高品質的具體表現。

然而,AI輔助程式碼開發已成為不可避免的趨勢,企業應尋找方法為安全程式碼的挑戰做好準備。專家指出,若能開發讓大型語言模型自然識別資安漏洞的方法,或在訓練過程中過濾不安全程式碼,理論上可能徹底改變現狀。業界因此正密切關注這方面的發展,因為目前的情況很可能在一年後就有所改變。

除了資安漏洞外,LLMs還面臨其他挑戰,包括虛構不存在的軟體函式庫,以及容易受到訓練資料集惡意污染的影響,這些都是企業在採用AI程式碼生成技術時必須審慎考量的風險因素。

本文轉載自 DarkReading。