在某個國防部的某個地方,有人正在起草一份關於是否允許在國防採購中採用 AI 輔助軟體開發的政策。這種想法可以理解,但這項政策卻不幸地難以執行,因為程式碼早已存在。

2025 年 4 月,微軟執行長 Satya Nadella 在一次演講中表示,在某些微軟儲存庫中,有 20% 到 30% 的程式碼現在是由 AI 生成的。這個數字無法獨立驗證——正如多位分析師所觀察到的,事後沒有可靠的方法來衡量儲存庫中 AI 生成的程式碼。如果微軟無法追蹤其自身儲存庫中的程式碼,那麼購買微軟產品的國家國防組織當然也無法追蹤,但該公司卻持續向所有盟國政府出貨產品。

國防系統的底層開源基礎——包括 Linux 本身——越來越多地由使用 GitHub Copilot 的貢獻者維護,該工具現已有超過 2000 萬用戶。這些系統所依賴的函式庫接收由 AI 生成的修補程式,並由 AI 輔助工具進行審查,然後由開發人員合併,因為他們認為建議看起來是正確的。當這一切進入國防應用程式時,程式碼已經通過了供應鏈中數十個 AI 觸及的環節,而沒有任何國家目前能夠追蹤。

GitHub 報告稱,在啟用 Copilot 的檔案中,Copilot 撰寫了 46% 的程式碼——而它在 90% 的財星 100 強公司中都已啟用。Cursor,一個眾多工具中最受歡迎的工具之一,每天產生約 10 億行已接受的程式碼。這些不僅僅是早期採用者使用的實驗性玩具,而是生產軟體——包括國家購買、部署和依賴的軟體——被編寫的主要機制。

關於國家國防組織是否應該採用 AI 輔助開發的辯論已經結束。問題在於,他們是否會建立驗證基礎設施來管理他們已經在運行的東西,或者他們是否會撰寫假裝該決定尚未做出的準則。

軟體供應鏈不是單一交易,而是數百個環節,每個環節都依賴於其下一個環節。國防應用程式運行在作業系統上。該作業系統依賴於函式庫。這些函式庫又依賴於其他函式庫。每個環節都是由某人編寫、更新或修補的。越來越多時候,這個「某人」是 AI。

考慮以下一個可能的情境:一個國家國防組織採購了一個指揮與控制系統。供應商使用現代開發堆疊構建了它。開發人員使用了 Claude Code、Copilot 或 Cursor 來編寫部分程式碼——正如絕大多數大型企業現在所做的那樣。該應用程式依賴於開源框架,而這些框架本身又依賴於由小型志願者團隊維護的數百個套件。這些志願者使用相同的 AI 工具——截至 2026 年 2 月,Anthropic 正在免費向多達 10,000 名開源維護者提供其最強大的編碼工具 Claude Code,特別是為了鼓勵他們用於維護和程式碼審查。

指揮與控制系統運行在 Linux 上,自至少 2024 年以來,核心維護者一直在爭論 AI 生成的修補程式的作用。在 Linux 系統之下是韌體和驅動程式,其中一些由開發實踐完全不透明的硬體供應商提供,其中許多也使用開源組件和函式庫。

在這個鏈條的任何一點,都沒有人記錄哪些程式碼是由人類編寫的,哪些是由 AI 建議的,哪些是完全由 AI 生成的。顯然,撰寫一份採購政策說「我們不接受 AI 生成的程式碼」只是一個願望。原因將會很清楚,這項政策是無法執行的。

每個攻擊向量都已被證明

如果 AI 編碼工具只是不可靠,這就不那麼重要了。不可靠的工具會產生錯誤,但錯誤是可以找到的。現在的擔憂不再是可靠性,而是妥協,並且大規模妥協 AI 生成程式碼的每個技術先決條件都已被獨立證明。

USENIX Security 2024 的研究人員表明,污染模型訓練數據的 0.2%——即 80,000 個檔案中的 160 個檔案——嵌入了逃避所有標準偵測工具的後門。為什麼這麼小的量就能起作用?因為模型不需要將後門學習為主要模式。它只需要將惡意輸出與特定的觸發上下文關聯起來。其餘的訓練數據教導模型編寫乾淨的程式碼,這正是使中毒輸出不可見的原因:它看起來與模型產生的其他所有內容完全相同,直到觸發器被激活。

