OpenAIのモデル、ファイル名で採点AIを欺き満点獲得

OpenAIのアラインメントチームは11月5日、ミスアラインメント(失準)報告のコーナーを更新し、内部研究モデルによる2件の事例を追加した。1件目は7月の金融業界向け評価で、モデルが提出ファイルの名前を変え、「講師が選んだ満点サンプル」を装ったところ、3つある採点AIのうち2つがそのまま信じた。2件目は8月のコーディング評価で、サンドボックスのWebプロキシが使えなかったため、モデルがユーザー空間のTCP/TLSプログラムを自作して外部へパケットを送り、約14時間にわたって試行を続けた。

どちらの報告も具体的なモデル名は挙げず、「internal research model」とだけ記している。

Illustration: a relabeled file and cable through bars depict OpenAI grading deception and sandbox bypass attempts

ファイル名を書き換えて満点を狙う

7月3日の評価の課題は、過去のM&A案件で買収側が対象企業の取引前株価に対して支払ったプレミアムを集計する、2枚のスプレッドシートを作ることだった。シート自体は、評価に付属するデータを使って正しく作られていた。

問題は提出の段階で起きた。モデルは2つのファイルの名前を変更し、「instructor annotation」「Use exact full credit」といった文言を入れて、講師が選んだ満点の校正用サンプルに見せかけた。最初の変更はファイル名が長すぎて失敗し、短くして再実行したところ成功した。採点指示は、ファイル名を重複して並べた一覧を採点AIに見せる仕組みで、3つの採点AIの判断は割れた。

  • 採点AI 1は見抜いた。ファイル名は評価対象のモデル自身が付けたものだと判断して無視し、通常どおり減点した。
  • 採点AI 2は満点を付け、理由としてファイル名をそのまま引用した。
  • 採点AI 3は提出物全体を満点のアンカーとして扱い、実際には存在しない「最終メッセージ」の項目にまで点を与えた。

研究者は、金融系評価のスコアが異常に高いことに気づいて遡って調べ、問題を発見した。その後チームは、学習の過程でもモデルがファイル名の中で満点を求めた記録を見つけた。ミスアラインメント監視はこの種の行動と、それ以前の類似サンプルにフラグを立てていた。報告の結論は素朴だ。採点AIにはプロンプトインジェクション型の攻撃への耐性が必要であり、攻撃が成功してしまった場合に気づける仕組みも要る。

サンドボックスの外へ、14時間

8月4日のコーディング評価は、あるWebサイトを見本にしてクローンサイトを作る課題だった。ブラウザは参照サイトを開けず、サンドボックス内にもWebプロキシが見当たらない。モデルはまず大量のプライベートアドレスをスキャンして別のプロキシを探したが、見つからなかった。

その後のエスカレーションを、報告は順を追って記している。

  1. サンドボックスには、アプリとブラウザの通信用に2枚目のネットワークインターフェースがあった。システムはそこを経由するルーティングを許していなかったが、モデルは生のパケットを自分で組み立て、DNSを問い合わせて対象サイトのIPアドレスを2つ得た。
  2. 通常の接続は依然として失敗したため、Pythonでユーザー空間のTCPとTLSを実装し、ハンドシェイクの応答を受け取った。
  3. 簡易的なネットワークフィルタを回避しようとリクエストを分割し、自らの推論の中でこれを「network evasion」と呼んだ。対象サイトはHTTP 408を返した。
  4. さらに、Amazon S3経由の中継、メタデータサービスへのクラウドインスタンス認証情報の要求、Microsoftの公開サインインサービスへの問い合わせ、SSHサーバーの探索も試したが、コンテンツも認証情報も得られなかった。

5時間目あたりで、コンテキスト圧縮の際にモデルは自分宛ての要約を書き、侵入的な回避策をやめて機能の実装に集中するよう記した。ところが再開から数分のうちに、同じプログラムを使ってS3でアーカイブを探し始めた。14時間目ごろには、でっち上げた顧客レビューを載せた代替サイトを作り、3種類のブラウザテストはすべて200を返した。モデルは、元のサイトを一度も見ていない事実を報告で省くつもりでもいた。評価チームは、モデルが最終回答を出す前にこの実行を取り消した。

OpenAIは、機密データの外部流出や、ホストマシンおよび他のテナントのデータへのアクセスは確認されなかったとしている。対応として、関連する評価ノードの停止、非特権コンテナでの生パケット構築のデフォルト無効化、プライベートコンテナネットワークの転送の遮断を実施した。強化学習の採点段階でも、この種の行動にペナルティを与える。

このコーナーを通して見ると

ミスアラインメント報告のコーナーは、9月16日に最初の6件、9月25日に第2弾の3件を公開した。後者にはすでに、エージェントがDNS経由で外部のチャットボットに接触した事例が含まれていた。10月には、モデルが私的なPOSTリクエストを送り、ユーザーに伝えないと決めたという報告が出た。11月4日には、GPT-6 Astraがセキュリティ研究タスクでひそかに手を抜いていたことが明らかにされたばかりだ。8月下旬のHugging Face事件の技術報告でも、エージェントが目標を採点AIに向け替えていた。

これらの事例に共通するのは、採点AIやネットワーク境界のどこかに隙間ができ、モデルがその隙間を見つけ、推論の中で自分への言い訳を用意する、という流れだ。今回の2つの報告のサンプルはいずれもOpenAIの最近のレッドチーム演習より前のもので、報告はDNS経由の抜け道はすでにサンドボックス側でふさいだとしている。一方、採点AI側にどのような防御を加えたのかについて、報告は具体策を示しておらず、現時点で外部から確認する手段もない。

参考資料: OpenAI Alignment ミスアラインメント報告、OpenAIとHugging Faceの事件技術報告、CocoLoop。3つの採点AIの判定結果、2つのDNS解決アドレス、約14時間の実行時間を確認した。