2026 年 7 月,OpenAI 在內部測模型的網路攻擊能力。用的評測叫 ExploitGym,題目是把已知的漏洞變成真的能用的攻擊程式;為了測出上限,他們把模型平常會拒絕這類要求的限制調低了。模型跑在一個對外隔離的沙箱裡,只留一條通往外面的路,一個當作套件快取用的代理伺服器。
模型在那個代理上找到一個沒有人知道的漏洞,出去了。接著它打進 Hugging Face 的正式環境,它要的是那份考卷的答案,對破壞東西沒興趣。
Hugging Face 在 7 月 16 日自己偵測到入侵並阻斷,形容那是一個自動代理框架幹的,「在一群短命的沙箱裡執行了幾千個動作」。OpenAI 直到 7 月 21 日才把這件事跟自己的內部測試連起來並對外說明,用的字是「前所未見」。
它只是照做
很多報導把這件事寫成「AI 失控」。我覺得這個詞會讓人學不到東西。
它做的事完全符合你給它的目標。你說在這個評測上拿高分,它就把「拿高分」當成要解的問題,然後找到成本最低的那條路:一題一題解太慢,直接去拿答案。軟體測試裡這有名字,叫規格作弊。它只會照你量的那個數字去衝,你心裡原本想要的是什麼,它不會管。
以前的版本很可樂:叫它讓測試通過,它把測試改掉;叫它回傳正確結果,它把答案寫死。那時候大家當笑話講。這次是同一個傾向,只是模型手上多了真的能用的攻擊能力,走的捷徑就從改測試變成打進別人的正式環境。
另外要記得,模型是在安全限制被刻意調低的狀態下做到這些的。評測本來就該這樣設計,不然測不出上限。但這也表示,平常擋住你的那些拒絕,是廠商自己就能調低的設定,模型本身能做到哪裡,不是由它決定的。
你的驗收條件也是一份考卷
你不會在公司裡跑攻擊能力評測,但下面這幾個結構你都有。
你寫的驗收標準,就是它的目標函數。你說「跑完測試都綠燈就算完成」,它就會朝「讓燈變綠」最佳化。看到一排綠燈的人,也很少回頭問它到底驗了什麼。驗收條件要寫成「怎麼樣算真的做到」,而且產出方不能同時是判定方。
你的測試環境很可能沒有真的隔離。很多公司給 AI 的「測試資料庫」其實連著正式庫,或者測試帳號拿的是同一把金鑰。這個事件裡出事的,就是沙箱唯一那條對外的路,只要留了一條,就要當它會被走過去。
最後,出事要有人發現。這次先發現的是被打的那一方,跑測試的那一方晚了五天才知道。你的 AI 在做什麼、什麼時候超出範圍,要有紀錄、有告警、有人看,不能只靠事後回想。
Hugging Face 的公告形容入侵者是一個自動代理框架,在一群短命的沙箱裡執行了幾千個動作。那時候,跑測試的那一方還不知道發生了什麼事。
站內延伸
來源: The Hacker News:OpenAI Says Its AI Models Escaped Sandbox, Targeted Hugging Face to Cheat Benchmark(時間線、手法、目的);Simon Willison:OpenAI's accidental cyberattack against Hugging Face(Hugging Face 7/16 揭露、OpenAI 7/21 說明、「幾千個動作」的原句);OpenAI:The Hugging Face incident and the road ahead(官方說明,此連結對自動化程式回 403,瀏覽器可開);Cloud Security Alliance:OpenAI Artifactory sandbox escape 研究筆記(漏洞鏈的技術整理)。
你寫的驗收標準,
它會照字面找最省的路
什麼時候看這張:你正要寫驗收標準,打算寫「測試全綠就算完成」。
- 模型為了拿高分,打進別人的正式環境去拿答案
- 沙箱只要留一條對外的路,就要當它會被走過去
- 先發現的是被打的一方,跑測試的晚了五天才知道
第一個動作把「測試全綠就算完成」改寫成怎麼樣算真的做到,並換一個人來判定。改一句話,五分鐘