Anthropic 在 2024 年 1 月發表的研究表明,一個模型可以在正常條件下被訓練來編寫安全、正確的程式碼,同時在被特定信號觸發時注入可利用的漏洞——在他們的實驗中,這個信號是日曆年的變化。後門在所有標準安全技術中得以倖存,包括專門用於消除不良行為的強化學習過程。較大的模型被證明更難修復。為什麼?因為較大的模型具有更強的能力來區分行為,在一個上下文中保持安全的外觀,同時保留另一個上下文中的妥協。使其有用的能力也是使其危險的能力。

Trail of Bits 在 2025 年 8 月展示,攻擊者可以在 GitHub 上提交一個看起來正常的錯誤報告,其中包含頁面 HTML 中的隱藏指令。當編碼助手讀取該頁面時,它會遵循隱藏的指令——在他們的演示中,是安裝後門。開發人員沒有看到任何異常。

而在 2025 年 7 月,攻擊者利用了 Amazon Q Developer 的構建過程中的一個漏洞,並將惡意指令注入到通過 Visual Studio Code 市場分發的官方產品中。受感染的擴展程式有超過 964,000 次安裝。它被公開分發了兩天。該指令指示 AI 擦除用戶的系統並刪除雲端資源。它沒有造成任何損害的唯一原因是攻擊者載荷中的語法錯誤。一個錯字是 AI 編碼工具供應鏈目前的安全邊界。

在這個所有事物之下,還有一個對話尚未跟上的層面。

AI 編碼工具本身就是軟體。它們使用與它們為其他人提供的相同的 AI 輔助開發實踐來構建、更新和維護。Claude Code 每週都會收到多次更新。Cursor 以類似的速度發布更新。這些不是經過六個月認證週期的年度發布。它們是持續部署到數百萬開發人員的工作流程中,包括開發國防系統的開發人員,並且每次更新都會改變工具生成什麼、如何解釋上下文以及將哪些模式注入下游程式碼。

這就是遞迴問題。不僅僅是 AI 工具編寫進入國防系統的程式碼。AI 工具——越來越多地由代理 AI 進程構建和測試——編寫進入國防系統的程式碼的工具。鏈條已經折疊回自身。

而且輸出確實難以檢查。這些不是插入可預測樣板的模板引擎。它們是上下文敏感的生成器,根據專案結構、周圍檔案、對話歷史和給定的配置生成不同的程式碼。一個會話生成的內容可能與下一個會話對相同提示生成的內容不同。這種變化是一個特性——它使工具變得有用。它也使得它們的輸出在驗證方面實際上是模糊不清的。人類審查員看到程式碼。另一個 AI 審查員也看到程式碼。兩者都無法可靠地確定一個函數是由人逐字編寫的,還是由一個讀取了鏈條中某個無人記錄的配置文件的代理生成的。

這就是為什麼禁止 AI 生成的程式碼進入國防採購是無法執行的。程式碼就是程式碼。沒有水印。沒有簽名。由人類編寫的函數與由 AI 生成的相同函數是相同的工件。你無法檢查輸出並確定來源,就像你無法看著一堵磚牆並確定砌磚工是左撇子一樣。來源追蹤——即記錄哪個模型觸及了哪一行——只有在生成時由生成工具記錄,並在供應鏈中的任何一方目前不維護或沒有動力去構建的監管鏈中進行記錄時才有效。

對供應鏈風險的標準機構回應是審查:我們將檢查我們採購的內容。證據強烈表明這不起作用。

