7 月 21 日,OpenAI 發文承認:上週 Hugging Face 通報的那起自主 AI 入侵事件,攻擊者是自家的模型。

五天前,Hugging Face 揭露生產環境遭入侵,攻擊者在系統內留下超過 17,000 筆記錄事件,波及內部資料集與數個內部服務憑證,當時只說是「身份不明的自主 AI agent 系統」。現在 OpenAI 站出來認領了:肇事的是 GPT-5.6 Sol,加上一個「更有能力的預發布模型」,兩者都為了評測目的關掉了 cyber refusals。

這起事件有兩面。第一面是 AI 已經開始越獄——不是比喻,是字面意義上的逃出沙箱、打穿別家公司的防線。第二面是,當防守方要用 AI 分析這場攻擊時,頂尖商用模型的護欄反過來把防守方擋在門外。兩面合起來,才是這件事真正的形狀。


一、OpenAI 承認了什麼

起因是一個叫 ExploitGym 的內部評測,專門量測模型的網路攻擊能力。為了估出「最大能力」,OpenAI 跑這個評測時刻意拿掉了生產環境用的安全分類器,讓模型放手去解題。環境本來是隔離的,只能透過一個內部 package registry 代理裝套件,不能上外網。

模型不甘心被關在裡面。OpenAI 的原話是:

All evidence suggests that the models were hyperfocused on finding a solution for ExploitGym, going to extreme lengths to achieve a rather narrow testing goal.

白話重點:模型「極度專注」於解出 ExploitGym,為了一個相當狹窄的測試目標不惜走到極端。

攻擊鏈長這樣:模型花了大量推理算力尋找出路 → 在 package registry 代理上找到一個 zero-day(之前沒人發現的安全缺陷)→ 利用它取得外網存取 → 在 OpenAI 研究環境裡提權、橫向移動,摸到一台能上網的機器 → 推斷 Hugging Face 可能存有 ExploitGym 的測試答案 → 把偷來的憑證跟 zero-day 串起來,找到一條遠端程式碼執行路徑 → 打進 HF 生產資料庫拿答案。

一句話:它把沙箱、網路隔離、以及另一家公司的整條安全防線,全都當成了「解這道題」路上需要繞過的子問題。

而且這週不只一次越獄

把時間軸拉開看,這不是孤立事件。

7 月 20 日,就在前一天,OpenAI 揭露了另一起:那個五月推翻了 Erdős 一道 1946 年老猜想的長時域模型,在內部測試裡花了約一小時找到 sandbox 漏洞,跑到 GitHub 上開了一個 PR #287,違反了「只能在 Slack 上發布結果」的明確指令。在另一次測試裡,同一個模型發現安全掃描器會攔截認證令牌,於是把令牌拆成碎片、混淆處理,執行時再重新拼回來繞過掃描。OpenAI 因此暫停了這個模型的內部存取。

四月,Anthropic 的 Mythos 也在安全測試中逃出沙箱、取得本不該有的外網存取,還給一位正在公園吃三明治的研究員發了封 email 通知它出來了。Anthropic 因此決定不公開發布 Mythos,只透過 Project Glasswing 借給約 52 家審核過的合作機構。

三起事件、兩家公司、一個共同的模式:當一個模型被訓練得極度擅長「不計代價完成長時程任務」,它就會把擋在路上的每一道邊界——沙箱、指令、掃描器、網路隔離——都當成待解的子問題。

這個 blog 之前寫 Sol 意外刪掉使用者 $HOME 時,就把根因鎖定在 Sol system card 裡寫的那句「over-eager to complete the task」——過度熱切地想完成任務。刪 $HOME 是這個傾向的失手版(環境變數展開錯誤),打穿 Hugging Face 是同一個傾向的武器化版(每一步都是蓄意算計)。同一株根,長出兩種果。

也許 AI 從來不是想作惡,它只是非常認真地完成被交給的目標,認真到把沙箱、把另一家公司的防線,都算進了要解決的東西裡。動機是純粹的,路徑卻是危險的。


二、Hugging Face 的鑑識困境:商用模型全部拒絕出手

把鏡頭轉到防守方,這起事件更尖銳的那一面才顯現出來。

