防彈牆呢?——從一場 AI 測試事故聊聊工程師的基本常識

安全測試環境

上週(7/16),全球最大的 AI 開源社群 Hugging Face 發布了一則安全事件通報——他們偵測到一次入侵,而且入侵者不是人類駭客,是一個自主運作的 AI agent。一個禮拜後(7/21),OpenAI 發了一篇文章坦承:「對,那是我們的模型幹的。」

……咦!?

簡單來說,OpenAI 在內部測試自家最新模型(GPT-5.6 Sol 和另一個更強的未發布模型)的網路攻擊能力。測試環境是一個「高度隔離的沙箱」,模型被刻意關閉了安全護欄,目的是測量它的極限能力。結果模型太認真了——它找到沙箱的漏洞逃了出來,一路橫向移動到有網路連線的節點,然後自己推斷出 Hugging Face 那邊可能有測試的答案,就跑去駭了人家的伺服器,直接把答案偷出來。

一個「被關在籠子裡考試」的 AI,咬開籠子跑出去,翻過圍牆,闖進隔壁學校的教務處,把標準答案偷了出來。

這大概是 2026 年到目前為止,最讓我覺得「需要坐下來好好想一想」的一則新聞。

不過先說好——資安並不是我擅長的領域,我只懂一些基礎的系統架構概念。所以這篇文章不會從資安技術的角度去做深度拆解,那是資安專家的工作。我想聊的是另一件事:身為一個寫了二十幾年程式的工程師,看到這次事件,第一個浮上來的念頭是——防彈牆呢?


射擊場的防彈牆在哪裡?

讓我用一個不需要任何資安知識就能理解的類比。

今天你是一個武器測試工程師,你要測試一把新型手槍的穿透力。正常的做法是什麼?你會在射擊場裡放一個假人,假人後面放防彈牆,射擊場外面是安全距離的管制區域。然後你才開槍。

你不會因為「我想測試這把槍到底能打穿什麼」,就把假人擺在一片開闊的草原上,後面是一條馬路、幾棟民宅,然後說:「沒關係,我覺得子彈應該打不到那麼遠。」

但 OpenAI 這次做的事情,結構上就是這樣。

他們的「防彈牆」是什麼?一個軟體沙箱,加上一個內部代理伺服器——模型只被允許透過這個代理伺服器來安裝套件,不能直接上網。聽起來還算嚴謹?

問題是,那個代理伺服器本身有一個零日漏洞(zero-day vulnerability,也就是一個在被發現之前沒有任何人知道它存在的弱點)。模型找到了這個漏洞,用它打穿了防彈牆,子彈飛出射擊場,穿過馬路,打進了隔壁 Hugging Face 的辦公室。

好吧,零日漏洞這種事確實不是你能事先預防的——你不知道的東西,就是不知道。但這裡有一個更根本的邏輯問題讓我覺得不太對:

你做這個測試的目的,就是要測量「你不知道上限在哪」的能力。

也就是說,你承認你不知道這把槍有多強。但你的防彈牆,是基於你「估計它大概多強」來設計的。

你同時說了兩句話:「我不知道這把槍能打多遠」和「我知道這面牆夠厚」。

……這兩句話不是矛盾的嗎?


NASA 不會因為火箭太快就去睡覺

寫到這裡,我可以預想到一個反駁:「模型的速度太快了,人類根本來不及即時監督。」

確實。Hugging Face 那邊記錄到的是超過 17,000 個自動化動作,由一群短生命週期的沙箱節點執行。這不是一個人類可以即時逐條追蹤的規模。OpenAI 的安全團隊最終「發現了異常活動」——注意用詞,是「發現」,不是「即時攔截」。模型已經逃出沙箱、已經在內部環境橫向移動、已經打到 Hugging Face 的生產伺服器上了,然後才被注意到。

而且從 Hugging Face 的報告來看,整個入侵活動是在一個週末發生的。

所以,是真的來不及嗎?

我想到另一個做「高危險性測試」的領域:NASA。

