代碼品質與安全 | 研究發現主流大語言模型優勢明顯,但缺陷也不容忽視

Sonar 於2025年8月13日發佈一項關於主流大語言模型(LLM)所生成代碼品質與安全性的全面研究。研究發現,當前主流模型在功能實現方面展現出顯著優勢,但同時也普遍存在不可忽視的安全與品質缺陷。更重要的是,每種模型均展現出獨特且可量化的”編碼個性”。這些發現超越了傳統的性能基準測試,為開發者和技術決策者提供了更深層次的洞察,助力其在軟體開發生命週期(SDLC)中更安全、更有效地集成 AI 解決方案。

研究同時揭示 Anthropic 的 Claude Sonnet 4 與 3.7、OpenAI 的 GPT-4o、Meta 的 Llama-3.2-vision:90b 以及開源模型 OpenCoder-8B 獨特的編碼“個性”

Sonar 首席執行官 Tariq Shaukat 表示:“LLM 在編寫代碼方面的迅速普及證明了它們的強大和有效性。為了真正最大限度地利用它們,除了關注原始性能,更重要的是要全面理解一個模型能力的完整圖景。瞭解每個模型的獨特個性,以及它們的優勢和可能出現的錯誤,可以確保每個模型都得到安全、可靠的使用。”

為開展此項研究,Sonar 採用專有的分析框架,向多個主流 LLM 分配了超過 4,400 個 Java 編程任務。被測模型包括:Anthropic 的 Claude Sonnet 4 與 3.7、OpenAI 的 GPT-4o、Meta 的 Llama-3.2-vision:90b,以及開源模型 OpenCoder-8B。

研究團隊總結出四項關鍵發現:

一、模型具備共性優勢

1. 生成語法正確代碼的能力強

所有模型均能高效生成語法正確的代碼,以及常見框架和函數的樣板代碼,顯著加快開發初期階段的效率。例如,Claude Sonnet 4 在 HumanEval 基準測試中達到 95.57% 的通過率,表明其具備極強的生成有效、可執行代碼的能力。

2. 具備扎實的演算法與數據結構基礎

模型對常見演算法和數據結構有良好的理解,能夠為定義明確的問題提供可行解,為複雜功能的開發提供良好起點。“加權測試 Pass@1 平均值”是衡量該能力的綜合指標,其中 Claude 3.7 Sonnet 得分為 72.46%,GPT-4o 為 69.67%,均顯示出較高的可靠性。

3. 跨語言代碼轉換能力出色

所有模型在將代碼概念或片段從一種編程語言轉換為另一種語言方面表現優異,使其成為跨技術棧開發者的有力工具。

二、模型存在共性缺陷

1. 安全性存在顯著短板

所有被測模型在安全性方面均暴露出嚴重問題。硬編碼憑證、路徑遍曆注入等關鍵漏洞在各模型輸出中普遍存在。儘管漏洞頻率因模型而異,但所有 LLM 生成的漏洞中,高嚴重性漏洞占比極高:

  • Llama-3.2-vision:90b:超過 70% 的漏洞為“阻斷級”(Blocker)嚴重性;
  • GPT-4o:62.5%;
  • Claude Sonnet 4:接近 60%。

2. 傾向於生成“混亂代碼”

所有模型均表現出存在“代碼異味”(Code Smells)的明顯傾向。研究發現,超過 90% 的問題屬於此類,表現為代碼結構混亂、可維護性差,而這些將導致長期的技術債務積累。

三、每種模型均有獨特的“編碼個性”

研究進一步發現,基於對以下三個可量化維度的分析,每種大語言模型均展現出獨特的“編碼個性”:

  • 冗餘度(Verbosity):模型為完成任務所生成代碼的總體量;
  • 複雜度(Complexity):生成代碼的結構與邏輯複雜性,通過圈複雜度(cyclomatic complexity)和認知複雜度(cognitive complexity)等指標衡量;
  • 溝通與文檔化能力(Communication and Documentation):代碼中注釋的密度,反映模型解釋其邏輯的傾向。

四、性能提升常伴隨風險上升

研究中一項關鍵且令人意外的發現是:功能性能的提升往往伴隨著安全風險的顯著增加。

