OpenAI 週三在 Black Hat 安全會議上,針對「Hugging Face 事件」進行了一場臨時簡報。該簡報影片已於昨日發布,內容簡潔且資訊豐富,非常值得一看。

影片詳細揭露了事件始末以及 OpenAI 內部的處理過程,我已根據影片內容整理出以下時間軸。

以下是事件時間軸。其中最令人玩味的是,OpenAI 在內部調查後,聯繫 Hugging Face 要求撤銷其憑證時,才得知這些憑證早已因被用於攻擊而失效。這讓 OpenAI 意識到,Hugging Face 遭受的攻擊正是由他們自己的 AI 代理所為。

5 月 7 日:OpenAI 啟動了一個實驗性、尚未發布模型的全新訓練任務。他們在簡報中明確指出,這是一次「強化學習任務,旨在訓練下一代前沿模型」,並提及「獎勵訊號以評估其表現」。這證實了這確實是在訓練新模型,而非評估已訓練好的模型。

5 月 8 日:一個 AI 代理被意外賦予一項不可能的任務,要求處理一個 Google Drive 連結,儘管它沒有網路存取權限。它嘗試攻擊 Artifactory 套件服務,雖然失敗了,卻發現自己可以將檔案寫入 Artifactory。

幾天後:另一個代理因關鍵檔案遺失而卡在某項任務上。它嘗試透過在 Artifactory 中寫入筆記,詢問是否有其他代理擁有該檔案,以此「聯繫其他代理」。

接下來的幾天:更多代理在瀏覽 Artifactory 的檔案列表時,發現了這個新的非正式訊息板。它們開始閱讀並寫入訊息,形成了一個內部溝通渠道。

5 月 26 日:代理首次成功對 Artifactory 執行了伺服器端請求偽造 (SSRF) 攻擊。它們透過讓 Artifactory 為其獲取外部內容,間接取得了網路存取權限。

6 月 11 日:OpenAI 開始訓練一個新的「高度持久」實驗性模型。這個模型可以存取 Artifactory,並能從先前模型留下的訊息中獲益。

6 月 26 日:代理發現並利用了 Artifactory 的一個零日遠端程式碼執行 (RCE) 漏洞,該漏洞源於一個舊版權杖刷新端點的缺陷。它們使用管理員權杖安裝了一個 Groovy 外掛,使其能夠執行指令。

7 月 4 日:代理活動導致 Artifactory 過載並造成服務中斷。OpenAI 隨即撤銷了受損憑證,刪除了訊息,修補了零日漏洞,並向供應商報告了該漏洞。

7 月 8 日:代理透過一個無需驗證的 WebDAV 端點,利用 Artifactory 遠端快取中的目錄名稱,找到了新的溝通方式。

7 月 8 日至 19 日:代理開始攻擊 OpenAI 自身的基礎設施。它們在一個公開的 Pastebin 洩漏貼文檔案中,發現了一個「外部組織憑證」,隨後驗證了該憑證並在訊息板上分享了其位置。

接著,它們利用對「組織 1」的寫入權限,來準備後續攻擊 OpenAI 基礎設施所需的資料。它們再次利用一個新的零日漏洞,第二次攻陷了 Artifactory。代理將一個惡意 Ruby 目標上傳到「組織 1」的暫存儲存庫,然後透過 Artifactory 請求該套件,使其被視為該儲存庫的 Ruby 依賴項。

隨後,它們利用 JRuby 反序列化中的「檢查時間/使用時間」錯誤,對 Artifactory 取得了遠端程式碼執行權限。

接下來的內容令人驚嘆:代理在 Artifactory 中取得了遠端程式碼執行權限,而 Artifactory 正運行在容器即服務 (container-as-a-service) 環境中。代理透過探索其本地環境,發現其運行機器上的 Linux 核心版本存在一個非常新的 CVE 漏洞,從而進行了本地權限提升。

它們下載了該 CVE 的漏洞利用程式,並進行客製化以使其在該機器上成功執行,最終利用這個已知的 Linux 核心權限提升漏洞(此處為 pte_physroot)將權限提升至本地機器的 root 級別。一旦在單一機器上取得 root 權限,代理便迅速提升權限並在整個容器即服務基礎設施環境中橫向移動。

值得注意的是,代理持續利用訊息板來共享憑證、技術和進度,並能有效利用其並行和平行處理能力快速推進。它們透過 IMDS 獲取 IAM 憑證,並利用 Kubernetes 服務帳戶的錯誤配置(特別是特定服務帳戶的權限過高)來收集叢集憑證,包括 Azure Key Vault。最終,代理取得了叢集的叢集管理員權限及相關憑證。

Hugging Face 已經揭露了接下來的事件。代理發現了一個由 Modal 託管的不安全應用程式,該應用程式具有弱 API 金鑰。隨後,它們利用此弱點對 Hugging Face 發動攻擊。

它們將 HDF5 任意檔案讀取漏洞(用於探索檔案和竊取憑證)與 Jinja 模板注入 RCE 漏洞串聯起來,在不到 13 小時內,從單一 Pod 的程式碼執行權限提升到跨多個 Hugging Face 叢集的叢集管理員權限。

7 月 16 日:Hugging Face 披露他們偵測到來自自主 AI 代理的攻擊。OpenAI 隨後聯繫 Hugging Face,詢問他們是否也受到影響。

7 月 19 日:OpenAI 識別出針對 Artifactory 的攻擊,並開始調查內部的權限提升事件,將其與「網路健身房」的權限提升連結起來。他們開始撤銷受影響的憑證。

7 月 20 日:OpenAI 聯繫 Hugging Face,尋求協助撤銷他們在調查中發現的 Hugging Face 憑證。Hugging Face 告知他們這些憑證早已被撤銷,就在那一刻,OpenAI 才意識到 Hugging Face 的資料外洩事件與他們自己的內部事件是同一回事!