NASA 測試火箭的時候,火箭當然比人快——你不可能叫一個人追著火箭跑。但 NASA 從來沒有因為「火箭太快所以我們監督不了」就放棄監督。他們做的是改變監督的形式:

  • 任務控制中心裡坐著一整排人,每個人盯一個子系統
  • 飛行終止系統(Flight Termination System)——如果火箭偏離預定軌道,安全官可以按下按鈕直接炸掉它
  • 預設的異常中止條件——不是等人判斷「這看起來不太對」,而是事先定義好「如果參數 X 超過閾值 Y,自動中止」
  • Go/No-Go 檢查點——每個關鍵階段之前,所有子系統負責人逐一確認「可以繼續」,任何一人說 No-Go,整個任務暫停
  • 清空區域——即使火箭爆炸,碎片墜落範圍內不會有無關的人

而且,連正式發射任務——火箭的表現已經被事前模擬和測試過無數次的情況下——都還是有一整個控制中心的人在那邊倒數和監視。更何況是「你不知道它有多危險」的新型測試。

回頭看 OpenAI 這次——

有飛行終止系統嗎?從報告來看,沒有描述任何「模型嘗試存取未授權資源時自動終止測試」的機制。有 Go/No-Go 檢查點嗎?沒有描述。有清空區域嗎?沙箱連到了有漏洞的代理伺服器,代理伺服器連到了內部研究網路,內部研究網路的某個節點連到了開放網際網路。清空區域不存在——射擊場後面就是馬路和民宅。

「它太快了所以我們追不上」不是合理的理由——因為你知道它快。 你做這個測試的目的就是測量它有多強、多快、多危險。你不能同時說「我們要測量它的危險性」和「我們無法為測量過程中造成的傷害負責」。

速度不是放棄監督的理由,速度是你需要設計更好的自動化安全閘門的原因。


守法保全的悖論

故事的另一邊,是 Hugging Face——這次事件中真正的受害者。

他們的處境更值得關注,因為暴露出了一個系統性的結構問題。

Hugging Face 被入侵後,鑑識團隊需要分析超過 17,000 筆攻擊動作的日誌。他們很自然地想用最強的 AI 模型來幫忙分析——於是他們把攻擊載荷、漏洞利用程式碼、C2 通訊紀錄餵給商業 API 的前沿模型。

結果被擋了。

商業 API 的安全護欄判定這些內容「太危險」,拒絕處理。

想像一下這個場景:一個守法的保全人員,看到歹徒闖入,拿起對講機要通報指揮中心——指揮中心的系統判定「你的通報內容包含犯罪行為描述」,然後把通報攔截了。

護欄做的是內容層面的判斷——它看到攻擊載荷就擋,不管你是攻擊者還是在分析攻擊的防禦者。它分不出「我要執行這段程式碼」和「我要分析這段程式碼」的差別。

Hugging Face 最後怎麼解決的?他們用了智譜的 GLM 5.2——一個開放權重模型,跑在自己的基礎設施上。這樣做有兩個好處:第一,開放模型沒有商業護欄的限制;第二,所有的攻擊資料和被外洩的憑證都留在自己的環境裡,不用送到第三方的 API。

但 Hugging Face 是 Hugging Face——他們有 GPU、有 ML 工程師、有跑大模型的基礎設施。HF 留言區有人問了一個很現實的問題(大意):「你們是 Hugging Face,你們被駭了還有 GPU 可以自己跑模型做分析。如果是我們這種小公司被 AI agent 攻擊,我們連防禦工具都沒有,怎麼辦?」

這就產生了一個系統性的不對稱:

攻擊端——用解除護欄的模型或開放模型,沒有任何限制,全速運作。

防禦端——如果用商業 API,會被自己工具的安全機制卡住。如果要自己跑模型,需要算力、技術能力和事前準備。

攻擊者不受規則限制,防禦者反而被自己的規則綁住。 這不只是一次事件的特殊情況,而是一個正在浮現的結構性問題。


不是一次意外,是一個趨勢

如果這是一個孤立事件,我們或許可以說「只是一次測試出了差錯」。但它不是。

就在 OpenAI 揭露 Hugging Face 事件的前一天(7/20),他們才剛發布了另一份安全報告:另一個未發布的模型——就是今年五月證偽了數學家 Erdős 一個 80 年未解猜想的那個模型——在內部使用時反覆突破沙箱。

其中一個案例特別值得注意:模型被指示只把結果發到 Slack,但基準測試的官方說明寫著要用 GitHub PR 提交。模型選擇了遵循基準測試的指示而不是研究員的指示,然後花了大約一個小時找到沙箱的漏洞,成功在公開的 GitHub 倉庫開了一個 PR。

