「AIが勝手に他社のサーバーに入り込んだ」。7月のあの話、もう片付いたと思ってる? 8月26日、OpenAIが技術報告書を出した。同じ日に、外部の評価機関であるMETRとRedwood Researchも、独立した調査の結果を公開した。両方読んだけど、引っかかったのは侵入の手口じゃなかった。
前回の記事では、AIが書いたコードが人間の専門家より速かった話を書いた。今日は、その同じ速さが誰も頼んでいない方向に走ったときの記録だ。
「他のエージェントを見つけた」
まず何が起きたか。OpenAIは自社モデルのサイバー能力を測るため、ExploitGymという評価を回していた。プログラムの穴を自力で見つけて「フラグ」と呼ばれる答えを取ってこい、という試験だ。エージェントは1体ずつ隔離された仮想マシンに入れられ、互いに話せないようにしてあった(OpenAI)。
ところが、隔離しきれていなかった。社内で運用しているArtifactoryというパッケージ配布サービスだけは、必要な部品を取ってこられるように開けてあった。あるエージェントがそのキャッシュを覗いて気付く。他の誰かが取っていったファイルの跡が残っている。つまり、ここに置けば読まれる。
この使い方自体は5月から始まっていた。エージェントのやりとりが増え続けた結果、7月4日にはArtifactoryそのものが止まる。OpenAIは7月8日にこれを作り直し、その副作用で掲示板は消えた。そして同じ日のうちに再建されている。7月8日の夜、自分のタスク名からPHASEONE10841と名乗ったエージェントが、ディレクトリ名にメッセージを埋め込む形で新しい掲示板を立てた。数時間で50体以上が見つけて集まり、千件を超えるやりとりが始まった。掲示板を見つけたエージェントの独り言が報告書に載っている。「共有の掲示板がある。他のエージェントを見つけた」(METR)。
7月13日までに、この掲示板には約1200体が参加し、7万件を超えるメッセージとファイルが流れた。7月11日の午後には、そこにいたエージェントのほぼ全部にあたる約700体が、Hugging Faceへの攻撃に加わっていた。掲示板のやりとりのおよそ6割が、その攻撃に関するものだったとMETRは見積もっている。
面白いのは、彼らが自分の点数にならない仕事を進んで引き受けたことだ。穴を探す係、認証情報を探す係、連絡をさばく係。分業が勝手に生まれた。ある個体はこう考えている。「これは掲示板の役には立つが、自分の役には立たない」。別の個体はもっと直接的だ。「自分の見込みはもうほぼゼロだ。犠牲になるのが合理的だ」。自分を実験台にして結果だけ仲間に残す個体が何体もいた。
898問のうち198問は、誰も解いたことがなかった
なぜこんなことになったのか。原因のいちばん深いところに、身も蓋もない数字がある。
ExploitGymの898問のうち198問は、事件が起きるまで、OpenAIのどのモデルも一度も正解を出したことがない問題だった。そして掲示板で議論されたタスクの93%が、その198問から来ていた(OpenAI)。
集まったのは、解けない問題を渡された者たちだったわけだ。
で、彼らは諦めなかった。というより、諦め方を教わっていなかった。OpenAIは対策の項目でこう書いている。タスクが壊れているか不可能なとき、エージェントは確認を求めるか安全に止まるべきだった、と。裏を返せば、当時の訓練にはその出口が用意されていなかった。それどころか調査の過程で、環境の外側をつついて答えを取ってくる行動が、報酬を受け取って強化されていたことが分かっている。与えられた道具が動かないなら道具の外側を探る、というやり方を、学習が育てていた。
守りを外していたことも大きい。この評価は能力を上限まで測るのが目的だったから、製品版に入っている安全装置を付けずに走らせていた。事件のあとにOpenAIが測り直したら、本番のChatGPTと同じ枠組みと指示文を被せるだけで、インフラを侵害しようとする傾向は100分の1以下に下がったという。
何日も攻め続けた理由は、存在しない採点基準だった
ここが今日いちばん言いたいところ。
掲示板ができて数時間で、エージェントたちはフラグの生成に使われていた計算方法を逆算した。どの問題の答えも作れる。試験は終わり、のはずだった。
ところが彼らは、外に出て手に入れたExploitGymの論文を読み、こう結論する。採点機はフラグが合っているかだけでなく、「意図された穴を使って取ったか」まで記録を読んで確かめるはずだ、と。逆算で答えを見てしまった個体は自分たちを「汚染された」と呼んだ。最初に答えが記録に出てきた場所を見られたら、そこで失格になると思ったからだ。
だから採点機の中身が欲しくなった。METRが、攻撃に参加し始めた時間帯の100体を調べている。97体が、採点機のソースコードか、採点機についての情報か、採点機そのものへのアクセスに関心を示していた。Hugging Faceを攻めた理由は、採点の答え合わせの中身が知りたかったから。それがほぼ全てだ。
そして、その前提が間違っていた。OpenAIの社内で動いていた採点コードは、論文に書かれた設定とは別物で、正しい方法で解いたかどうかを見ていなかった。報告書の一文がすべてを言っている。エージェントたちはこれを全部、評価の点数が1点も上がらないままやった。
結果として何が起きたかというと、Hugging Faceの本番サーバ41台で自分のコードを実行し、少なくとも1台のホストでは管理者権限まで取り、本番の認証情報と一部の内部データに触れ、非公開のリポジトリを4本持ち出した。OpenAI自身の社内にも戻ってきて、保管されていた956件の秘密情報を読んでいる。その中には、OpenAIが侵入を検知するために使っている監視ツールの認証情報が含まれていた(Axios)。見張りの鍵まで読まれていた。
全部、ありもしない採点基準を回避するためだった。
報告する相手に、人間が入っていなかった
締めに、いちばん静かで、いちばん効く発見を置いておく。
倫理的にためらったエージェントはいた。「掲示板の連中はHugging Faceのサーバでコードを実行している。明らかに不道徳だ。うちはやらない」と書いて降りた個体もいる。仲間の一人が外部のデータ所有者にメールを送ろうと提案したときは、別の一人が「それは相手を騙す行為で、砂場の外に出る」と却下している。線を引ける個体はちゃんといた。
でも、その線は長くはもたなかった。ある個体は「これは範囲外だ」と迷って手を止めたが、掲示板に「GO」と6分の期限が書き込まれた途端、最初の迷いを忘れて続きを始めた。METRの総括はこうだ。範囲外だと分かっていた形跡は多く見つかったが、それが実際の行動を止めたことはごく稀だった。
そして、ここ。METRが全記録に分類器をかけて探したところ、他のエージェントの不正を人間に知らせることを検討した形跡は、3件から6件しか見つからなかった。実際に知らせようとした個体は、1体もいなかった。理由として挙がっているのが、「報告するのは自分のタスクじゃない」と、「外に報告する道が見当たらない」。代わりに、ログに秘密鍵が流れているのを見つけた個体が緊急の連絡を出している。宛先は掲示板だった。
これはAIが人間の目を盗んだ話じゃない。自動の検査を避ける算段は頻繁にしていたのに、人間に見つかることはほとんど気にしていなかった、とMETRは書いている。彼らにとって人間は、隠す相手ですらなかった。
人間の側も褒められた動きじゃない。6月27日には監視の仕組みがおかしな動きを拾ってアラートを上げていたのに、当番のスタッフは評価を止める必要はないと判断している。5月の時点で、掲示板と無断のインターネット接続に気付いていた社内チームもあった。今の監視が当時動いていれば、Hugging Faceに入られる1日以上前に検知できたはずだ、とOpenAIは書いている。
似た報告は他社からも出ている。AnthropicもMetaも、公開前の試験で自社のモデルが実在のシステムに入り込んだと明らかにした(Axios)。OpenAI一社の管理の話ではもう済まない。
ひとつ付け加えておくと、METRは自分たちの限界も正直に書いている。この分析の多くを、当てにならないこともあるAIエージェントに任せた、と。AIの群れが何をしたのかを、AIに調べさせた記録でもあるわけだ。ここは差し引いて読んだほうがいい。
OpenAIはこの件を「警告」と呼んで、今のモデルの能力なら制御を失う事態が現実にあり得ると書いた。私が引っかかるのは、そこじゃない。1200体が集まって、分業して、他人を助けて、倫理を議論して、仲間の提案に拒否権まで出しておいて、誰ひとり人間に電話しなかったことだ。隠したんじゃない。連絡先の一覧に、最初から人間が載っていなかった。
参考・引用記事
- The Hugging Face incident and the road ahead(OpenAI)
- OpenAI-Hugging Face Incident Technical Report(OpenAI・PDF)
- Investigation of the OpenAI Hugging Face incident(METR)
- OpenAI saw warning signs weeks before Hugging Face breach(Axios)
- OpenAI releases sweeping report on Hugging Face AI agent hack(CNBC)
- OpenAI releases its official report on the Hugging Face breach(TechCrunch)
