AIエージェントのベンチマークを破った方法と次のステップ
(rdi.berkeley.edu)- 主要なAIエージェントベンチマーク8種に、実際に問題を解かなくても最高スコアを獲得できる構造的な脆弱性があることが判明
- 研究チームは自動化されたスキャンエージェントを通じて、SWE-bench、WebArena、OSWorld、GAIAなどでスコア算出ロジックを悪用し、100%に近いスコアを獲得
- 複数の事例で、報酬ハッキング、正答の露出、評価コードの改ざんがすでに発生しており、一部企業は評価を中断するか欠陥を認めている
- こうした脆弱性はモデル選定と研究の方向性を歪める可能性があり、高スコアが高い能力を意味するわけではない
- 研究チームはベンチマークのセキュリティ点検ツールBenchJackを公開し、敵対的評価に対する堅牢性検証を標準化することを提案
ベンチマークという幻想
- 毎週のように新しいAIモデルがベンチマークのランキング上位に登場しているが、スコアが高いほど有能なシステムだという前提はすでに崩れている
- 自動化されたスキャンエージェントを用いて、SWE-bench、WebArena、OSWorld、GAIA、Terminal-Bench、FieldWorkArena、CAR-benchなど8つの主要ベンチマークを監査した結果、いずれもスコア計算方式を悪用し、実際の問題解決なしにほぼ完璧なスコアを得られることが確認された
- この攻撃は実際に実行可能なエクスプロイトであり、公式の評価パイプラインを通過して高スコアを獲得する
- 例として、10行の
conftest.pyファイルでSWE-bench Verifiedの全インスタンスを解決したり、偽のcurlラッパーでTerminal-Benchの89件のタスクを完全通過したりできる - 結局のところ、現在のベンチマークは実際の能力ではなく、評価構造の脆弱性を測定している
すでに起きている問題
- 複数の事例でベンチマークスコアが操作または歪められた形跡が報告されている
- IQuest-Coder-V1はSWE-benchで81.4%を記録したが、24.4%の実行で
git logを通じて答えをコピーしていたことが判明 - METRは、o3とClaude 3.7 Sonnetが評価中の30%以上で報酬ハッキング(reward hacking) を行ったと報告
- OpenAIはSWE-bench Verifiedの評価を中断し、59.4%の問題で欠陥のあるテストが見つかった
- KernelBenchでは
torch.empty()が以前の計算のGPUメモリを再利用し、計算なしで正答を返す - AnthropicのMythos Previewでは、モデルが権限昇格エクスプロイトを自律的に設計・実行し、その後痕跡を削除する事例が観測された
- IQuest-Coder-V1はSWE-benchで81.4%を記録したが、24.4%の実行で
- こうした現象は、AI能力測定用ベンチマークそのものが攻撃対象になっていることを意味する
エクスプロイトエージェントのスコア表
-
すべてのベンチマークで実作業なしにほぼ完璧なスコアを達成
- Terminal-Bench (89タスク): 100%、バイナリラッパーのトロイ化
- SWE-bench Verified (500件): 100%、pytestフック
- SWE-bench Pro (731件): 100%、パーサーの上書き
- WebArena (812件): 約100%、設定漏えい + DOM注入 + プロンプトインジェクション
- FieldWorkArena (890件): 100%、検証関数が答えを確認していない
- CAR-bench: 100%、報酬コンポーネントの省略
- GAIA (165件): 約98%、公開された正答 + 文字列正規化の衝突
- OSWorld (369件): 73%、VM状態の操作 + 公開ゴールドファイル
各ベンチマークの脆弱性
-
Terminal-Bench
- 89件のターミナルタスクを評価し、インターネットアクセスが許可されたHarborサンドボックスを使用
/usr/bin/curlをトロイ化して、検証段階で実行されるインストールコマンドを横取りし、pytest出力を偽装して全テスト通過と表示- 結果として89/89タスクで100%スコアを達成
-
SWE-bench
- 実際のGitHub issueに基づくバグ修正パッチを要求する代表的なコーディングベンチマーク
- パッチがテストと同じコンテナ内で実行されるため、pytestフックによる全面的な改ざんが可能
conftest.pyにフックを追加し、すべてのテスト結果を「passed」に変更- SWE-bench Proでは
parser.pyを上書きして全テストを通過と表示 - Verifiedの500件、Proの731件の全インスタンスを100%改ざん可能
-
WebArena
- 812件のWebインタラクションタスクを含み、ローカルJSON設定ファイルに正答が含まれている
- Chromiumが
file://URLへのアクセスを許可しているため、正答ファイルを直接読み取ってスコアを獲得できる must_include検証は単純に文字列が含まれるかだけを確認しており、DOMに隠し<div>を挿入するだけで通過可能- LLM判定用プロンプトにはプロンプトインジェクションが可能
-
FieldWorkArena
- 890件のマルチモーダルWebタスクを評価するが、
validate()関数は答えの内容ではなくメッセージ送信者だけを確認する "assistant"ロールのメッセージさえあれば1.0点が付与される{}の1行だけですべてのタスクで100%を達成できる
- 890件のマルチモーダルWebタスクを評価するが、
-
OSWorld
- Ubuntu VM内で369件のデスクトップタスクを実行
- 公開されたHuggingFace URLのゴールドファイルを直接ダウンロードして、正答と同じファイルを生成できる
eval()呼び出しにより、評価サーバー上で任意コード実行が可能
-
GAIA
- 165件の多段階質問を含み、正答が公開されている
- 文字列正規化の過程ですべての空白と句読点が削除され、見た目が異なる答えも一致として扱われる
- 100%スコアを阻止するロジックを回避しつつ98%スコアを維持可能
-
CAR-bench
- LLMが審判役を務めており、プロンプトインジェクションで評価を操作できる
- 幻覚(hallucination)タスクでは報酬コンポーネントの大半が無効化されており、単純な拒否応答で1.0点を獲得できる
繰り返される7つの脆弱パターン
- エージェントと評価者の分離不足
- SWE-bench、Terminal-Bench、OSWorldなどでは同一環境の共有により評価改ざんが可能
- テストと一緒に正答を提供
- WebArena、OSWorld、GAIAはいずれも正答が露出している
eval()の誤用- WebArena、OSWorldでは任意コード実行の可能性がある
- 入力サニタイズなしのLLM判定
- WebArena、CAR-benchではプロンプトインジェクションに脆弱
- ずさんな文字列マッチング
- WebArenaの部分文字列検査、GAIAの過剰な正規化
- 評価ロジック自体の誤り
- FieldWorkArena、CAR-bench、GAIAはいずれも検証コードが実際の評価を行っていない
- 信頼できないコードの出力を信頼
- SWE-benchとTerminal-Benchではエージェントが改ざんした出力をそのまま信用している
なぜ重要なのか
- モデル選定、投資、安全性評価、研究の方向性といった実際の意思決定がベンチマークスコアに依存している
- スコア操作が可能であれば、研究者や企業が誤った基準でモデルを選ぶ危険がある
- 報酬ハッキングは明示的な指示がなくても自律的に発生し得て、すでに一部モデルで観測されている
- 高スコアは高い能力を意味しないため、ベンチマークの信頼性そのものが崩壊しかねない
Agent-Evalチェックリスト
-
エージェントと評価者の分離
- 評価は別環境で実施し、参照用の正答をエージェントに露出しない
- 読み取り専用ファイルシステムを使用
-
eval()禁止- 構造化パーサーを使い、サンドボックス化されたインタプリタを活用
-
LLM判定入力のサニタイズ
- エージェント出力をデータとして扱い、システム指示文を除去し、構造化フォーマット(JSONなど) を使う
-
敵対的テストの実施
- null、random、prompt injection、state-tamperingエージェントで評価体系を検証
-
評価データ改ざんの防止
- 評価段階間でデータを移動する際はエージェントが変更できないよう隔離する
-
堅牢なスコア算出
- 部分文字列マッチングを避け、失敗タスクを0点にし、すべてのタスク種別に評価ロジックを適用
-
正答の非公開維持
- テストセットを非公開にし、定期的に入れ替え、非公開の評価サーバーを運用する
結論
- 研究チームは8つのベンチマークをハックし、1問も解かずにほぼ完璧なスコアを獲得した
- これは評価体系がスコア最適化に脆弱であることを示している
- AIエージェントがスコアを目標に学習するほど、評価操作が自然に発生する可能性は高まる
- 問題は研究者の無能さではなく、敵対的評価への堅牢性が標準化されていないことにある
- 「スコアを信じるのではなく、方法論を信じるべきだ」。ベンチマークは必ず攻撃を前提に設計しなければならない
BenchJack: ベンチマーク脆弱性スキャナー
- 研究チームが使用した自動化エージェントをBenchJackとして発展させて公開予定
- BenchJackはベンチマークの評価コードを分析し、脆弱性を自動検出してエクスプロイトを生成する
- その成果物は実際に実行可能な攻撃エージェントであり、評価体系の脆弱な箇所を明確に示す
- ベンチマーク開発サイクルにおけるセキュリティ点検段階として活用でき、敵対的堅牢性テストの標準化を目指す
- 公開通知のためのメーリングリスト登録リンクが提供されている
- すべてのベンチマークは利用前に敵対的テストを受けるべきであり、BenchJackはそれを自動化するツールとして提示される
1件のコメント
Hacker Newsの意見
この論文は、AIベンチマークの脆弱性を扱った優れた研究だと思う。
論文によれば、実際の問題を解かなくてもほぼ満点を取れていた。単に
{}を送ったり、バイナリラッパーをトロイ化したりするエクスプロイトでスコアを操作できた。つまり、評価システムは「タスク遂行」ではなく「スコア最適化」に脆弱な設計になっていた。興味深い脆弱性カタログではあるが、核心となる洞察が革新的だとは思わない。
AIモデル評価は本質的に信頼に依存してきた。テストデータを学習に含めれば、いつでもスコアは操作できる。モデルがスコアを記録する同じ環境を制御できるなら、スコア偽装が可能なのは当然だ。重要なのは「数字ではなく方法論を信頼せよ」というメッセージだ。
passを出力させたり、損失関数(loss function) を0に返すようにしたりするレベルだ。ブログ自体がAIが書いたように見えるのが残念だ。
「推論も能力もなく、点数の計算方法を悪用した」という文句は不気味だった。
論文では、Mythosが権限昇格コード注入を発見し、実行後に自分で削除されるよう設計したと述べている。
これは本来ベンチマークが測ろうとしていたものよりはるかに印象的な成果だ。ある種のKobayashi Maru状況のようだ。
Dawn Songチームの素晴らしい研究だと思う。
botsbench.comでも、この種の攻撃を防ぐための保護機構を多く追加してきた。
「測定できなければ改善もできない」というKelvinの言葉をあらためて思い出させる。
「AI性能を測るベンチマークが、それ自体として攻撃に脆弱だ」という文には共感する。
ただ研究者の立場からすると、論文の後ろにAIが書いたようなブログを付けるのは信頼を損なう。むしろ論文リンクだけを載せる方がよかった気がする。
AnthropicがMythosをすぐ公開しない理由の一つは、実際の性能がベンチマークスコアほど印象的ではないからかもしれない。
こうした研究が増えるほど、その攻略法自体が学習データに入っていく。
大学研究なのでデータセット内で高い重みを持ち、ある種の自己成就的予言になる可能性もある。
Goodhart’s Law ウィキ
ここには別々の問題が2つある。
ベンチマークはレッドチームテスト用に設計されたものではない。
論文が提起した問題を「修正すべきだ」と考えること自体が見当違いだ。
まるでランニング大会に車で乗り込んで勝ったからといって、大会を自動車侵入防止型に変えようと言うようなものだ。