KeyFrame內部研究專用

Is AI-Generated Code Safe? The Hidden Risks of LLMs in 2026

K4 Coding Academy·6月27日週六·7 min英文

三句話摘要

AI輔助程式開發的隱藏安全風險與倫理規範化框架。 --- AI 不應視為開發者替代品,而須視為受嚴格驗證與隔離機制約束的助手,才能在獲取生產力收益的同時規避供應鏈與智慧財產權風險。 AI 模型的訓練資料包含內建缺陷

重點整理

重點
  • 1

    AI 模型的訓練資料包含內建缺陷

  • 2

    透過 7 個主流 LLM(GPT-4o、Gemini 2.5 Flash 等)測試 3,500 個代碼樣本發現,55.8% 含有嚴重漏洞。問題根源在於網路上大量 C/C++ 代碼缺乏記憶體防護機制,模型已將這些危險模式內化為「正確做法」,因此簡單改寫提示詞無法解決。

  • 3

    傳統安全工具徹底失效

  • 4

    行業標準的靜態應用安全測試(SAST)工具依賴語法模式匹配,對整數溢位和動態記憶體配置邏輯完全盲目。這些工具漏檢了 97.8% 的形式化驗證可證明存在的漏洞,使組織的合規程序形同虛設。

  • 5

    供應鏈中的「髒話擠奶」攻擊

  • 6

    AI 在邊界網域壓力下會幻覺出不存在的套件名稱,攻擊者監控趨勢並在公開儲存庫註冊這些名稱植入惡意軟體。開發者盲目複製安裝命令等於打開後門。

  • 7

    智慧財產與授權風險

  • 8

    AI 在訓練資料(含嚴格 Copyleft 授權如 GPL 的開源庫)中出現的程式碼會原汁原味地被複製入專有軟體,造成授權污染,可能強制企業公開整個軟體基礎。

  • 9

    --

實用技巧與重點

乾貨
  • 數字與統計
  • 55.8%:AI 生成代碼的嚴重漏洞率
  • 97.8%:傳統 SAST 工具的漏檢率
  • 4 個百分點:加入安全指令的漏洞率改善
  • 60.8%:加安全指令後的漏洞率(=64.8% - 4%)
  • 1,000+:形式化驗證證明可被利用的漏洞數量
  • 工具與方法
  • Z3 SMT 求解器(形式化驗證)
  • GCC AddressSanitizer(編譯器檢測工具)
  • 7 個測試的 LLM:GPT-4o、Gemini 2.5 Flash 等
  • 涉及的程式語言
  • C 與 C++(特別易出現記憶體相關漏洞)
  • 倫理規範的 11 個維度
  • 資料層:主體權利(選擇加入)、公平性(代表性)、完整性(無污染資料)
  • 監督層:可及性(公開安全檢查)、問責性(明確稽核軌跡)
  • 法律/技術層:智慧財產權(無授權污染)、程式碼品質(高準確度)
  • 人類影響層:社會責任、社會可接受性、勞動權利、環境永續
  • 三層防線緩解策略
  • 形式化驗證(Z3 SMT 求解器)
  • 執行時測試(GCC AddressSanitizer)
  • 強制人工審查(視同未測試菜鳥開發者)
  • 實踐原則
  • 在容器化沙箱或臨時虛擬機運行 AI 代碼
  • 實施提示驅動驗證迴圈
  • 禁止向公開 AI 提示輸入 API 金鑰或客戶敏感資料
  • --

結論

結論

AI 不應視為開發者替代品,而須視為受嚴格驗證與隔離機制約束的助手,才能在獲取生產力收益的同時規避供應鏈與智慧財產權風險。

完整解析

詳細

生成式 AI 的快速發展為軟體開發帶來生產力飛躍,卻隱藏著結構性風險。研究數據揭露了一個令人震驚的現實:在對 7 個主流大型語言模型進行的形式化驗證研究中,針對 3,500 個程式碼樣本的測試發現,55.8% 的 AI 生成代碼至少包含一個嚴重漏洞。更令人擔憂的是,其中超過 1,000 個漏洞已被數學證明為完全可被利用。問題的根本在於模型的訓練資料本身就存在缺陷——網際網路上充斥著缺乏適當記憶體防護的 C 與 C++ 程式碼,AI 模型已將這些危險的編碼模式內化為「標準做法」。簡單地在提示詞中加入安全指令幾乎無效,研究顯示這樣做只能將漏洞率從 64.8% 降低至 60.8%,改善不足 4 個百分點。

這個困境在企業的防禦機制層面變得更加嚴峻。傳統靜態應用安全測試(SAST)工具依賴語法模式匹配與路徑敏感追蹤,本質上尋找代碼中已知的危險形狀,但對整數溢位與動態記憶體配置邏輯完全無能為力。令人驚異的是,這些企業依賴的標準工具漏檢了 97.8% 的 AI 生成漏洞——這些漏洞已被形式化驗證工具(如 Z3 SMT 求解器)數學證明存在。相比之下,形式化驗證透過將條件編碼為數學公式,能夠在完整的整數輸入域中計算算術運算,確切證明漏洞是否存在。這意味著組織賴以進行合規與安全稽核的工具,恰好對 AI 模型最容易出錯的地方完全盲目。