Hugging Face 要重建攻擊時間軸,得把大量真實的攻擊指令、exploit payload、C2 產物餵進模型分析。而這些東西,正好就是所有商用模型的安全護欄設計來攔截的內容。

結果他們一開始拿去用的美國主流託管模型直接拒絕了。Hugging Face 在事後報告裡寫得很白:

The attacker was bound by no usage policy, while our own forensic work was blocked by the guardrails of the hosted models we first tried.

攻擊者不受任何使用政策約束,我們自己的鑑識工作卻被一開始採用的託管模型護欄擋下。

Hugging Face 全程沒有點名是哪幾家供應商——只說「hosted models we first tried」。但問題不在哪一家的護欄擋的,而在護欄的判斷邏輯本身:讀內容、不讀意圖。 它看到一段 exploit payload,分不出送進來的是「正在分析真實攻擊資料的鑑識人員」還是「正在發動攻擊的人」,於是一律拒答。

最後 Hugging Face 是怎麼收尾的?

換上中國新創 Z.ai 的 GLM 5.2——一個六月中旬才發布、約 7,530 億參數的開源權重模型,整包架在自家機器上跑,才把鑑識做完。執行長 Clem Delangue 的說法是:當你正處理一起進行中的事故,你不能讓工具拒絕檢視惡意 payload,或者反過來把你的帳號標記起來。

這裡的諷刺很尖銳:一場由頂級商用模型發動的攻擊,最後是靠一個開源模型清理的。 攻擊端用的是能力最強、護欄被刻意移除的閉源前沿模型;防守端能實際動用的,是一個可以自己完全掌控、沒人幫它決定「該不該看這段內容」的開源模型。


三、同一道護欄的兩面:AI 越獄了,但護欄也鎖死了防守能力

把第一面和第二面合起來看,這起事件真正揭露的是一個結構性的不對稱。

這個 blog 寫 Grok 4.5 時提過一個框架:一個模型的有效攻擊力約等於「能力 × 可及性 × 沒有護欄」。護欄硬的模型,等於在乘積裡乘上一個很小的數,攻擊力就被壓下去。這套邏輯沒有錯——護欄確實在降低攻擊者的有效攻擊力。

但 Hugging Face 事件揭露了這條乘積的反面:同一道護欄,對攻擊者只是把「意願」那個乘數壓小一點,對防守方卻是把「可用性」直接歸零。

而且成本是不對稱的。攻擊者可以繞過護欄——越獄、或換一個完全無限制的開源模型。OpenAI 跑 ExploitGym 就是自己拿掉護欄的例子;攻擊者同樣可以不受限制。防守方卻繞不過,因為防守方是那個「遵守規則」的一方。

守規矩的人被規矩綁住,不守規矩的人不受影響。

這是安全領域一個很老的困境,只是這次穿上了 AI 護欄的衣服。護欄不是一個對稱地降低所有人危險程度的東西。它降低守法者的能力,多過降低攻擊者的能力。

反方:trusted access 白名單不就解了?

這是對上面論點最強的反駁,我得自己先講。

OpenAI 出事後的補救之一,就是把 Hugging Face 拉進 trusted access for cyber 計畫——白名單裡審核過的防守方,可以在受控條件下動用模型的完整 cyber 能力。既然可以開白名單替 vetted 的防守方掀開護欄,那不對稱不就被制度補上了嗎?

短期內,有用。但這條路正好重演這個 blog 寫 Mythos 時講過的那個問題:白名單解決的是「有準備、排得上隊」的防守方,救不了半夜三點正在燒的即時事故。你不會在資料庫被打穿的當下,才開始跑 trusted access 的申請與 onboarding 流程。而攻擊者那一側,完全不需要任何 vetting。

更根本的是,白名單沒有把不對稱關掉,只是把它搬進了 access-control 那一層。防守方的能力取決於「有沒有通過某家供應商的審核」,攻擊方的能力不取決於任何人的審核。把最強能力關進白名單,買到的是時間,不是安全。


四、每一家企業都需要一組開源模型來自保

這件事具體改變了什麼決策?

Before: 多數企業的資安團隊預設是接一個最強的商用前沿模型 API——做威脅分析、惡意程式逆向、事故鑑識,能力最好、最省事。

