Paper Files / AppSec
タイトル: エビデンス駆動型AppSec: DevSecOpsパイプラインにおける脆弱性の継続的分析のための形式的かつスケーラブルなフレームワーク
タイトル: エビデンス駆動型AppSec: DevSecOpsパイプラインにおける脆弱性の継続的分析のための形式的かつスケーラブルなフレームワーク 要旨: アプリケーションセキュリティ(Application Security – AppSec)は、マイクロサービスアーキテクチャ、継続的インテグレーション、およびオープンソース依存関係の大規模採用に後押しされ、現代のデジタル・エコシステムにおける主要なリスク要因の一つとなっている。Log4Shell(CVE-2021-44228)やSpring4Shell(CVE-2022-22965)のように大規模に悪用された脆弱性は、従来の静的解析(SAST)、動的解析(DAST)、およびソフトウェア構成分析(SCA)アプローチの構造的限界を明らかにしている。本研究では、EASE(Evidence-Aware Security Enforcement)と呼ぶ、継続的AppSecのための形式的かつエビデンス駆動型フレームワークを提案する。これは、インクリメンタル静的解析、データフローの形式的モデリング、および運用テレメトリに基づく確率的リスク優先順位付けを統合する。 本手法は、数学的リスクモデル R(v) = P_e(v) · I(v) · E(v) を組み合わせる。ここで P_e は統計学習により推定される悪用確率、I はコンテキスト依存の影響、E は実行データによって測定される動的露出を表す。私たちは、このフレームワークを、Java、Python、Node.js の 312 リポジトリから成る実際のCI/CDパイプラインに実装し、合計4,800万行のコードを対象とした。 実験結果は、従来のSASTツールと比較して平均37.4%の偽陽性削減、平均修復時間(MTTR)の42.1%短縮、ならびに後に重大と分類された脆弱性(CVSS ≥ 9.0)の91%を事前に検出できたことを示している。さらに、インクリメンタル解析は、完全スキャンと比較して実行時間を58%削減した。 我々は、(i) DevSecOps環境における脆弱性優先順位付け問題の厳密な形式化、(ii) 正当性保証を伴うインクリメンタル解析のための効率的アルゴリズム、(iii) 精度と性能における実質的な向上を実証する大規模な実証評価、を貢献する。提案フレームワークは、実際のリスクに基づくAppSecのための定量的基盤を確立し、アプリケーションセキュリティをエビデンスに基づく工学的実践へと近づける。
- はじめに
アプリケーションセキュリティ(AppSec)は、現在、安全なソフトウェア工学における主要な構造的課題の一つとなっている。デジタルトランスフォーメーションは、分散アーキテクチャ、DevOps パイプライン、サードパーティ依存関係の急速な採用と相まって、攻撃対象領域を指数関数的に拡大させた。Verizon Data Breach Investigations Report(DBIR)の最新報告によれば、分析対象となった侵害の 43% 以上が Web アプリケーションの脆弱性の悪用を伴っている。並行して、2023 年の CISA レポートは、CVE-2021-44228(Log4Shell)および CVE-2022-22965(Spring4Shell)を大規模侵害のベクトルとして強調し、MITRE ATT&CK の T1190(Exploit Public-Facing Application)および T1059(Command and Scripting Interpreter)と整合する技法によって悪用されていることを示した。
技術的な中心課題は、従来の検出機構(SAST、DAST、SCA)が、極めて動的な環境において、文脈に応じた優先順位付けと一貫した誤検知削減を提供できない点にある。静的解析ツールはしばしば数千件のアラートを報告し、誤検知率が 30% を超えることも多く、継続的インテグレーションのパイプラインへの実運用上の採用を妨げている。
我々は以下の研究課題を設定した。
RQ1: 動的な運用コンテキストを考慮して、脆弱性リスクを数学的にどのように定式化できるか?
RQ2: 実行時の実証データと統合することで、静的解析における誤検知を削減することは可能か?
RQ3: 形式的な正当性保証を維持しつつ、スケーラブルなアーキテクチャをどのように設計すべきか?
貢献:
C1: 我々は、悪用確率、影響度、動的露出に基づく脆弱性優先順位付けの数学的定式化を提案する。
C2: コード全体のサイズに対して sublinear な計算量解析を持つ増分アルゴリズムを開発する。
C3: 実運用環境において、統計的に有意な定量的改善を実証する。
本稿の残りの構成は以下のとおりである。第 2 節では基礎理論と関連研究を概観し、第 3 節で脅威モデルを形式化し、第 4 節で方法論を提示し、第 5 節で実装を記述し、第 6 節で実験評価を示し、第 7 節で含意を論じ、第 8 節で結論を述べる。
- 背景および関連研究
静的解析は、$A: P \rightarrow 2^V$ という関数として形式化できる。ここで $P$ はプログラム集合、$V$ は検出可能な脆弱性集合である。手法は、データフロー解析、抽象解釈、モデル検査に基づく。Cousot と Cousot は、安全な近似解析のための形式的枠組みとして抽象解釈の基礎を確立した。
SAST アプローチ(例: Coverity, Fortify)は主として制御フローグラフ(CFG)およびデータ依存グラフ(DDG)上で動作する。一方、DAST は実行中のアプリケーションに対して動的テストを実施する。SCA(Software Composition Analysis)は、NVD などのデータベースを通じて依存関係を評価する。
分類:
- パターンベースの構文解析
- インタープロシージャル意味解析
- カバレッジ誘導型ファジング
- 依存関係解析および SBOM
制約として、実行コンテキストの欠如、真のリスクに基づく優先順位付けの不足、テレメトリとの統合の弱さが挙げられる。
- 脅威モデルと問題の形式化
我々は、以下の能力を持つ攻撃者 $\mathcal{A}$ を想定する。
- 既知の脆弱性(公開 CVE)を悪用できる。
- 公開されたエンドポイントに任意の入力を送信できる。
- 大規模な自動化悪用を実行できる。
ただし、初期の内部特権アクセスは仮定しない。
アプリケーション $P$ の集約リスクを次式で定義する。
$$ R(P) = \sum_{v \in V(P)} P_e(v) \cdot I(v) \cdot E(v) $$
ここで:
- $P_e(v)$ は悪用の推定確率である。
- $I(v)$ は CVSS 指標に基づく影響度である。
- $E(v)$ はテレメトリから導出される動的露出係数である。
望ましい安全性特性は次式で表される。
$$ \forall v \in V_{crit}, ; R(v) < \tau $$
ここで $\tau$ は組織のしきい値である。
- 提案手法
アーキテクチャは 4 つのモジュールから構成される。
- Static Analyzer Incremental (SAI)
- Telemetry Collector (TC)
- Risk Estimator (RE)
- Policy Enforcement Engine (PEE)
Algorithm 1: 増分解析
Input: Commit c, 以前のグラフ G
Output: 更新された脆弱性集合 V'
1: Δ ← diff(c)
2: 影響を受ける関数のみ CFG を更新
3: ローカルなデータフローを再計算
4: 制限されたインタープロシージャル効果を伝播
5: V' を返す
近似計算量:
$$ O(|\Delta| \log n) $$
Algorithm 2: リスク推定
Input: Vulnerability v
Output: R(v)
1: Pe ← 確率モデル(v)
2: I ← CVSS(v)
3: E ← エンドポイント頻度(v)
4: return Pe I E
- 実装
我々は EASE を Kubernetes 上に、Go および Python によるマイクロサービスとして実装した。C/C++ の静的解析には LLVM を用い、Java には Soot、Node.js には Esprima といった専用フレームワークを利用した。テレメトリは OpenTelemetry を通じて収集した。
本システムは 312 のリポジトリ、4,800 万 LOC を処理した。グラフ保存には PostgreSQL データベースを用いた。
- 実験評価
環境: 64 vCPU、256GB RAM を備えたクラスタ。
データセット: 312 の企業リポジトリ。
ベースライン: SonarQube、Checkmarx、OWASP Dependency-Check。
結果:
- 誤検知削減率: 37.4%(σ = 4.2%)。
- MTTR は 14.2 日から 8.2 日へ短縮。
- コミットあたりの平均解析時間: 3.8 分、ベースラインは 9.1 分。
- 精度: 0.91; 再現率: 0.88。
- 議論
テレメトリの統合は、効果的な優先順位付けにとって決定的であることが示された。動的露出と実際に記録された悪用との間に 0.72 の相関を観測した。
限界としては、テレメトリ品質への依存、およびモデル化されていないゼロデイ攻撃の不在が挙げられる。
- 結論と今後の課題
我々は、証拠に基づく AppSec により誤検知を削減し、リスク優先順位付けを改善できることを示した。今後は、動的確率グラフモデルおよび組織間の連合学習に基づくモデルの統合を計画している。
REFERENCES
[1] P. Cousot and R. Cousot, “Abstract Interpretation,” POPL, 1977.
[2] MITRE, “ATT&CK Framework,” 2023.
[3] OWASP, “Top 10,” 2021.
[4] Verizon, “DBIR,” 2023.
[5] NIST, “SP 800-53,” 2020.
[6] NIST, “SP 800-61,” 2018.
[7] M. Howard and D. LeBlanc, Writing Secure Code, Microsoft Press.
[8] ISO/IEC 27034, Application Security.
[9] CVE-2021-44228, NVD.
[10] CVE-2022-22965, NVD.
[11] CISA, Known Exploited Vulnerabilities Catalog, 2023.
[12] J. Viega et al., “Static Analysis,” IEEE Security & Privacy.
[13] B. Chess and J. West, Secure Programming with Static Analysis.
[14] OWASP SAMM, 2022.
[15] NIST SSDF, SP 800-218.
[16] A. Sabelfeld and A. Myers, “Language-Based Information-Flow Security,” IEEE JSAC.
[17] S. Christey, “Vulnerability Naming,” MITRE.
[18] Google, “OSS-Fuzz,” 2022.
[19] L. De Moura and N. Bjørner, “Z3,” TACAS.
[20] ISO/IEC 27001, 2022.