目次(全 11 セクション)
要旨
静的アプリケーションセキュリティテスト(SAST)は、長年にわたり、高い偽陽性率と、開発者のアラート疲れという問題を抱えてきました。本稿では、文脈を意味的に推論する機能と、概念実証(PoC)エクスプロイトの自動検証を組み合わせた、エージェント型の LLM 脆弱性スキャナー Cyfendo を評価します。OWASP Benchmark(v1.2)の全 2,740 件のテストケースで評価した結果、Cyfendo は Youden’s Index 0.90(感度 94.06%、偽陽性率 3.77%、適合率 96.38%)を達成しました。これは、自律型の AppSec によって、精度の高いセキュリティ分析と、そのままレビューできるパッチを提供できることを示しています。
エグゼクティブサマリー #
現代のソフトウェアエンジニアリングには、精度を犠牲にすることなく、継続的デプロイの速度で動作するセキュリティツールが必要です。従来の商用 SAST ツールは標準化されたベンチマークで苦戦することが多く、高い偽陽性率が深刻なアラート疲れを招き、時間のかかる手動のトリアージを必要としています。
Cyfendo のエージェント型スキャンフレームワークは、静的な構文やパターンのマッチングからの脱却を意味します。テイントに導かれた推論と敵対的レビューのパイプラインを通じて、専門化された LLM エージェントを連携させることで、Cyfendo は、従来のアナライザーが判断に迷う複雑なコードの意図や独自のサニタイズ処理を理解します。
OWASP Benchmark v1.2 スイート全体(2,740 件のテストケース)で評価した結果、Cyfendo は感度 94.06%(真の脆弱性 1,415 件のうち 1,331 件を検出)と特異度 96.23%(安全な対照 1,325 件のうち偽陽性は 50 件のみ)を達成し、Youden’s Index 0.90、適合率 96.38%、F1 スコア 95.21%となりました。この高い診断精度により、エンジニアリングチームは CI/CD パイプラインに自動のセキュリティゲートを導入でき、人手がボトルネックになることなく、検出事項を信頼して高リスクのリグレッションをブロックできます。
アーキテクチャと中核技術 #
Cyfendo は、脆弱性を網羅的に検出する再現率を確保しながら、誤警報を徹底して抑えるように設計された、5 段階のエージェント型パイプラインで動作します。
セマンティックなコンテキスト解析
対象のコードベースを取り込み、データソース、変換レイヤー、シンクを意味的に表現します。硬直的な抽象構文木にとどまらず、プログラム全体の意図を理解します。
テイントに導かれた LLM による推論
信頼できない入力が関数や独自のサニタイズ処理をまたいでどのように伝播するかを追跡して、仮想的なデータフロー分析を行い、見つけにくいロジックの脆弱性を明らかにします。
LLM による敵対的レビュー
候補となった検出事項を、敵対的なレビュアーエージェントにかけます。このエージェントは到達可能性に異議を唱え、フレームワークレベルの保護を特定し、悪用できない理論上の検出事項を除外します。
決定論的な構造の検証
モデルの推論を、構文木の解析とシンボルの検証と突き合わせて、引用されたソースのパス、シンボル、パラメータが実際にコードベースに存在することを厳密に確認し、構造上の妥当性を担保します。
動的な PoC と到達可能性の検証
単体でテスト可能なシンクについて、ユニットレベルの概念実証エクスプロイトのテストケースを生成し、隔離されたサンドボックスで実行します。悪用可能であることが確認された脆弱性は、最も高い診断上の確信度で優先され、複雑なアーキテクチャ上の検出事項は、テイントの到達可能性グラフを完全な形で保持します。
OWASP Benchmark の概要と手法 #
OWASP Benchmark は、自動化されたソフトウェア脆弱性スキャナーの精度、速度、網羅性を評価するために設計された、オープンソースの評価スイートです。
テストスイートの構成
バージョン 1.2 は、11 の脆弱性カテゴリにわたる合計 2,740 件のテストケースで構成されています。
- 真の脆弱性(1,415 件):データフローのシンクにおける、実際に悪用可能な脆弱性を含むテストケース。
- 安全な対照とおとり(1,325 件):有効な検証、エンコード、フレームワークによる防御を備えたコードパスで、脆弱性の警告が出れば偽陽性になるもの。
評価の計算式
性能は、標準的な診断分類の指標で定量化しています。
-
真陽性率(感度 / TPR):
TPR = TP / (TP + FN)— 脆弱性の発見の網羅度を測ります。 -
真陰性率(特異度 / TNR):
TNR = TN / (TN + FP)— 安全なコードに対する精度を測ります。 -
誤検知率(FPR):
FPR = FP / (TN + FP) = 1 - Specificity. -
Youden’s Index (J):
J = Sensitivity + Specificity - 1— 全体の診断能力をまとめた指標で、1.0 は完全な分類、0.0 はランダムな推測を表します。
ベンチマークの分析と診断性能 #
OWASP Benchmark v1.2 は、自動化されたセキュリティスキャンの精度を評価するための、客観的で標準化されたテスト環境です。静的アプリケーションセキュリティテストは、従来から、感度(真の脆弱性を捉えること)と特異度(安全な陰性対照での誤警報に耐えること)の間の深刻なトレードオフに直面してきました。
Cyfendo の評価は、2,740 件のテストケースのスイート全体を、統一された実行条件のもとで実施しました。多段階のセマンティック解析、テイントの到達可能性分析、敵対的レビュー、該当する場合の動的なサンドボックス検証を組み合わせることで、Cyfendo は両方の観点でバランスよく高い性能を達成しています。
| 評価指標 | 実測値 | 診断上の意味 |
|---|---|---|
| Youden’s Index (J) | 0.90 | 総合的な診断能力(感度 + 特異度 - 1)。-1.0 から +1.0 の尺度で表します。 |
| 感度(再現率 / TPR) | 94.06% | 真の脆弱性 1,415 件のうち 1,331 件の特定に成功しました(見逃し率 5.94%)。 |
| 検出の適合率(PPV) | 96.38% | 検出として指摘されたテストケース合計 1,381 件のうち、真陽性は 1,331 件です。 |
| 特異度(TNR) | 96.23% | 安全な対照のテストケース 1,325 件のうち 1,275 件を、誤警報なしで正しく認識しました。 |
| 誤検出率 (FPR) | 3.77% | 安全な陰性対照 1,325 件のうち、偽陽性は 50 件でした。 |
| F1 スコア | 95.21% | スイート全体における、感度と適合率の調和平均。 |
性能の概要(OWASP) #
全 2,740 件のテストケース(脆弱性のあるケース 1,415 件、安全な対照 1,325 件)における Cyfendo の評価結果です。
| 指標 | スコア / 件数 | 定義と背景 |
|---|---|---|
| テストケースの総数 | 2,740 / 2,740 | カバー率 100.0%(真の脆弱性 1,415 件、安全な対照 1,325 件) |
| 真陽性 (TP) | 1,331 | 正しく特定された脆弱性 |
| 偽陽性 (FP) | 50 | 誤って検出された安全なテストケース |
| 真陰性 (TN) | 1,275 | 正しく認識された安全な対照 |
| 偽陰性 (FN) | 84 | 見逃した脆弱性(見逃し率 5.94%) |
| 感度(再現率 / TPR) | 94.06% | TP / (TP + FN) |
| 特異度(TNR) | 96.23% | TN / (TN + FP) |
| 誤検出率 (FPR) | 3.77% | FP / (TN + FP) |
| 適合率(PPV) | 96.38% | TP / (TP + FP) |
| F1 スコア | 95.21% | 適合率と感度の調和平均 |
| Youden’s Index (J) | 0.90 | 全体的な診断能力(感度 + 特異度 - 1) |
カテゴリ別の内訳 #
OWASP Benchmark v1.2 で評価した 11 の脆弱性カテゴリすべてにおける、性能の内訳です。
| カテゴリ | 合計 | 脆弱 | 安全 | TP | FP | TN | FN | 感度 | 特異度 | Youden J |
|---|---|---|---|---|---|---|---|---|---|---|
| 弱い乱数 | 493 | 218 | 275 | 218 | 0 | 275 | 0 | 100.0% | 100.0% | +1.000 |
| XPath インジェクション | 35 | 15 | 20 | 15 | 0 | 20 | 0 | 100.0% | 100.0% | +1.000 |
| Cookie の Secure フラグ | 67 | 36 | 31 | 36 | 0 | 31 | 0 | 100.0% | 100.0% | +1.000 |
| LDAP インジェクション | 59 | 27 | 32 | 27 | 1 | 31 | 0 | 100.0% | 96.9% | +0.969 |
| SQL インジェクション | 504 | 272 | 232 | 265 | 5 | 227 | 7 | 97.4% | 97.8% | +0.953 |
| パストラバーサル | 268 | 133 | 135 | 123 | 0 | 135 | 10 | 92.5% | 100.0% | +0.925 |
| クロスサイトスクリプティング(XSS) | 455 | 246 | 209 | 225 | 4 | 205 | 21 | 91.5% | 98.1% | +0.895 |
| コマンドインジェクション | 251 | 126 | 125 | 106 | 4 | 121 | 20 | 84.1% | 96.8% | +0.809 |
| トラストバウンダリ | 126 | 83 | 43 | 69 | 1 | 42 | 14 | 83.1% | 97.7% | +0.808 |
| 弱い暗号 | 246 | 130 | 116 | 118 | 29 | 87 | 12 | 90.8% | 75.0% | +0.658 |
| 弱いハッシュ | 236 | 129 | 107 | 129 | 6 | 101 | 0 | 100.0% | 94.4% | +0.944 |
| 合計 | 2,740 | 1,415 | 1,325 | 1,331 | 50 | 1,275 | 84 | 94.1% | 96.2% | +0.90 |
主な所見と強み #
- 5 つの脆弱性カテゴリで再現率 100%:Cyfendo は、弱い乱数、XPath インジェクション、Cookie の Secure フラグ、弱いハッシュ、LDAP インジェクションで、脆弱性の再現率 100%を達成しました。特に、弱い乱数、XPath インジェクション、Cookie の Secure フラグは、いずれも感度 100%で偽陽性がゼロとなり、Youden Index は満点の +1.000 でした。
- 高い検出の再現率(94.06%):1,415 件の真の脆弱性のうち、Cyfendo は 1,331 件の真陽性を発見し、弱いハッシュ(100.0%)、SQL インジェクション(97.4%)、パストラバーサル(92.5%)といった高リスクのクラスでも、高い検出カバー率を維持しました。
- きわめて低い偽陽性率(3.77%):安全な陰性対照では、Cyfendo は特異度 96.23%という優れた識別精度を示し、無害なテストケース 1,325 件のうち 1,275 件を正しく識別して、スイート全体での偽陽性は 50 件にとどまりました。4 つのカテゴリ(弱い乱数、XPath インジェクション、Cookie の Secure フラグ、パストラバーサル)では、誤警報なしで特異度 100%を達成しました。
- 高い識別能力(Youden Index = 0.90):全 2,740 件のテストケースで最先端の診断能力を示し、標準化されたベンチマーク条件のもとで、Youden Index 0.90(0.9029)、適合率 96.38%、F1 スコア 95.21%を達成しました。
考察と Enterprise への影響 #
開発者のアラート疲れへの対応
感度 94.06%、適合率 96.38%、そしてきわめて低い偽陽性率 3.77%の組み合わせは、従来の SAST が抱える運用上の根本的な問題であるアラート疲れに、正面から取り組むものです。安全な対照 1,325 件に対して誤警報は 50 件のみで、セキュリティの警告にはサンドボックスでのエクスプロイト検証が添えられるため、セキュリティチームはノイズのトリアージから、自動化された修復の検証へと移行できます。
独自のサニタイズ処理の解釈
従来のツールは、既知のサニタイズ処理をハードコードしたレジストリに依存しています。現代のエンタープライズ向けソフトウェアでは、ドメイン固有のエンコードや検証を実装することがよくあります。エージェント型の推論により、Cyfendo は独自の防御を文脈の中で解釈でき、安全なロジックが誤警報を引き起こすのを防げます。
導入コストとスケーリング
多段階のエージェント型推論は、単純な静的リンターよりもスキャン 1 回あたりの計算コストが高くなりますが、その後の工程で手動のトリアージがなくなることで、エンタープライズ環境では運用上の純粋な ROI が十分に見込めます。
ベンチマークの範囲と、合成された Java 以外への一般化
OWASP Benchmark v1.2 は、2,740 件のテストケースにわたってテイントの伝播を評価するための、標準化された再現可能なベースラインです。このベンチマークスイートは一般に公開されているため、標準的な基盤モデルはテストセットの記憶という問題の影響を受けやすくなります。Cyfendo は、LLM によるセマンティックな推論を、決定論的な AST による構造検証と動的なサンドボックス実行と組み合わせることで、記憶による見かけ上の結果を防いでいます。OWASP Benchmark スイートが評価するのは Java サーブレットですが、Cyfendo の基盤となるエージェント型パイプラインは、言語に依存しないセマンティックなコントロールフローグラフ上で動作します。そのため、診断能力を最新のポリグロットなエコシステム(TypeScript、Python、Go)やクラウドインフラのアーキテクチャにも広げることができ、実世界の CVE コーパスを対象にした評価を継続しています。
結論 #
これらのベンチマーク結果は、OWASP Benchmark v1.2 における Cyfendo のエージェント型アプローチが、高い診断性能を持つことを示しています。Cyfendo は 2,740 件のテストケースで、Youden’s Index 0.90、感度 94.06%、特異度 96.23%、適合率 96.38%を達成し、自律型の多層的な AppSec を、現代の CI/CD パイプラインに高い精度で導入でき、しかもマージされるコードの承認権限は開発者が完全に保持できることを示しています。
引用
BibTeX@techreport{cyfendo2026owasp,
title = {Cyfendo Agentic Scanning on the OWASP Benchmark},
author = {{Cyfendo Autonomous Security Research Team}},
institution = {Cyfendo Inc.},
year = {2026},
month = {September},
version = {Alpha},
url = {https://cyfendo.com/whitepaper},
note = {Evaluated on OWASP Benchmark v1.2 (2,740 test cases, Youden Index: 0.90)}
}