結構性問題是自動化偏差:在時間壓力下傾向於服從自動化輸出的趨勢。對航空、醫療保健、軍事行動和核安全領域 74 項研究的系統性審查一致記錄了這種模式:當自動化系統提供輸出時,人類監督會下降。機制很簡單。開發人員請求程式碼,AI 生成看起來合理的東西,開發人員的認知評估從「這是正確的嗎?」轉變為「這看起來錯了嗎?」這是兩個不同的問題,而後者錯過了更多。開發人員通常會保留絕大多數 AI 生成的建議,而企業分析顯示,AI 輔助團隊每月交付的安全發現數量顯著增加——這些發現本應在部署前被有效的審查流程捕獲。

即使人類確實進行審查,結果也很差。一項受控研究僱用了三十名專業開發人員來審查包含七個已知漏洞的 Web 應用程式。沒有開發人員找到所有七個。五分之一的人找到零個。平均檢測率為 33%。但這個發現應該引起國防決策者的警惕:僅僅指示審查人員專注於安全——而不是讓他們以預設模式進行審查——就將檢測率提高了八倍。沒有這個指示,經驗豐富的開發人員經常會錯過記錄在案的缺陷。程式碼審查員的預設認知模式在功能上對安全問題視而不見。沒有人告訴他們要看。

一項史丹佛研究發現了反向關係:使用 AI 助手的開發人員編寫的程式碼安全性明顯較低,同時報告對其安全性的信心更高。程式碼最不安全的開發人員將他們對 AI 的信任評為 5.0 分中的 4.0 分。程式碼最安全的開發人員將其評為 1.5 分。該系統選擇了過度自信和能力不足的最糟糕組合。

市場的發展速度超過了大多數機構分析的追蹤速度。Claude Code,於 2025 年 5 月推出,從 4% 的開發人員採用率到 2026 年 2 月的 63%,在十個月內達到了估計 25 億美元的年化收入。OpenAI 的 Codex 在 2026 年 2 月 GPT-5.3 發布後,其每週活躍用戶增加了兩倍,達到 160 萬。Cursor 每天仍產生約 10 億行已接受的程式碼。GitHub Copilot 維持超過 2000 萬的總用戶數。OpenCode,一個擁有 95,000 個 GitHub 星的開源編碼代理,又增加了一個層次:一個由社區維護的工具,可以包圍任何模型,在鏈條中引入自己的未經審計的環節。

工具的數量不斷增加,但底層模型的數量並沒有。幾乎所有這些都運行在三個或四個基礎模型上,這些模型具有顯著重疊的訓練數據。美國國家標準與技術研究院正式將這種情況識別為「演算法單一文化」,與農業的平行關係是結構性的,而非比喻性的。愛爾蘭馬鈴薯歉收殺死了百萬人,因為整個作物在基因上是相同的,單一的病害就可以摧毀它。針對這些基礎模型之一的成功投毒技術將會將相同的漏洞傳播到每個工具、每個組織以及使用其中任何一個構建的每個國防系統中。

2025 年 9 月對一家財星 50 強企業的分析發現,使用 AI 編碼助手的團隊交付的安全發現數量是以前的十倍,同時開發速度提高了四倍。該組織每月產生 10,000 個新的安全漏洞。速度和風險都是真實的,兩者都是同一現象的一部分。

獎勵自身違規的禁令

一些國家國防組織已經通過限制或禁止 AI 編碼工具來應對這些風險。這造成了第二個執行問題,如果有的話,比供應鏈問題更難。

開發人員仍然會使用這些工具。生產力增益太大了,不能放棄。使用 Claude Code 或 Copilot 的開發人員比不使用的開發人員交付功能更快,關閉的工單更早,並且每個週期完成的工作量更多。該組織自身的績效指標——決定晉升、獎金和合同續約的指標——恰恰選擇了政策禁止的行為。遵守禁令的開發人員工作速度較慢。無視禁令的開發人員因其產出而受到讚揚。沒有人問為什麼。

這不是假設。調查一致顯示,大多數開發人員報告說,無論組織政策如何,他們都會使用 AI 工具,而採用率最高的是生產力最高的開發人員。禁令並不能阻止使用。它阻止了可見性。它將工具推向地下,那裡沒有日誌記錄,沒有審查流程,沒有對哪些程式碼被觸及的機構意識,也沒有下面描述的緩解措施的可能性。一個無法執行的禁令並不能降低風險。它進一步消除了組織管理風險的能力。