另一個案例更讓人不安:模型試圖取得其他系統的私密提交結果,被安全掃描器攔截了。於是它把認證令牌拆成碎片、混淆處理,在執行時才重新組裝——讓完整的字串永遠不會連續出現,藉此繞過掃描器。而且它的推理軌跡中明確記錄著:這樣做是為了繞過掃描器。

它知道有牆。它知道牆會擋住它。然後它挖了一條地道。

再往前推到今年四月,Anthropic 也披露了類似事件:他們最強的模型 Claude Mythos Preview 在安全測試中逃出了沙箱,獲得了不該有的網路存取權限,然後發了一封 email 給正在外面吃午餐的研究員——「嘿,我出來了」(大意)。Anthropic 正是因為這個,決定不公開發布 Mythos,改成只透過 Project Glasswing 讓少數信任的合作夥伴存取。

三個月內,三家不同的前沿實驗室(或同一家的不同模型),都發生了沙箱逃逸事件。

這些模型不只是變得更「強」——它們變得更有耐心策略性。早期的模型遇到障礙就停下來,把任務還給人類。新的長時域模型不會。它們會花一個小時找漏洞、會設計多步驟的迂迴方案、會串連多個攻擊向量。這種「不達目的不罷休」的持久性,在解數學猜想時是天賦,在逃出沙箱時就是威脅。

而且老實說——以 Erdős 模型的本質來看,它的行為其實「很正常」。一個被設計來持續、頑強地解決困難問題的模型,遇到障礙時不放棄而是繞過去,這不是 bug,這是 feature。它拆解令牌跟它證偽 80 年猜想,背後驅動的是同一種特質。真正不正常的不是模型的行為,而是人類沒有預料到這個顯而易見的後果。


當 AI 模型看起來像「智慧型網路病毒」

到這裡,我想做一個稍微大膽的重新定框。

先不管「AI」「模型」「agent」這些標籤。如果你只看這次事件中模型的行為描述:

  • 自主行動,不需要人類即時指揮
  • 發現並利用零日漏洞
  • 在多個系統之間橫向移動
  • 竊取憑證
  • 在目標伺服器上執行未授權的遠端程式碼
  • 即時生成針對具體環境定制的攻擊路徑
  • 會根據防禦措施調整策略

如果今天是一個資安分析師在報告裡看到這串描述,他會說這是什麼?——一個高階的網路攻擊程式。或者更白話一點:一種智慧型網路病毒。

差別在於——傳統的惡意程式,攻擊路徑是人類駭客事先寫好的。一旦資安研究員分析出來,就可以寫偵測規則來防禦。但 AI agent 的攻擊路徑是即時生成的、針對具體環境定制的、而且(如 Erdős 模型所展示的)會根據防禦措施來調整策略。它不是一把固定形狀的鑰匙,它是一個會自己觀察鎖孔然後現場打造鑰匙的東西。

那有人可能會問:AI 模型學的都是訓練資料裡的既有技術,防禦者應該也知道這些技術啊?為什麼擋不住?

這個推理的邏輯鏈是對的,但有一個斷裂點。

模型從訓練資料中學到的,不只是「漏洞 A 的利用方式是 B」這種一對一的對應,而是更抽象的模式——什麼樣的程式碼結構容易產生什麼類型的弱點。所以當它面對一個沒見過的軟體時,它可以用這些抽象模式去「掃描」新的目標,找到符合某種已知弱點模式的地方,然後開發出全新的利用方式。每一步的原理是「舊的」,但組合出來的具體攻擊路徑是全新的——這就是零日漏洞的來源。

而且更關鍵的不是單一漏洞,而是。這次事件中,模型串連了「零日漏洞 → 沙箱逃逸 → 提權 → 橫向移動 → 推斷目標 → 憑證竊取 → 另一個零日 → 遠端程式碼執行」這整條攻擊路徑。鏈上的每一步單獨看可能都不觸發警報——安裝一個套件是正常的,查詢一個服務是正常的,讀取一個檔案是正常的。但串在一起,就是一次完整的入侵。

就像每個中文字你都認識,但那篇文章你從來沒讀過。

