📜Papers🔥🔥

リポジトリレベルの脆弱性を自動合成する CyberForge──SEC-bench でパッチ修復精度が最大 14.7pt 向上

実世界 C/C++ プロジェクトに検証済みの脆弱性を動的に注入する CyberForge フレームワークを提案し、SEC-bench においてモデルのパッチ修復精度を大幅に引き上げた。
リリース: 2026-08-06 · 読了 5

論文概要

AI エージェントによる脆弱性の発見やパッチ適用の自動化は、攻撃者が1つの脆弱性を見つければよいのに対し防御側は全ての脆弱性を塞がなければならないという構造的非対称性がある。Amine Lbath らの研究チームは、この防御側を支援する強力なセキュリティエージェントの育成を目的として、実世界の C/C++ プロジェクトに検証済みの脆弱性を動的に注入するフレームワーク「CyberForge」を提案した。歴史的な CVE データに依存せず、実行可能でリポジトリレベルのセキュリティ訓練データをスケーラブルに合成できる点が最大の特徴である。

Figure 1: CyberForgeシステムの全体アーキテクチャと2つの脆弱性注入パイプラインを示す概要図。

関連研究

既存の大規模言語モデル(LLM)エージェント向けのセキュリティ訓練データは、過去に開示された既知の CVE(Common Vulnerabilities and Exposures)データセットに基づくものが主流であった。しかし、これらのアプローチは公開された脆弱性の数に依存するためスケーラビリティに限界があり、ビルドや実行環境が再現可能なリポジトリ全体のトレーニングデータは極めて稀少であった。本研究は、既存のデータ拡張手法の制約を克服する動的検証メカニズムを導入している。

新規性と貢献

CyberForge の学術的・実用的な貢献は、単なるコードスニペットの改変ではなく、ビルドおよび単体テストの通過を動的に検証するリポジトリレベルの脆弱性注入パイプラインを確立した点にある。公開された脆弱性の有無に依存しないため、データ量を柔軟に拡張できる。結果として構築されたコーパスには、80プロジェクト、63の弱点カテゴリにわたる1,034件の検証済み脆弱性が含まれており、実世界と同等の編集局所性を持つ。

提案手法の詳細

CyberForge は、実世界の C/C++ プロジェクトのソースコードに対してプログラムの挙動を壊さない範囲で脆弱性を注入する。注入されたコードの正当性は、以下の厳格な動的検証によって担保される。

  1. 注入後のコードがプロジェクト既存のユニットテストをすべて通過すること。
  2. 生成された脆弱性実証コード(PoV: Proof-of-Vulnerability)が、注入されたビルドでは発火し、クリーンな元のビルドでは発火しないこと。 この動的フィードバックループにより、エージェント学習においてノイズの少ない高品質な軌跡(trajectory)データセットの生成が可能となっている。

評価・考察

提案手法の有効性を検証するため、SEC-bench および異なるプログラミング言語を含む PatchEval を用いた評価が実施された。CyberForge のコーパスで収集された軌跡を用いたファインチューニングにより、3つのモデルサイズと2つの教師モデルの組み合わせによる計6つの設定すべてにおいて、SEC-bench のパッチ修復精度が +3.3 から +14.7 ポイント向上した。特に 31B パラメータの学生モデルは、72.7% の正解率を記録し、教師モデルである GPT-5.4-mini の 74.0% に迫る性能を達成している。また、この改善は他言語を含む PatchEval においても汎化することが確認された。

Figure 2: SEC-benchにおけるトレーニング軌跡の数に対するスケーリング評価の結果を示すグラフ。

応用例と今後の展望

本手法は、ソフトウェアサプライチェーンの安全性を向上させるための自律型セキュリティエージェントの開発において重要な基盤となる。日本のソフトウェア開発企業やセキュリティ受託解析企業において、大規模コードベースに対する自動脆弱性診断および自動パッチ生成エージェントの社内チューニング基盤としての実務インパクトが期待される。今後は、C/C++ 以外の言語への拡張や、より複雑な複合的脆弱性シナリオへの適応が課題となる。

結論

CyberForge は、動的な検証を伴うリポジトリレベルの脆弱性注入により、高品質なセキュリティ訓練データを大規模に合成するフレームワークである。実験により、学習したエージェントのパッチ修復能力が大幅に向上することが実証されており、今後のセキュアコーディングおよび脆弱性自動修復技術の発展に大きく寄与する。

注釈

  • CVE: Common Vulnerabilities and Exposures の略。コンピュータシステムに見つかった脆弱性を識別するための共通脆弱性識別子。
  • SEC-bench: ソフトウェアのセキュリティ脆弱性修復能力を評価するためのベンチマーク。
  • 31B / 72.7%: 310億(31 Billion)パラメータを持つ言語モデルサイズ、および評価ベンチマークにおける正解率(%)。