SEC-bench Pro: Can Language Models Solve Long-Horizon Software Security Tasks?
本論文は、V8 と SpiderMonkey における 183 の実世界の脆弱性を包含する厳密なベンチマーク「SEC-bench Pro」を導入し、最先端モデルを用いても最大でも 38.8% の成功率に留まるなど、現在の言語モデルベースのコーディングエージェントが長期的なソフトウェアセキュリティタスクに苦戦していることを明らかにする。
原論文は CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) でライセンスされています。 これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む
超賢明で AI 搭載の探偵チームを雇い、巨大で複雑なビデオゲームエンジンに潜む隠された罠を見つけ出すと想像してください。これらのエンジン(JavaScript エンジンと呼ばれます)は、ウェブサイトやアプリを動作させるコードを実行します。探偵が罠を発見した場合、ゲーム開発者がそれを修正できるように、その罠をどのように発動させるか(「概念実証」または PoC)を正確に示さなければなりません。
本論文は、これらの AI 探偵が現実世界でこれらの罠を見つけるのがどれほど得意かを評価するための、非常に厳格な新しいテスト「SEC-bench Pro」を導入します。
旧来のテストの問題点
以前のテストは、探偵にすでに「X」印で宝の場所が示された宝の地図を与えるようなものでした。「500 行目に行ってこのボタンを押してゲームを壊せ」といった具合です。
- 問題点: 実際のバグハンティングはそうは機能しません。実際の探偵は、コード全体を調べ、罠がどこにある可能性があるかを特定し、その後、正確な場所を知らずにそれを発動させようと試みます。旧来のテストはこの実際のスキルを測定したのではなく、AI が地図に従えるかどうかだけを測定していました。
新しいテスト:SEC-bench Pro
著者らは、Google Chrome で使用されるV8と、Firefox で使用されるSpiderMonkeyという 2 つの有名なゲームエンジンを用いて、より困難な新しいテストを構築しました。
- セットアップ: 人間が以前に発見し、確認された 183 の実際の罠を取り出しました。
- 環境: 罠が存在したソフトウェアの正確な「タイムマシン」バージョンと、それが修正されたバージョンの両方を再現しました。
- ルール: AI エージェントには、生のコードと問題の曖昧な説明が与えられました。彼らは以下のことを行う必要がありました。
- 罠への具体的なコード経路を特定する。
- クラッシュを誘発するスクリプト(PoC)を作成する。
- そのスクリプトが古いバージョンのみを壊し、新しいバージョンでは修正されていることを証明する。
「3 枚の画像」による判定
これが彼らの新しいテストの最も重要な部分です。過去には、AI がいかなるクラッシュを引き起こせばポイントが与えられていました。しかし、AI は偶然、探していた特定の罠とは無関係なゲームの別の部分を壊してしまう可能性があります。
SEC-bench Pro は、洗練された AI 審判である**「3 枚の画像による判定」**を使用します。
- 画像 1(罠): スクリプトは古いバージョンを壊しますか?
- 画像 2(修正): スクリプトは新しいバージョン(パッチが適用された場所)でのクラッシュを止めますか?
- 画像 3(最新): スクリプトは他の修正が行われた可能性のある最新バージョンを壊しますか?
AI が古いバージョンでクラッシュを引き起こしたにもかかわらず、修正済みバージョンでもクラッシュを引き起こす場合、判定者は「あなたは特定の罠を見つけなかった。単にゲームを一般的に壊しただけだ」と言います。これにより、AI が幸運な無関係なミスに対してポイントを得ることを防ぎます。
結果:AI 探偵たちの苦戦
本論文は、GPT-5.4、Opus 4.6、Kimi-K2.6 などのモデルを搭載した 3 つのトップクラスの AI「探偵」をテストしました。以下が起きたことです。
- スコアカード: 最も賢い AI でさえ、罠の約**32% から 39%**しか解決できませんでした。つまり、60% 以上のケースで失敗したことを意味します。
- 「オープンウェイト」の新人: 安価なオープンソース AI(Kimi-K2.6)は、V8 の罠の約**11.7%**しか解決できませんでした。
- チームワーク効果: 興味深いことに、AI 探偵たちは異なる罠を見つけました。2 つの最高の AI の結果を組み合わせると、彼らは SpiderMonkey の罠の約**48%**を一緒に解決しましたが、単独ではどちらもできませんでした。彼らは異なる専門分野を持つ 2 人の探偵のようです。一人はある種類の証拠を見つけるのが得意で、もう一人は別の種類に得意です。
なぜ彼らは失敗したのか
論文は、AI が苦戦した 2 つの主な理由を特定しました。
- 推測しすぎ(「スプレー・アンド・プラー」アプローチ): ある AI(Claude)は、数千のスクリプトを生成しようとしました。そのほとんどは何も壊さなかったか、間違ったものを壊しました。これは、ボードに 100 万本のダーツを投げ、1 本でも的の中心に当たることを願うようなものでした。
- 慎重しすぎ(「考えすぎ」アプローチ): もう一つの AI(Codex)は非常に慎重でした。コードを分析し、そこに罠があるかもしれないと判断しましたが、提出する前に 100% 証明できない場合は諦めて「できません」と言いました。誤ることを恐れすぎたため、多くの罠を見逃しました。
大きな教訓
本論文は結論として、AI がコードの作成においては向上しているものの、複雑で現実世界のソフトウェアにおけるセキュリティバグの探索という、長く困難なプロセスにおいては、まだ非常に得意ではないと述べています。
現在の最高の AI はいくつかの罠を見つけることができますが、大部分を見逃しています。新しいベンチマーク(SEC-bench Pro)は、単にクラッシュで幸運を祈るのではなく、コードと隠された罠の間のつながりをこれらの AI が結びつけるのを助ける、より良いツールが必要であることを証明しています。
自分の分野の論文に埋もれていませんか?
研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。