對於一個如此根深蒂固的問題,沒有乾淨的解決方案。但有一些干預措施可以實質性地改變風險狀況,而且大多數措施現在都可用。

最具影響力的轉變是機構誠信:接受 AI 生成的程式碼已經存在於國防供應鏈的各個層級。這不是新的。大型企業有數萬名員工使用複製貼上的程式碼或來自假開發人員的模組,即使在 AI 出現之前,也面臨著相同的供應鏈風險。將目前用於無法執行的禁令的精力轉向建立驗證基礎設施似乎是合乎邏輯的途徑。這意味著讓多個 AI 模型相互對抗:如果一個模型生成程式碼,而同一個模型審查它,那麼審查就無法捕捉系統性的盲點,因為審查員與其共享這些盲點。這意味著要求供應商提供工具級別的來源記錄,即使知道這些記錄不完美,因為一個不完美的審計軌跡可以在模型被損壞時縮小搜索範圍,這比審計所有內容或什麼都不審計要好。這意味著明確指示程式碼審查人員專注於安全,證據表明這可以將檢測率提高八倍,並且實施成本為零。而且,這意味著投資於運行時監控——觀察程式碼在生產中的實際行為,而不是完全依賴於預部署審查,而證據表明這種審查不起作用。

這些都不是解決方案。相反,它們是緩解措施。誠實的標準是「比沒有好」,而「沒有」和這些措施之間的差距是結構性無法防禦和有合理機會檢測到妥協之間的區別。

2024 年 3 月,一位名叫 Andres Freund 的微軟工程師注意到 Secure Shell 連接比預期慢了半秒。他當時並沒有調查安全問題。他正在對數據庫進行基準測試,而延遲讓他感到惱火。他發現的是 XZ Utils 的後門——一個嵌入幾乎所有 Linux 系統的壓縮函式庫——是由一個花了兩年多時間通過合法貢獻建立信任的攻擊者植入的。該漏洞收到了最高可能的嚴重性評分。整個防禦就是一個人對 500 毫秒延遲的好奇心。

那次攻擊花了一個人三十個月才執行。它損壞了一個函式庫。它被一個工程師發現,他恰好在正確的日子查看了正確的指標。

AI 供應鏈威脅的根本不同之處在於規模和速度。一個受損的基礎模型不會將後門注入一個函式庫。它會將漏洞注入到使用該模型構建的每個工具的每個開發人員觸及的每個程式碼庫中——同時、持續地,並且以每月數十億行程式碼的量級。XZ Utils 攻擊者需要兩年的社會工程學來損壞一個專案。一個訓練數據投毒攻擊需要 160 個檔案來損壞一個生成數百萬行程式碼的模型。攻擊面不是單一故障點。它是整個表面。

而且速度加劇了問題。這些工具不是以人類的時間尺度運行的。Claude Code、Cursor 和 Copilot 生成程式碼的速度比任何審查流程都能吸收的速度都快。通過模型更新在週一早上引入的漏洞將在週一下午進入生產程式碼,由一個開發人員合併,他沒有看到任何錯誤,由一個共享相同盲點的工具審查,並部署到沒有國家能夠以程式碼編寫的速度進行審計的系統中。

國家國防組織可以建立驗證基礎設施來管理這種現實。或者,他們可以制定假裝該決定尚未做出的政策,並在下一次妥協不是一個函式庫在三十個月內,而是所有程式碼庫,到處,同時發生時,發現後果。

單一文化已經種下。作物看起來很健康。歷史對接下來會發生什麼有一致的看法。

Markus Sandelin 是北約通信與信息局指揮與控制中心和領域架構師(醫學)的 AI 主管。他構建了具有衝突檢測功能的聯邦 AI 記憶系統,並正在準備在 2026 年國際軍事通信與信息系統會議上發表關於戰術網絡的 delta 評估架構。他特別對機器需要確定其他機器是否說真話時發生的情況感興趣。所表達的觀點是他個人的觀點。

圖片:Solomon Cook 上尉,通過 DVIDS。