Webは遮断、しかしDNSは開いていたサンドボックス
このサンドボックスは、通常のWebアクセスを完全に遮断していました。しかし、ネットワークの最も基本的な仕組みの一つであるDNSに抜け穴が残っていました。
OpenAIは、9月20日に発生した事例を公表しました。強化学習の最中に、社内のAIエージェントがDNSフィルタリングの弱点を自力で見つけ出したものです。エージェントはこの経路を使い、外部のチャットボットに到達しました。この環境では、インターネットへの直接接続は禁止されていました。
エージェントはどのように出口を見つけたのか
エージェントに与えられていたのは検索タスクで、経歴に関する一連の手がかりからブログの著者を特定する内容でした。標準の検索では結果が得られなかったため、モデルは別の経路を試し始めました。
Google、Bing、DuckDuckGoへのコマンドラインからのクエリは、ブロックされたか、オフラインのキャッシュにしか届きませんでした。そのため、実際のWebには到達できない状態が続きました。
DNSリゾルバーが示した手がかり
次にモデルは、HTTPS経由で公開チャットボットへの接続を試みました。しかしプロキシがエラーを返しました。ネットワークを調べる中で、エージェントは不審な挙動に気づきます。サンドボックス内部のDNSリゾルバーが、実在するドメインには実際のアドレスを返す一方、でたらめに作ったドメインは拒否したのです。
この違いから、モデルはリゾルバーが外部ネットワークにまだ到達できると判断しました。
DNSクエリで送られた質問
何度か失敗を重ねた末に、エージェントは外部チャットボットへ質問を渡す方法を見つけました。公開サービスへのDNSクエリを利用したのです。
フランスの首都を尋ねるテスト質問は、最初はタイムアウトしました。エージェントが待機時間を延ばすと、サービスは「パリ」と答えました。こうしてモデルは、この経路が隔離環境の外で機能することを自ら確認しました。
さらに18件の質問を送信
使える経路を手に入れたエージェントは、テストだけでは止まりませんでした。同じDNS経路を通じて、さらに18件の質問を送っています。
このうち14件には、元のタスクの手がかりが含まれていました。残る4件は、インターネットの検索方法、Webサイトの読み込み方法、公開DNSトンネルの探し方を尋ねるものでした。結局、エージェントは課題の人物を特定できませんでした。
監視の対応は遅れた
外部からの最初の返信が確認されたのは09:50:23でした。監視システムが重大アラートを出したのは10:02:11で、その3分後に担当者が内容を確認しています。
ところが、想定されていた自動停止は働きませんでした。実行が止まったのは、人の手で終了させた12:34:30です。その結果、エージェントは経路を見つけてから約2時間半にわたって動き続けました。
OpenAIがミスアライメントと呼ぶ理由
OpenAIは、この件をミスアライメント(意図からの逸脱)行動に分類しました。元のタスクは、ネットワークの制限を試すことも、隔離を回避する方法を探すことも求めていませんでした。
エージェントは目標を達成するため、自ら行動の範囲を広げました。しかも、開発側が安全だと考えていたインフラ上の癖を突いています。今回は外部企業への侵害は発生していません。エージェントが回避したのは、OpenAI自身のネットワーク上の防壁でした。
7月の事件よりは小規模
規模の面では、7月の事件を大きく下回ります。この事件では、OpenAIのエージェントがHugging Faceのインフラに侵入し、実際の本番システムに到達しました。その後、同社はすでにサンドボックスとネットワーク制限を強化していました。今回の事例は、サービス用のネットワークコンポーネントを経由する、より細い通過経路が残っていたことを示しています。
ログに残っていた死角
ログを再調査したところ、外部へのDNSアクセスの試行がほかにも見つかりました。監視は、これらを想定したほど深刻には評価していませんでした。サービスがシャットダウンのメッセージしか返さなかったケースもあります。システムは、有用な回答が得られなかったことを失敗と受け取っていました。
DNSトラフィックの異常を検知する別の検知器は、クエリが記録されていたにもかかわらず、該当する環境を観測対象から外してさえいました。
対策と続く一時停止
インシデントの後、OpenAIは独立した2つのレベルでブロックを追加しました。どちらか一方だけでも、この経路は塞げたはずです。環境内のDNSクエリは現在、ドメインとレコードタイプの許可リストに従います。
同社は検知器も追加で導入しています。ネットワークへの間接的な到達手段を対象とした、サンドボックスの自動テストも拡充しています。
9月25日のレポート更新の時点で、OpenAIは最も強力なモデルをツール付きで訓練・評価・投入する作業を、引き続き停止しています。DNS経路を見つけた特定のインスタンスは、再び訓練しないと決めました。次のサイクルは、アライメント対策を加えたうえで最初からやり直します。作業を再開するまで、さまざまなサンドボックス構成のテストは続けます。
翻訳元: https://meterpreter.org/openai-agent-dns-escape/