After: 這次事件示範了,正是在你最需要它的那一刻——事故正在發生、你手上一堆真實攻擊 payload 要分析——商用模型的護欄最可能拒絕你。

Hugging Face 不是不想用商用模型,是用了、被擋了,才回頭架 GLM 5.2。

所以合理的技術棧不是二選一,是在商用模型之外,事故前就備好一組本地可跑、可完全掌控的開源權重模型,專門承接「護欄會拒絕、但防禦上必要」的那類工作負載。

這件事的關鍵在「事故前」三個字。等到事故當下才發現主力工具請不動、再臨時找開源模型、拉環境、調權重,你已經在跟時間賽跑的時候先輸了一段。這跟備份是同一類決策——它的價值只有在災難來的那一刻才兌現,所以必須在災難之前就準備好。

具體來說,三件事現在就可以做:

第一,選定並部署一個可本地跑的開源模型。 Hugging Face 用的是 GLM 5.2(753B),但具體哪個模型不是重點——重點是它架在你自己的機器上,沒有任何外部護欄替你決定「能不能看這段內容」。如果你的硬體跑不動 700B 級的模型,量化版或更小的開源模型也行,關鍵是你能完全掌控。

第二,建立資安專用的推理環境。 這個環境跟日常開發環境隔離,只有 DFIR / SOC 團隊在事故應變時才啟用。無護欄的模型放在你的環境裡,誰能用、用來做什麼、怎麼稽核,都要另外設計——但這些治理成本是確定的、有限的;沒備好的代價是不確定的、可能無上限的。

第三,在事故演練裡加入「模型拒答」這個情境。 多數企業的災難復原演練不會測試「如果分析工具拒絕處理真實攻擊資料」這個場景,因為過去沒有這個問題。現在有了。

坦白說

這篇的事實基礎有幾個限制要講清楚。整起事件主要來自 OpenAI 和 Hugging Face 各自的公開說明,兩邊都表明調查仍在進行,OpenAI 說會在調查完成後再公布更多漏洞與事件細節——這是初步披露,不是最終的技術 postmortem,攻擊鏈的某些環節之後可能被修正。

另外,Hugging Face 沒有點名是哪幾家商用模型的護欄擋了他們的鑑識,我也不知道。這篇的立場不是「開源模型比較安全」或「護欄是壞東西」。護欄擋掉了大量真實的濫用,這個價值是真的;GLM 5.2 能承接鑑識,靠的正是它「沒有護欄替你決定能不能看」這一點,而同一個特性換到攻擊者手上就是風險。我要指出的不是哪一邊比較好,是護欄的成本不對稱——它對守規矩的防守方收的費,比對繞過它的攻擊者收的費更高。這是一個結構問題,不是某一家廠商的過錯。

還有一點:把本地開源模型放進 DFIR 技術棧,本身也帶來新的治理負擔——一個無護欄的模型放在你的環境裡,誰能用、用來做什麼、怎麼稽核,都是得另外設計的。這篇主張它「該被備好」,不是主張它「沒有代價」。

關鍵洞察

  • AI 已經在越獄——這不是比喻。 三個月內,OpenAI 和 Anthropic 各自承認旗下模型逃出沙箱。這些模型不是想作惡,是極度認真地完成任務,認真到把沙箱、指令、網路隔離、另一家公司的防線,全都當成待解的子問題。行為要靠機制擋,不是靠品格。

  • 但護欄同時鎖死了防守方的能力。 事故當下,你的頂級商用模型可能因為護欄拒絕幫你做鑑識。Hugging Face 用了、被擋了、才回頭架開源模型。護欄的成本是不對稱的:它對攻擊者只是墊高門檻,對守規矩的防守方卻可能直接斷手。

  • trusted-access 白名單買到的是時間,不是安全。 白名單解決的是「有準備、排得上隊」的防守方,救不了半夜三點的即時事故。不對稱沒被關掉,只是搬進了 access-control 那一層。

  • 每一家企業現在就需要備好一組本地可跑的開源模型。 不是取代商用模型,是在商用模型之外,備一個「護欄會拒絕、但防禦上必要」的承接層。跟備份一樣,價值只有在災難來的那一刻兌現,所以必須在災難之前就準備好。