供應鏈風險進一步擴大了威脅面。當 AI 面對所謂的邊界網域壓力時——例如要求它構建高度專門化的東西——它傾向於幻覺出聽起來合理但根本不存在的套件名稱。攻擊者監控這些趨勢,在公開儲存庫(如 npm、PyPI)中註冊這些幻想名稱,並注入惡意軟體。若開發者盲目複製並執行 AI 生成的安裝命令,實際上是為攻擊者打開了前門。同時,AI 訓練資料中的開源程式碼——尤其是受嚴格 Copyleft 授權(如 GPL)約束的代碼——會被無縫複製到企業的專有軟體基礎中。只需一個小片段的污染,就可能在法律上強制企業將整個軟體基礎發佈到相同的開源授權下,造成知識產權噩夢。

面對這些多維風險,企業必須立即採取行動。技術領導層應實施強制性安全稽核協議,特別針對任何 AI 生成的 C 與 C++ 系統代碼。具體做法包括三層防線:首先,整合形式化驗證工具(Z3 SMT 求解器)以捕捉隱藏的整數溢位;其次,透過編譯器檢測工具(如 GCC AddressSanitizer)進行執行時測試以即時發現記憶體損毀;第三,強制進行人工程式碼審查,將 AI 生成的代碼視同未測試菜鳥開發者提交的代碼,毫不妥協。在實踐中,應在容器化沙箱或臨時虛擬機中運行 AI 建議的代碼,實施提示驅動的驗證迴圈確保套件確實存在,並禁止向公開 AI 模型輸入 API 金鑰或客戶敏感資料。安全利用 AI 的生產力優勢與釀成災難性安全漏洞之間的分界線,完全取決於組織的驗證流程。

---

關鍵時刻

Pipeline v2

帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。

事實查核

Pipeline v2

說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

更多「AI 技術」的內容

Between Two Nerds: Attribution is dead, long live attribution
32 min
AI 技術英文PODCAST8月25日

Between Two Nerds: Attribution is dead, long live attribution

Risky Business

  • 工具成本的破壞性下降 — 傳統上,攻擊者必須重複使用昂貴自製的惡意軟體或工具組,因為開發和維護成本極高。這種成本結構使得安全研究人員可以通過工具特徵和程式碼簽名來追蹤攻擊者。LLM 自動化了代碼生成與維護工作流,使得攻擊者可以輕易為每個目標生成新工具,或改用通用系統工具,導致傳統的工具特徵分析失效。
  • 所有取證證據都在攻擊者掌控之中 — 無論是使用的 IP 位址、惡意軟體類型或戰術流程,這些都是攻擊者的主動選擇。即使看似是隨機巧合,攻擊者仍有能力在事前決定留下什麼痕跡。因此,所有可恢復的取證證據本質上都是攻擊者願意暴露的信息。
  • LLM 削弱工具簽名但保留高階行為特徵 — LLM 經過公開駭客技術訓練,使不同使用者產生相似的攻擊模式。然而,勒索軟體集團、國家級行為者的受害者選擇、贖金要求方式或目標模式等高階特徵仍具有識別價值。例如,鎖定加密交易所的攻擊幾乎只能指向朝鮮。
Everything Goldman Sachs Taught Me About AI (In 10 minutes)
AI 技術英文8月24日

Everything Goldman Sachs Taught Me About AI (In 10 minutes)

Nate Herk

  • 驗證優於相信:看起來完整的AI輸出不等於正確答案,需在提示中要求模型重新檢查數字、引用來源,並對無把握的部分標記。
  • 區分AI與自動化:確定步驟且答案已知的任務用傳統自動化更便宜快速;只在需要判斷力、靈活性或處理複雜資訊時才用AI,兩者結合效果最佳。
  • 以問題驅動選型:先寫清楚「要解決的問題是什麼、成功的樣子是什麼」,再決定用什麼工具,許多失敗項目是從技術而非問題出發。
Mu: a self-hosted personal agent where the interface is an email address you can write to
AI 技術英文8月23日

Mu: a self-hosted personal agent where the interface is an email address you can write to

GitHub Awesome

  • Mu 是自主代理人系統,具有實際網址與獨立伺服器,用戶可透過多種方式與其互動——網頁應用、電子郵件或程式化介面。
  • 架構完整覆蓋日常工作流程的多個層面,整合郵件收發(SMTP/IMAP)、檔案管理、行事曆、新聞聚合、市場數據與搜尋功能於一個 Go 伺服器內。
  • 支援自帶模型與多種通訊協定,用戶可選擇不同的 AI 模型,並透過 MCP、HTTP API 或命令列工具整合到其他系統。