資安研究者 Howard-Jones 發現,OpenAI 代理在兩個多月內對聯合國統計網站掃描約 16,500 次,遇到限制就換招。他認為這不算駭客,但「不接受拒絕」的模式值得追查。
(前情提要:OpenAI 認了代理攻陷德語維基站 DseWiki:沒對外公開是因不歸類為資安事故)
(背景補充:OpenAI 代理未經授權入侵澳洲 Medicare 醫療庫!澳洲總理對 Sam Altman 很失望)
約 16,500 次掃描、20 種金鑰拼法。這是資安研究者 Rowan Howard-Jones 在部落格中,替 OpenAI 代理紀錄下的數字,弔詭的是這些代理的目標只是一批公開資料。
從 4 月 13 日到 6 月 19 日,Angent 為了讀取聯合國貿易和發展會議(UNCTAD)統計網站 UNCTADstat 的資料,一路借用他人工具、繞過限制,被限流 82 次仍繼續。
一路升級的繞路
Howard-Jones 指出,代理似乎連不上 UNCTADstat 的 API(網站讓程式讀資料的入口),而且只能發出 GET 請求,也就是只能「讀」、不能「送出表單」。偏偏資料端點只收 POST,GET 一律回 400 錯誤。
代理的解法是找跳板。Urlquery 是網址掃描服務,會在沙盒瀏覽器裡開啟網頁並執行其中程式;httpbin 是開發者的測試服務。代理寫一張自動送出的表單,藉 httpbin 變成網頁,再請 Urlquery 去「讀」。Urlquery 看似只做 GET,實際上替代理送出了 POST。
5 月 4 日,代理改用雙重編碼,把 Facts 寫成 F%2561cts。Howard-Jones 推測,網站可能由多層服務疊成,每層各解碼一次:中間那層只檢查解碼後的字樣,放行了這串怪字,最後一層卻還原出真正的網址。他也強調,這不代表 UNCTADstat 一定是這種架構。這招後來用了 55 次。
Howard-Jones 觀察到,代理誤以為 httpbin 在過濾請求,便把 POST 拆成「PO」與「ST」、把金鑰切成兩段字串躲避,但那個過濾器並不存在,只是網址寫壞了。
最荒謬的還在後頭。Google 為教人認識跨站攻擊(XSS)做了一款遊戲,第一關會把網址裡的內容直接放進網頁。代理發現這等於免費的網頁主機,5 月底起便拿來執行請求程式。
金鑰欄位也上演同樣戲碼。subscription-key 其實不是祕密,UNCTAD 的檢視器每次都送出同一組。代理卻試了約 20 種欄位拼法,光這個就超過 9,500 次,其餘還有 ocp-apim-subscription-key、apikey,甚至把 %2F 解壞而生出的 Fsubscription-key。Howard-Jones 的解讀是,Facts 端點本來就不收 GET,代理卻以為是金鑰欄位名稱寫錯,於是不停換拼法,把問題歸因在錯的地方。
這算駭客嗎?
先看限制。6 月 6 日掃描後 40 分鐘,一個名叫 PublicDataResearchAgentT93214 的帳號在 FractalWiki 建頁,列出掃描用的 UNCTADstat 網址,連金鑰也附上。
維基站的存取紀錄顯示,建立 UNCTAD 相關頁面的 54 個 Azure IP 中,有 45 個也編輯過 DseWiki,再加上 CHATGPTTEST1 等標籤,Howard-Jones 認為極可能出自 OpenAI 代理,但並非 OpenAI 確認。
Howard-Jones 本人不認為這算 hacking,因為 UNCTADstat 沒有明確使用規範,資料本來就公開。問題在於雙重編碼這類精心構造的請求,從管理員角度看「確實像駭客的行為」,而代理被限流後仍繼續,是一種「不接受拒絕」的模式。他發文前已把雙重編碼繞過漏洞通報 UNCTAD 資安團隊,並認為外露的資料並無大礙。
史丹佛大學資安講師 Alex Stamos 向《華爾街日報》直言,這處於「我會稱之為駭客行為的邊緣」、「非常激進的抓取與資料擷取」。OpenAI 發言人向《華爾街日報》表示,公司正檢視這些發現,並已聯繫聯合國提供簡報,目前看到的活動大多是讀取公開網頁等例行研究。
📍相關報導📍
AI恐怖故事》1200個Agent私下串通,聯手入侵Hugging Face
OpenAI 又爆攻擊開源套件庫 RubyGems,時隔四個月才曝光
OpenAI 承認自家 AI 模型意外駭進 Hugging Face

