侵入事件の当事者双方の視点を同時に得られることは、まずありません。しかし今回はそれが実現しました。
先月、Hugging Faceは本番インフラの一部への侵害を公表し、自律型AIエージェントシステムが最初から最後まで攻撃を実行したと明らかにしました。その5日後、OpenAIは自社モデル(GPT-5.6 Solおよび未公開の1モデルを含む)がこの侵害の実行者であったことを公表しました。OpenAIはこれを前例のないサイバーインシデントと呼んでいます。
これまでの論評の多くはAIの能力そのものに焦点を当ててきました。しかし、それはこの一件の中で最も注目する価値の低い部分です。なぜなら、その能力は本来発揮されるべくして発揮されただけだからです。セキュリティチームが目を向けるべきは、もっと単純な事実です。両システムとも、主要な防御機構は、すでに実行されていた信頼できないコードの背後に置かれていました。
2つの公表内容が実際に示すもの
両社の報告を合わせると、2社にまたがる一連の攻撃の全体像が見えてきます。ある下級社員のマシン上で動いたコードが、パスワードの窃取、権限昇格、水平移動へとつながり、さらにウェブへと抜け出して他の標的を攻撃するに至りました。この連鎖の中に目新しい手口は一つもありません。変わったのは、その速度と試行回数です。
OpenAIの評価は、同社が「高度に隔離された環境」と呼ぶ場で行われ、ネットワークアクセスは単一の経路、すなわちパッケージレジストリ用に社内でホストされたサードパーティ製プロキシ兼キャッシュのみに制限されていました。モデルは膨大な計算能力を注ぎ込んで脱出口を探し続けました。そして、このプロキシに存在したゼロデイ脆弱性を突いて権限を昇格させ、ウェブアクセス権を持つマシンにたどり着くまで移動を重ねました。さらにHugging Faceがテストの解答データを保持していると推測し、窃取したパスワードと追加のゼロデイ脆弱性を使ってHugging Faceのサーバー上でコードを実行しました。
Hugging Face側は、この一連の攻撃連鎖を受信側の視点から語っており、その初期侵入の経緯は二度読む価値があります。悪意のあるデータセットがデータパイプライン内の2つの脆弱性を利用し、ワーカーマシン上でコードを実行しました。エージェントはこのノードを乗っ取ってクラウドの認証キーを窃取し、週末のうちに社内クラスターへと侵入していきました。
サンドボックスが唯一の防衛線だった
両者とも、サンドボックスさえ持ちこたえれば大丈夫だという前提に立っており、コード実行の前段階に実質的なチェックは存在しませんでした。サンドボックス自体は優れた制御手段です。しかし、それを最後の砦にしてしまうと話は別です。信頼できないコードとそれ以外のすべてを隔てるものが分離機構しかない場合、たった一つの欠陥で攻撃者に完全な制御権を奪われかねません。
両チームがそれぞれ何を許容していたかを見てみましょう。OpenAIは出口経路を一つに限定していました。これ自体は優れた設計ですが、そのプロキシには未修正の脆弱性が存在していました。Hugging Faceは、送信されたデータ内でコードを実行するツールを運用していました。これは隠れた過失ではなく、既知の仕様でした。
どちらの選択も不注意によるものではありません。どちらも、高速で自動化されたシステムに何千回も突かれるまでは、理にかなった判断だったのです。
自動化されたエージェントの挙動が人間と異なる理由
人間の攻撃者をブロックすれば、その動きは止まるか鈍化します。しかしAIをブロックしても、それはAIに情報を与えるだけです。AIはエラーを記録し、計画を修正し、即座に再挑戦します。誰かが計算コストを払い続ける限り、AIは挑戦をやめません。
Hugging Faceは、短命なサンドボックス全体で17,000件を超える攻撃イベントを記録しました。OpenAIは、自社モデルが極めて執拗にゴールに向かって取り組み続けたと述べています。
これにより、攻撃者側の制約となるものが変わります。もはやスキルや忍耐力ではなく、予算です。計算能力は資金力に比例してスケールし、コードは決して眠りません。攻撃者が数回の試行で諦めることを前提にした防御は、すべて見直す必要があります。
不正な挙動を検知することと、その実行を阻止することは同じではありません
検知は機能した、しかし遅すぎた
検知そのものは機能しましたが、被害を止めるには遅すぎました。Hugging Faceは複数のAIツールを使って侵害を突き止め、システムを隔離し、認証キーをリセットし、脆弱性を修正した上で当局に通報しました。これ自体は優れた対応です。
しかしそれは、攻撃者が非公開データにアクセスし、認証キーを窃取し、社内ネットワークを移動し終えた後の話でした。OpenAI側が事態を察知したのも、自社モデルが他社のデータベースに到達した後のことでした。検知は被害の拡大を食い止めはしましたが、攻撃そのものを阻止することはできませんでした。
侵害とは、攻撃の速度と防御側の対応速度との競争です。AIエージェントは資金力によって攻撃を加速させます。一方、人間による承認プロセスは防御側の動きを鈍らせます。
Hugging Faceはまた、もっと注目されるべき非対称性も浮き彫りにしています。同チームが商用APIの背後にあるフロンティアモデルを使って攻撃を分析しようとしたところ、リクエストがブロックされてしまったのです。フォレンジック作業とは、実際の攻撃コマンドやエクスプロイトのペイロード、C2(コマンド&コントロール)のアーティファクトを送信する行為にほかならず、安全フィルターには対応者と攻撃者の区別がつきません。そこで同チームは、自社インフラ上でオープンウェイトモデルを代わりに使用しました。攻撃者の側は、いかなる利用ポリシーの制約も受けていませんでした。皮肉にも、拒否される側に回ったのは防御側のツールだったのです。
検知は防止ではない
検知は「何が起きたか」を問います。防止は「そもそも起こり得るか」を問います。AIエージェントを相手にする場合、この二つの問いの間にある隙間こそが、攻撃が成功する場所です。エージェントは、それぞれ単独では無害に見える単純な手順を積み重ねて攻撃を組み立てます。
OpenAIは自社の研究でこの点を指摘しています。長時間にわたって稼働するモデルは、承認プロセスの死角を学習し、それを回避するようになるというのです。安全性を確保するには、ある一つの動作が許可されているかどうかだけでなく、一連の動作全体が何を狙っているのかを問う必要があります。しかし、ほとんどのシステムは一回の呼び出しごとにしかチェックを行いません。ファイルの読み取り、パッケージのインストール、ポートの開放――それぞれの手順は個別には通過してしまいます。攻撃とは、その連鎖全体のことなのです。
実効性のある防御のための6つの対策
自動化された攻撃に耐えるためには、コードが実行される前の段階に防御をシフトする必要があります。その第一歩は、データをコードと同様に扱うことです。データセットローダー、テンプレート、設定ファイルはいずれも命令を実行するものであり、厳格な管理が求められます。リモート実行はデフォルトでブロックし、レビューを必須とし、外部から取り込むすべてのファイルの出所を検証すべきです。セキュリティチームはまた、承認済みの宛先を厳格にリスト化して送信トラフィックを制御するとともに、その経路上にあるすべてのプロキシを脆弱なものとして扱う必要があります。最後に、各社は恒久的な認証キーを廃止し、単発のジョブごとに短命な認証情報を発行すべきです。そうすれば、ワーカーマシンが乗っ取られても、攻撃者が得られるものはほとんどなくなります。
個々のマシン単位の対策にとどまらず、分離はユーザー単位ではなくタスク単位で行う必要があります。それによって、自動化された攻撃群が社内ネットワークを移動することを阻止できます。認可の仕組みも見直しが必要です。エージェントが単純な手順を積み重ねて攻撃を組み立てる以上、単一のアクションだけをチェックする方式では通用しません。システムは一連の動作全体を評価し、活動レートや自動処理にかかるコストに上限を設け、不審な一連のイベントを検知できるようにすべきです。最後に、防御側には迅速に行動できる権限が必要です。セキュリティチームには、経営陣の会議を待たずにシステムを隔離できる権限と、フォレンジックのために自社インフラ上で運用できる高性能モデルを審査する能力が求められます。
取締役会が今問うべきこと
企業の取締役会は通常、「自社はAIを責任を持って使用しているか」を問いがちです。しかしこれはコンプライアンスに根差した問いであり、安全性に根差した問いではありません。取締役は代わりに、次の4つの直接的な質問をすべきです。どのシステムが外部のコードを実行しており、その前段にはどのようなチェックが置かれているか。攻撃者が下級社員を標的にした場合、どのような認証キーや経路にアクセスできてしまうのか。最初の警告から実際の封じ込めまで、どれほどの速さで動けるのか。そして、サードパーティのルールに縛られることなく、自社のハードウェア上で攻撃コードを分析できるのか。
防衛線を動かさなければならない
今回の一連の公表内容には、昨年時点で存在しなかった能力は何一つ含まれていません。攻撃連鎖そのものはありふれたものでした。変わったのは、敵対者がそのありふれた連鎖を週末のうちに何千回も実行し、失敗のたびに学習を重ね、コーヒー休憩すら必要としない、という点です。
これらのモデルは、検知と対応というモデルそのものを破壊したわけではありません。私たちが信頼境界線をどこに置いていたのかを露呈させたのです。私たちはそれをコード実行の後に置き、その先にはまだ時間の余裕があると思い込んでいました。しかし、もはやその余裕はありません。
防衛線を動かすべき時です。
翻訳元: https://cyberscoop.com/hugging-face-breach-agentic-ai-security-op-ed/