以 Claude Sonnet 4 為例,其在功能基準測試中的通過率較 Claude 3.7 Sonnet 提升了 6.3%,表明其解決問題的準確性更高。但這一性能提升的代價是:高嚴重性漏洞的比例上升了 93%。

隨著行業對 AI 代碼生成的依賴不斷加深—— Gartner 預測,到 2028 年,90% 的企業級軟體工程師將使用 AI 編程助手——本報告凸顯了一個緊迫需求:必須在性能基準之外,補充對代碼安全性、可靠性與可維護性的直接評估。研究結果表明,採取“信任但需驗證”(trust and verify)的策略至關重要,包括建立健全的治理機制,並對所有 AI 生成代碼進行系統性分析。唯有如此,組織才能在充分利用 LLM 強大能力的同時,有效管控其帶來的固有風險。

Sonar 如何幫助您應對AI生成代碼的缺陷

Sonar 的集成式代碼品質與安全解決方案 SonarQube,可對包括 AI 生成代碼在內的所有代碼進行全面分析,作為“信任但需驗證”策略中的核心驗證與治理工具。

當客戶將 SonarQube 集成至其開發流程後,即可在加速 AI 驅動開發的同時,確保每一行代碼都具備可信賴的品質。該方案在代碼進入生產環境前,提供針對安全性、可靠性與可維護性的一致性審查機制。

對於正在採用生成式 AI 技術的組織,SonarQube 可在以下方面提供針對性支持:

1. 檢測安全漏洞

SonarQube 的分析引擎在漏洞檢測方面經驗豐富,能夠識別包括非局部數據流問題(如污點追蹤)在內的各類安全缺陷——這正是當前 LLM 在代碼生成中面臨的典型挑戰。

2. 強化工程規範

研究發現,所有 LLM 均難以遵循核心軟體工程原則,持續生成資源洩漏、API 介面契約違規等嚴重缺陷。例如,SonarQube 中的規則 java:S2095 可有效識別模型生成的資源洩漏問題,幫助團隊及時修復。

3. 管理技術債務與代碼異味

本報告指出,最普遍的問題是模型對“混亂代碼”的固有傾向,其中代碼異味占比超過 90%。此類問題(如冗餘代碼、無效代碼)將累積為長期技術債務。SonarQube 專為識別此類異味而設計,提供必要的分析能力,幫助清理代碼、提升可維護性。

關於 Sonar

Sonar自動化代碼審查領域的行業標準,將代碼品質與代碼安全整合於一個專為 AI 編程時代構建的統一平臺。Sonar 為所有代碼——無論是 AI 生成還是人工編寫——提供關鍵且獨立的驗證能力,使開發團隊能夠快速、有效地發現並修復安全、可靠性與可維護性問題。植根於開源社區,Sonar 的解決方案支持超過 35 種編程語言,已被全球 40 萬家組織中的 700 多萬名開發者使用,客戶包括巴克萊銀行(Barclays)、萬事達卡(MasterCard)和 T-Mobile等。

謹慎聲明:前瞻性陳述

本新聞稿可能包含關於未來預期、計畫和前景的前瞻性陳述。這些陳述基於當前的信念與假設,受風險與不確定性影響。AI 及大語言模型領域發展迅速,實際結果可能與預期存在差異。本新聞稿內容截至發佈之日有效,我們不承擔更新任何陳述的義務。

免費試用SonarQube:

請諮詢SonarQube大中華區授權合作夥伴-龍智,我們提供SonarQube Server、SonarQube Cloud的免費試用、諮詢、銷售、安裝部署、技術支持等一站式服務。

瞭解更多:https://hkdsdtech.com/hk/sonarqube

聯繫我們:+0852-55169850

關於龍智

DragonSoft 於 2006 年成立,現已成爲中國領先的 DevSecOps 解決方案提供商。
我們融合 DevOps 與敏捷管理理念,並整合全球頂尖工具,爲客戶提供應用生命周期管理(ALM/SDLM)、DevSecOps 及敏捷開發等解決方案,涵蓋實施部署、系統升級、培訓支持、定制開發及維護服務。 透過自動化軟件開發流程,促進團隊協作,全面提升開發效率與產品質量,同時確保整個過程可追溯、可量化。