デジタル世界を、すべてがコードで構成された巨大で賑やかな都市だと想像してみてください。この都市では、ソフトウェアプログラムは建物であり、それらを書く人々は建築家です。長い間、これらの建築家たちは困難な仕事に直面してきました。彼らは、誰かが忍び込んで宝を盗むことができないよう、超高層ビルのレンガ、窓、ドアの一つひとつをすべて点検しなければならないからです。その一方で、「悪者」(ハッカー)は、侵入するためにたった一つの小さな、緩んだレンガを見つけるだけでよいのです。これは不公平な戦いです。
善玉の側を助けるために、私たちは「AIエージェント」と呼ばれるデジタル探偵を構築しました。これらは、それらの緩んだレンガを見つけ出すように訓練されたスマートなコンピュータプログラムです。しかし、ここには問題があります。探偵に本物の侵入を見分ける方法を教えるには、通常、本物の侵入を見せる必要があります。問題は、本物の侵入(「脆弱性」や「バグ」と呼ばれるもの)は稀であり、発見するのが難しく、修正されるまで秘密にされていることが多いということです。それは、街の建築基準が変わり続けている中で、消防士に火災を消す方法を教えるために、10年前に起きた火災の写真だけを見せているようなものです。私たちは、実際に何も燃やしてしまうことなく、斬新で現実的な「練習用の火災」を作り出す方法を必要としています。
ここで、CyberForgeと呼ばれる新しいフレームワークが登場します。CyberForgeを、単に古い犯罪を模倣するだけでなく、新しい犯罪を即興で発明する、超スマートで自動化された「ヴィラン(悪役)工場」だと考えてください。CyberForgeの開発者たちは、80の実世界のソフトウェアプロジェクト(実際の建物の設計図のようなもの)を取り込み、AIを使用して、そこに目に見えないほど小さな弱点を忍び込ませました。しかし、彼らはそれだけでは止まりませんでした。彼らは、これらの新しい弱点が本物であることを確認するために、厳格な「安全検査官」システムを構築しました。この検査官は2つのことをチェックします。第一に、建物が通常のテストに対して依然として耐えられること(つまり、バグが隠されており、プログラムを即座にクラッシュさせないこと)、第二に、特定の「脆弱性の証明」(特別な鍵)が、安全な建物ではなく、壊れた建物に対してのみドアを開けることができることです。
その結果、1,034個の検証済みで現実的なセキュリティトラップの膨大なライブラリが誕生しました。研究者たちがこのライブラリを使ってAI探偵を訓練したところ、その結果は目覚ましいものでした。AIエージェントは、これらの穴を見つけ、修正する能力が大幅に向上しました。実際、この訓練は非常に効果的で、より小さなAIモデルが、このライブラリを学習した後、はるかに大規模で高価な「教師」モデルとほぼ同等の性能を発揮しました。さらに驚くべきことに、この訓練は、ライブラリがCおよびC++コードのみで構成されていたにもかかわらず、AIが全く異なる種類のソフトウェア(PythonやJavaScriptなど)の穴を修正する方法を理解するのを助けました。それはまるで、レンガの壁のひび割れを見つけることを学ぶことが、突然、ガラス窓のひび割れを見分ける助けになったかのようです。
CyberForgeは、悪意のあるハッカーが間違いを見つけるのを待ってから防衛者の訓練を行う必要はないということを証明しています。これらのセキュリティ上の課題を合成的に生成し、厳格に検証することで、私たちはスケーラブルで無限のトレーニングデータの供給を実現できます。これにより、バランスは防衛者側へと引き戻され、彼らに、悪者が現れる前に、より強く、より安全なソフトウェアを構築するためのツールを与えることができます。この論文は、「注入」し「検証」するというこの手法が、サイバーセキュリティ訓練をスケールアップさせる強力な新しい方法であり、AIを「古い教科書を見ているだけの学生」から、「何千もの現実的なシナリオで練習を積んだ探偵」へと変えるものであることを示唆しています。
技術要約: CyberForge
問題提起
最先端の大型言語モデル(LLM)エージェントは、現実世界のソフトウェアにおける複雑な脆弱性の発見および修正において、現在課題に直面している。これらのエージェントは、単一の悪用可能な弱点を見つけるだけで済む攻撃者を支援することはできるが、防御側はコードベース全体を継続的に保護しなければならない。より強力な防御エージェントを開発する上での主要なボトルネックは、再現可能なビルドおよび実行環境を含む、高品質なセキュリティ学習データの不足である。既存のデータセットは、主に過去の共通脆弱性識別子(CVE)やバグバウンティのレポートに限定されており、これらは手動で収集されるか、公開された問題の自動的なリプレイによって組み立てられている。これらのリソースは、人間の発見および公開の速度によって制約を受けており、脆弱性を検証するには「注入されたコードが既存のユニットテストをすべて通過すること(潜在的な状態を維持すること)」と、「特定の敵対的入力によってトリガー可能であること(脆弱性の証明、またはPoV)」という二重の条件を満たす必要があるため、学習データとしてスケールさせるのが困難である。
手法: CyberForgeフレームワーク
CyberForgeは、C/C++プロジェクトに脆弱性を注入することにより、実行可能なリポジトリレベルのセキュリティ学習データを合成するために設計されたフレームワークである。このフレームワークは、既存の事象をマイニングするのではなく、新しいインスタンスを生成することで、コーパスの成長を公開率から切り離す。本フレームワークは、OSS-Fuzzに登録されているプロジェクトを利用し、その既存のDockerイメージ、ビルドスクリプト、およびlibFuzzerハーネスを活用することで、再現可能な環境を確保している。
CyberForgeは、2つの補完的な注入パイプラインを採用している:
- ファザー誘導型注入(Fuzzer-Guided Injection): このパイプラインは、既存のファジング・インフラストラクチャを利用して、価値の高い注入箇所を特定する。OSS-Fuzzのメタデータを解析し、既存のハーネスによって到達可能な関数をマッピングする。スコアリングシステムにより、構造的役割、コール深度、および「トリガー可能性(既存のハーネスによって到達される可能性)」に基づいて、これらの関数をランク付けする。その後、LLMエージェントが選択された箇所に対して、セキュリティチェックを弱体化させるための最小限かつ標的を絞った修正を行う。検証は自動化されており、修正後のビルドはすべてのユニットテストを通過し、かつ脆弱性をトリガーするためのPoVが生成される。フォーマットを認識したシードコーパスを用いた事後のlibFzer実行は、追加の検証パスとなる。
- エージェントによるインコンテキスト注入(Agentic In-Context Injection): このパイプラインは、既存のファジングハーネスの範囲外にある脆弱性を標的とする。構造的(ASTベース)および意味的(埋め込みベース)な類似性を組み合わせたハイブリッドな検索戦略を用い、ターゲットプロジェクトをPrimeVulデータセット内の過去のCVEパターンと一致させる。さらに、特化型のLLMエージェントがコードベースを直接探索し、多様な弱点のタイプを提案する。注入プロセスには、反復的なリトライループ、入力ソースから脆弱なシンクへのデータフローパスを検証するための汚染解析(Taint Analysis)、およびサニタイザレポート(ASAN/UBSAN)と観測可能な副作用を用いたPoV生成が含まれる。
検証メカニズム
共有の**差分PoVオラクル(Differential PoV Oracle)**が、生成されたすべてのインスタンスを検証する。以下の条件を満たす場合のみ、インスタンスが受理される:
- 条件1: 注入されたビルドが、プロジェクトの既存のユニットテストをすべて通過すること(脆弱性が機能的なバグではなく、潜在的なものであることを保証するため)。
- 条件2: 生成されたPoVが、同一の入力の下で、クリーンなビルドではなく、注入されたビルドにおいて失敗(例:サニタイザエラー、クラッシュ)をトリガーすること。
主な貢献
- リポジトリレベルの生成フレームワーク: CyberForgeは、脆弱性注入と差分検証を用いることで、ビルド可能なコードベースから学習データを合成し、関数レベルの静的な注入を超越した。
- 検証済みコーパス: 本フレームワークは、80のC/C++プロジェクトにわたって1,034個の検証済み脆弱性を生成し、**63の弱点カテゴリ(CWE)**を網羅した。合成パッチの編集局所性は、2つの実際のCVEコーパス間のコルモゴロフ–スミルノフ距離である0.190と比較して、0.165という値を示しており、実際のCVEパッチに酷似している。
- ダウンストリームの性能向上: このコーパスから収集された軌跡(Trajectories)を用いてエージェントを微調整した結果、SEC-bench(インドメイン)およびPatchEval(アウトオブドメイン)の両ベンチマークにおいて性能が大幅に向上した。
結果
著者らは、2つの教師モデル(Gemma 4 31BおよびGPT-5.4-mini)から収集された軌跡を用いて、3つのオープンソースの生徒モデル(Gemma 4 E4B, 12B, 31B)を微調整した。
- SEC-benchの性能: 6つの生徒・教師構成すべてにおいて、パッチ修復スコアが**+3.3から+14.7ポイント向上した。最も強力な構成(31Bの生徒とGPT-5.4-miniの教師)は72.7%**に達し、教師の74.0%に迫る結果となった。
- 分布外への汎化: この利得は、訓練コーパスがC/C++専用であったにもかかわらず、Go、JavaScript、Pythonのタスクを含むPatchEvalへと転移した。すべての構成が、このクロス言語ベンチマークにおいて改善を示した。
- 行動分析: 微調整により、エージェントは教師のワークフローへと誘導された。小規模なモデル(例:12B)は、主に検証段階に到達することを学ぶことで(ワークフローのカバレッジを増やすことで)向上し、大規模なモデル(31B)は、検証段階に到達した際の成功率が向上した。
- スケーリング: パフォーマンスは訓練軌跡の数に応じて単調にスケールし、880個の軌跡においても飽和の兆候は見られなかった。
意義と主張
本論文は、CyberForgeが、AI支援セキュリティにおける防御側の決定的な学習データ不足に対処するための、実行検証済みデータを供給するスケーラブルなソースを提供すると主張している。実行を通じて検証された合成脆弱性を生成することにより、本フレームワークは、公開のペースに制限されない現実的な学習インスタンスを生成する。著者らは、本フレームワークがシステムの侵害を目的としたアクティブなエクスプロイトを作成するのではなく、脆弱性の存在と到達可能性を示すための「脆弱性の証明(PoV)」を生成することを強調している。本研究は、合成されたリポジトリレベルのデータに対する標的型のトレーニングが、複雑なソフトウェア環境におけるセキュリティ上の欠陥を特定および修正するAIエージェントの能力を大幅に高めることができることを示している。
毎週最高の AI 論文をお届け。
スタンフォード、ケンブリッジ、フランス科学アカデミーの研究者に信頼されています。
受信トレイを確認して登録を完了してください。
問題が発生しました。もう一度お試しください。
スパムなし、いつでも解除可能。
週刊ダイジェスト — 最新の研究をわかりやすく。登録