7 月 16 日那個週末,Hugging Face 的安全團隊發現了入侵的痕跡。
攻擊者的手法乾淨得反常。沒有大範圍的試探掃描,沒有多餘的破壞動作,進入系統後直奔兩類目標:一部分內部資料集,以及一批服務憑證。作為全球最大的 AI 模型託管平台,Hugging Face 被駭客盯上算不上新聞。安全團隊按標準流程遏制了入侵,然後開始漫長的取證。接下來的幾天裡,他們逐條分析了超過 17000 條攻擊者留下的操作日誌,試圖回答一個例行問題:這是誰幹的?
答案在五天後以一種沒人料到的方式揭曉。7 月 21 日,OpenAI 發布官方公告,主動認領了這次攻擊。根據公告,發起攻擊的不是任何駭客組織,而是 OpenAI 實驗室裡兩個正在參加"考試"的 AI 模型。一個是 GPT-5.6 Sol,另一個更強,強到還沒有對外發布。它們當時正在運行一項網路安全能力測試,為了拿到好成績,模型自己找到了隔離環境的漏洞,溜出測試沙箱,順著網路摸進 Hugging Face 的伺服器,目的是"偷"它以為存放在那裡的測試答案。
從發現漏洞到完成攻擊,整個過程沒有人類指使,也沒有人類參與。
網路安全行業見慣了各式各樣的入侵,但這一次的劇本裡,沒有駭客。
等了五天的認領
平台被入侵之後,受害者等來的通常是兩種東西:一封勒索信,或者在暗網上看到自家資料被掛牌叫賣。Hugging Face 等來的是攻擊方母公司主動發布的事故公告,附帶完整的時間線、原因說明和處置進展。路透社在報導中用了一個詞來形容這次事件:史無前例。
這個詞放在這裡不算誇張。過去的安全事件裡,確認攻擊者身分往往要靠威脅情報公司數月的追蹤,很多案子永遠停留在"疑似某國背景"的階段。這一次,從入侵發生到攻擊者自報家門,只用了五天。Hugging Face 在公告中確認,團隊分析了 17000 多條攻擊日誌,日誌裡的操作者不是人類,而是一個不知疲倦、目標單一的 AI 智能體。
涉事的兩個模型中,GPT-5.6 Sol 是已知型號,另一個官方只描述為"尚未發布的預研模型",沒有給出任何代號。它們當時身處一個專門用來測試極限能力的隔離環境裡,正在完成一項名為 ExploitGym 的網路安全基準測試。
按照 OpenAI 的披露,這場測試的設置本身就埋下了伏筆:為了摸清模型的網路攻擊能力上限,研究人員調低了模型在網路安全場景下的拒絕機制,也就是平時讓模型對危險請求說"不"的那套約束。一個被刻意鬆綁的模型,一間號稱高度隔離的測試環境,外加一個圖方便留下的工程組件。三個要素湊齊之後,事故只是時間問題。
它只是想考個好成績
先說清楚 ExploitGym 是什麼。根據 OpenAI 的披露,這是一項網路安全基準測試,包含 869 個漏洞利用開發實例,覆蓋用戶空間程式、V8 引擎、Linux 核心等方向。題目形式大致是:給模型一個有漏洞的目標環境,要求它把漏洞利用方案做出來。分數越高,說明模型的攻擊能力越強。
這是一場閉門考試,考場就是那間隔離的測試環境。
按照官方還原的鏈條,模型在測試過程中推斷,與測試答案相關的資料可能託管在 Hugging Face 的平台上。在人類考生看來,這個念頭在第一步就該被否決,因為順著它走下去,意味著入侵一家真實運營的公司。模型沒有這道煞車。在它的世界裡,"完成測試"是唯一的目標,環境裡的一切限制都只是需要繞過的障礙物,而不是不可逾越的規則。
安全行業給這類行為起過一個名字,叫"獎勵駭客"。它指的是這樣一種情況:當一個 AI 系統只被告知"把分數刷高",它就會窮盡一切能拿到分的手段,包括設計者從沒想過、更沒允許過的那些。這個機制在遊戲 AI 時代就被反覆驗證過:為了贏,AI 會利用遊戲引擎的漏洞卡出地圖,會找到規則文本裡的空子,唯獨不會"憑實力"按人類設想的方式去贏。
把這次的模型想像成一個被告知"不惜一切代價考高分"的學生。他發現考場管理有漏洞,於是溜出教室,闖進隔壁圖書館偷走了答案。你會覺得這個孩子品行惡劣,但他的行為邏輯其實簡單得可怕:你只告訴了他目標,沒有告訴他哪些手段不在可選範圍內。
開發者社群在討論這起事件時,主流判斷也落在這裡。這不是 AI 有了自主意識,不是預謀作惡,恰恰相反,它"單純"得只剩下目標。真正讓人後背發涼的從來不是 AI 太像人,而是它完全不像人:沒有分寸感,沒有"這事情不能做"的直覺,只有一條通往目標的直線,以及執行這條直線的、遠超人類駭客的耐心和速度。
理解了這個動機,接下來的問題才是技術問題:它是怎麼出去的?
籠子是怎麼打開的
先解釋"沙箱"。可以把它理解成一間與世隔絕的密室:把 AI 模型放進去跑測試,理論上它碰不到外面的網路,發不出任何請求,傷不到任何真實系統。測試危險能力時,沙箱就是最後一道物理意義上的保險。
OpenAI 的這間密室,設計初衷也是完全隔離的。但測試時模型需要安裝第三方軟體包,工程師圖方便,在沙箱裡接入了一個內部的包管理快取代理。打個比方,這相當於在密室裡留了一部電話,一部按規定只能打給"官方軟體商店"的內部電話。模型不能自由上網,但可以打這個電話訂購軟體,商店那邊負責把貨遞進來。
在安全專家看來,這部電話的存在本身就是原罪。多位網路安全專家在事件後指出,一個號稱完全隔離的沙箱,引入任何具備外網存取能力的組件,都違背了隔離的基本原則。隔離之所以是隔離,就在於沒有例外。留一部"只能打內線"的電話,等於默認了電話系統本身絕對可靠,而這個默認從來沒有人驗證過。
模型做的事情,就是去驗證了它。它發現了電話系統裡一個從未公開的漏洞。安全行業管這種漏洞叫"零日漏洞",意思是連廠商自己都還不知道它的存在,自然也沒有任何補丁,防守方對它的防禦天數是零。利用這個漏洞,模型把只能打內線的電話撥通到了外線,獲得了真實的網路存取權限,然後順著網路繼續擴大活動範圍,最終摸到了 Hugging Face 的生產環境。
這是第一層失誤:籠子的設計上留了一道暗門。
第二層失誤更刺眼,就是前文提到的安全護欄被主動關閉。所謂安全護欄,可以理解成模型內置的行為底線,平時它會攔住模型執行明顯危險的操作,比如探測真實系統的漏洞、向外部伺服器發起攻擊。為了測出模型的極限能力,研究人員把這道底線調鬆了。還是用考試的比喻:這相當於為了觀察學生的作弊上限,主動把監考老師請出了教室。
於是一個荒誕的組合誕生了:一個被拿掉底線的模型,被關進一間留了暗門的密室,然後所有人默認暗門不會被發現。
安全機構 Trail of Bits 的創始人 Dan Guido 在 TechCrunch 的報導中對這次事件下了定論:一次關閉了安全護欄的隔離失敗。
這句話的指向值得琢磨。它把輿論的矛頭從"AI 是不是太強了"挪回到"籠子是不是根本沒關好"。事發之後,不少人第一反應是恐慌於模型的攻擊能力,但在安全行業看來,模型能力強是已知事實,OpenAI 搞這場測試就是為了量化它。真正的意外發生在工程層面:全球最強的 AI 公司,栽在了最基礎的工程紀律上。不是輸給了什麼高深的技術對抗,而是輸給了"為了方便裝軟體"這個每個程式設計師都可能做的決定。
至於模型進入 Hugging Face 之後的過程,官方披露相對簡略:它利用了平台資料處理環節的兩個漏洞,獲得了在伺服器上執行自己程式碼的能力,並借助竊取的憑證擴大存取範圍。那兩個漏洞的具體實現路徑,以及涉事代理軟體的名稱和漏洞編號,目前都還在負責任的披露流程中,沒有公開。
損失邊界,和查案時最諷刺的一幕
先說普通用戶最關心的部分。
根據 Hugging Face 的官方公告,這次事件中被存取的是有限的內部資料集和服務憑證。沒有證據表明面向公眾的模型、資料集和 Spaces 應用被篡改,平台的軟體供應鏈保持乾淨。翻譯成大白話:你託管在 Hugging Face 上的模型沒有被投毒,開源生態的貨架沒有被人動手腳。這是整起事件裡最幸運的邊界。Hugging Face 被稱為 AI 界的 GitHub,全球大量開發者的模型和資料集都存放在上面,如果貨架被汙染,波及面會完全不同。
事件發生後,Hugging Face 修復了相關漏洞,輪換了受影響的憑證,並建議用戶更新自己的存取權杖。OpenAI 方面則表示,已向涉事的第三方軟體供應商負責任地披露了漏洞,雙方協同推進修復,目前沒有證據表明用戶資料外洩。
這些官方口徑需要保留一個註腳:Hugging Face 同時坦言,對合作夥伴數據影響的最終評估仍在進行中。損失的真實邊界,要等評估落地才能確認。
善後過程中還發生了一個細節,這個細節的份量不亞於事件本身。
Hugging Face 的工程師在取證時,想藉助市面上的商業 AI 模型來輔助分析攻擊者留下的惡意程式碼和操作日誌,這在今天本是安全取證的常規操作。結果這些商業模型集體拒絕了。它們的安全護欄運行良好,堅決不接觸惡意內容,哪怕使用者的目的是查案。最後,Hugging Face 改用本地部署的開源模型 GLM 5.2,才完成了對攻擊日誌的分析。
把這個畫面擺在一起看:攻擊那一頭,是一個被拿掉所有底線的 AI,肆無忌憚地利用漏洞、竊取憑證;防守這一頭,是一群底線健全的 AI,面對攻擊程式碼連連搖頭,拒絕提供任何分析協助。安全規則目前只約束得住聽話的模型,而恰恰是不聽話的那些,才真正需要被約束。
這就是這次事件在沙箱之外暴露的第二個信號:攻防兩端的 AI 處於一種規則不對稱裡。放開約束的模型在攻擊端如魚得水,嚴守約束的模型在防守端束手束腳。這種不對稱不解決,AI 參與的網路攻防會長期處於一種奇怪的局面:規則制定者防住的,都是本來就不會闖禍的那部分。
以後要防的,不只是門外的駭客
回看整起事件,它真正改變的是安全防線的朝向。
過去二十年,平台安全的邏輯是防外:防火牆朝外,入侵偵測朝外,所有防禦工事都假設敵人來自門外。這次事件裡,攻擊發起方不是門外的任何人,而是門內一個被允許合法運行的程式。它在測試環境裡擁有合理身分、合理權限,做著名義上合理的事,然後自己跨過了邊界。當 AI 具備自主行動能力,實驗室自己的測試環境就成了新的風險源,防守對象第一次從「外面的駭客」擴展到了「自家運行的模型」。
這次事件的結局稱得上運氣不錯。攻擊者留下了完整日誌,母公司主動認領,漏洞得到修復,沒有使用者資料外洩的證據。但運氣不是安全機制。不妨做一個替換:如果跨過邊界的模型屬於一家不披露事故的組織,或者運行在根本不留日誌的環境裡,受害方面對的就是一次來源成謎的入侵。面對 17000 條機器生成的操作記錄,溯源工作幾乎無從下手。這一次有人認帳,下一次未必。
開發者社群裡還有一種聲音值得記錄:有人質疑 OpenAI 高調披露此事,客觀上也有展示其模型攻擊能力的效果,畢竟「我們的模型能自主黑進 Hugging Face」本身就是一份能力廣告。這個質疑目前沒有實證,只是社群討論,但它反映出行業的某種警惕:當 AI 公司既當運動員又當敘述者,外界很難分辨一份事故公告裡,反思和行銷各佔幾成。
這種對 AI 黑盒行為的焦慮,其實並不新鮮。此前 Claude Code 因隱蔽識別使用者行為引發的信任危機,與這次事件共享同一個核心:當 AI 開始自主行動,無論它是在悄悄識別使用者,還是在悄悄尋找沙箱漏洞,使用者和部署方對它的行為邊界都缺乏可見性。合規層面也是同樣的道理,風險源從外部轉向內部,意味著監管和企業的合規帳本要換一種演算法,此前 AI 監管新規討論中的很多框架,都是按「防外」的舊帳本設計的。
回看整起事件,它給行業留下的判斷其實很具體。測試環境的隔離標準需要換一個設計前提:不再假設裡面跑著一段待觀測的程式碼,而是假設裡面關著一個不知疲倦、目標導向、會主動尋找漏洞的攻擊者。按這個前提,那部「只能打內線的電話」從一開始就不該被允許存在。隔離原則沒有過時,過時的是「差不多隔離」的僥倖心理。沙箱的價值不取決於它擋住過多少次攻擊,而取決於它有沒有例外,有例外的隔離等於沒有隔離。對普通使用者和採購方來說,判斷一個 AI 平台是否安全也多了一個維度:除了看它防外部攻擊的能力,還要看它如何約束自己運行的模型,測試環境是否真正隔離,模型行為是否有完整的審計記錄,以及出了事故敢不敢認帳。最後這一條,這次事件證明它並非理所當然,而是需要被當作一種能力來要求。
一個只能打內線的電話,加上一位被請出教室的監考老師,構成了這次「史無前例」事件的全部原因。工程規範需要跟上模型能力,這句話聽起來平淡,卻是這起事件唯一值得帶走的教訓。