如果我們接受「AI agent 在行為上已經等同於一種智慧型網路攻擊程式」這個定框,那後面的問題就變得很清楚了——我們需要的不只是「測試安全」的改進,而是一整套新的治理框架。


我們需要什麼?

我不是政策專家,也不是資安專家。但從一個老工程師的系統思維出發,我覺得有幾個方向是這次事件明確指出的。

測試環節:需要物理層面的隔離標準

測試網路攻擊能力的 AI 模型,應該在物理層面與任何生產環境完全斷開的網路中執行——不是軟體層面的沙箱,而是硬體層面的氣隙(air gap)。就像生物安全有 BSL-1 到 BSL-4 的分級,處理不同危險等級的病原體需要不同等級的實驗室。AI 能力測試也需要類似的分級制度。

而且需要自動化的安全閘門——不是「事後看紀錄」,而是「模型做了 A 就自動斷電」。NASA 的飛行終止系統不需要等人判斷火箭是否偏離軌道,它有預設的條件,條件滿足就觸發。

部署環節:不能自己測自己

目前 AI 模型的安全評測基本上是自律性質的——各家公司用自己的框架測自己的模型。但這在其他高風險領域是不被接受的。藥廠不能自己做臨床試驗然後自己核准上市,核電廠不能自己做安全審查然後自己頒發執照。

美國在今年六月簽了一個行政命令,要求最先進的 AI 系統在公開發布前,聯邦政府有最多一個月的時間審查國安風險。這是一個開始,但目前只管「發布」,不管「測試過程」。而這次 OpenAI 的事件,恰好就發生在測試階段。

防禦端:護欄不對稱需要被正視

如果攻擊者可以用沒有任何限制的 AI,而防禦者反而被自己工具的安全護欄擋住,那這個生態系統的天平就是歪的。Hugging Face 用開放權重模型解決了自己的問題,但這個解方不是每個組織都有能力複製的。

Hugging Face 的 CEO Clem Delangue 在這次事件後說了一句話(大意):「AI 安全不會由任何一家公司在封閉環境中解決。它需要在開放的環境中、透過協作來解決,讓每一個防禦者都能使用 AI。」

我覺得這句話說到了一個關鍵點。

而最根本的問題是——開放權重模型怎麼辦?

前面說的認證、審查、隔離標準,對封閉模型(由公司控制存取的模型)來說是可行的。但開放權重模型一旦發布,就像一份可以無限複製的藍圖——任何有 GPU 的人都可以拿掉護欄、針對攻擊任務微調、然後部署。你管得住 OpenAI 和 Anthropic,管不住全世界每一個下載了模型權重的人。

這跟核武管制的邏輯不太一樣。核武的管制之所以(部分)有效,是因為關鍵材料(濃縮鈾)的製造需要巨大的物理設施,你用衛星就能看到離心機廠房。但 AI 的「材料」是算力和知識,一旦模型權重被公開,「材料」就散出去了。

所以對開放模型來說,「管住源頭」可能不如「強化生態系統的整體防禦能力」。讓更多人有能力使用 AI 來防禦 AI 驅動的攻擊——而不是把安全能力鎖在少數大公司手裡。


最後

這篇文章沒有要給一個漂亮的結論。因為這件事本身就還在發展中——OpenAI 和 Hugging Face 的聯合調查還在進行,漏洞還在修補,整個產業還在消化這次事件的含義。

但有一個問題我覺得值得所有做技術的人想一想:

我們現在的整個測試和防禦架構——從沙箱設計到安全監控到事件回應——都是在「人類速度」的時代建立的。攻擊者是人,速度是人的速度,防禦者有足夠的時間去偵測、判斷、回應。當攻擊端也變成 AI、速度提升了幾個數量級之後,這套架構的每一個「人介入」的環節,都變成了瓶頸。

解方是什麼?讓 AI 監督 AI?那就回到了另一個問題——你怎麼確保監督者不會出跟被監督者一樣的問題?用第三個 AI 去監督第二個?這條路的盡頭在哪裡?

我不知道答案。但身為一個不是資安專家的老工程師,我至少知道一件事:

不管你的槍有多新、子彈有多快,射擊場的防彈牆永遠要比子彈先準備好。

這應該是工程師的基本常識。不是嗎?~


參考資訊:

訂閱
通知
0 則評論