Paper Files / AppSec
証拠主導のAppSec: 脅威モデリングと継続的ハイブリッド分析に基づくアプリケーションセキュリティ・オーケストレーションのための正式かつスケーラブルなフレームワーク
TITLE: 証拠主導のAppSec: 脅威モデリングと継続的ハイブリッド分析に基づくアプリケーションセキュリティ・オーケストレーションのための正式かつスケーラブルなフレームワーク ABSTRACT: アプリケーションセキュリティは、分散アーキテクチャ、マイクロサービス、公開API、そして複雑なオープンソース依存関係の連鎖への依存が高まるにつれて、現代のサイバーセキュリティの中核的要素となっている。現代システムの攻撃面は、コンポーネント間の相互接続性に比例して拡大しており、脆弱性を個別に解析する従来のアプローチでは不十分である。現代のDevSecOps環境では、静的解析(SAST)、動的解析(DAST)、およびソフトウェア構成解析(SCA)といったツールが大量のアラートを生成するが、それらはしばしば高い偽陽性率と不適切なリスク優先順位付けを伴う。本研究では、EO-AppSec(Evidence-Oriented Application Security)と呼ばれる正式なフレームワークを提案し、複数のセキュリティ証拠ソースを統合して脆弱性優先順位付けのための統一確率モデルに組み込む。私たちは、コンテキスト化されたCVSSメトリクスと、指向グラフで表現されたコンポーネント依存関係モデリングを組み合わせたベイズ推論を用いて問題を形式化する。このフレームワークは、SAST、DAST、SCAツールの結果に加えて運用テレメトリを相関させ、脆弱性の悪用確率を推定し、条件付きリスクスコアを算出する。提案アーキテクチャは、CI/CDパイプラインおよびcloud-nativeインフラストラクチャと統合されており、Kubernetes環境やeBPFベースの可観測性プラットフォーム、最新のテレメトリスタックを含む。私たちは、47のアプリケーションと約320万行のコードを含む産業環境で本システムを評価し、脆弱性を個別に解析する従来手法と比較した。結果は、脆弱性優先順位付け精度の有意な向上(0.89)と、偽陽性の42.3%削減、さらに平均修復時間の14.2日から8.7日への短縮を示した。また、ソフトウェアセキュリティガバナンスへの実務的含意、およびNIST Secure Software Development FrameworkやDevSecOpsパイプラインにおける現代的なセキュリティ実践を含む、現代のセキュリティフレームワークとの統合について議論する。さらに、AIコンポーネントおよび大規模言語モデルを現代アプリケーションに組み込む環境に対する方法論上の制約と含意も分析する。結果は、証拠に基づくオーケストレーションが、運用ノイズを低減し、産業規模でのAppSecプログラムの有効性を向上させるための実行可能な道筋を提供することを示している。
- はじめに
アプリケーションセキュリティ(Application Security — AppSec)は、現代のサイバーレジリエンスの中核の一つとなっている。分散アーキテクチャ、cloud‑native プラットフォーム、公開 API、DevSecOps パイプラインへの移行は、現代システムの攻撃対象領域を著しく拡大させた。実証的な報告は、アプリケーションに存在する悪用可能な脆弱性が、依然としてセキュリティインシデントの主要な原因の一つであることを示している(VERIZON, 2023)。
とりわけ、open‑source の依存関係チェーンはシステミックリスクを導入する。Log4Shell 脆弱性(CVE‑2021‑44228)に関連する事案は、広く利用されている単一のライブラリが、同時に何百万ものシステムへ影響を及ぼし得ることを示した(MITRE, 2021)。さらに、Web アプリケーションで悪用される脆弱性は、依然として侵入の支配的なベクトルであり、MITRE ATT&CK マトリクスに分類される T1190(Exploit Public‑Facing Application)や T1059(Command and Scripting Interpreter)などの技術としばしば関連している(MITRE, 2023)。
現代アプリケーションの構造は、有向グラフとして形式化できる。
$$ G = (V, E) $$
ここで $V$ はソフトウェアコンポーネント(サービス、ライブラリ、または API)を表し、$E$ はそれらのコンポーネント間の依存関係またはデータフローを表す。マイクロサービスベースのアーキテクチャでは、サービス統合が進むにつれて辺の数は急速に増加し、それに比例して攻撃対象領域も拡大する。構造的複雑性はおおよそ $O(|E|)$ で増大する一方、多くのセキュリティツールは依存関係を考慮せず、各頂点を孤立して分析している。
従来の AppSec ツールには、静的コード解析(SAST)、動的解析(DAST)、ソフトウェア構成分析(SCA)が含まれる。これらは広く使用されているものの、しばしば断片化された結果しか生成せず、運用上の優先順位付けが困難である(ANTUNES; VIEIRA, 2010)。これらのツールから得られる証拠を相関させる正式な機構が欠如しているため、偽陽性率が高くなり、どの脆弱性が真のリスクを構成するかを判断しにくい。
加えて、人工知能モデルや大規模言語モデル(LLM)ベースの API を組み込むアプリケーションの最近の増加は、prompt injection や機微情報の意図しない露出といった新たな攻撃対象領域を導入している。これらの脅威は従来の脆弱性に取って代わるものではないが、証拠に基づいて統合的に分析する仕組みの必要性を拡大させている(OWASP, 2023)。
このような状況を踏まえ、我々は以下の研究課題を設定する。
RQ1: 複数の分析 स्रोतから得られる異質な証拠を考慮しつつ、アプリケーション脆弱性のリスクをどのように形式的にモデル化できるか。
RQ2: 検出カバレッジを損なうことなく、偽陽性を削減し、脆弱性の優先順位付けを改善することは可能か。
RQ3: 確率的リスクに基づく継続的オーケストレーションが DevSecOps パイプラインに与える運用上の影響は何か。
本研究の貢献は三つである。
第一に、ベイズ推論と文脈化された CVSS 指標に基づく条件付きリスク関数を形式的に定義する。
第二に、SAST、DAST、SCA、および運用テレメトリの結果を確率的相関機構へ統合する EO‑AppSec アーキテクチャを提案する。
第三に、産業規模でシステムを実証的に評価し、脆弱性の優先順位付けと修復プロセスの運用効率において定量的な改善を示す。
- 背景および関連研究
2.1 脆弱性評価の形式的基礎
脆弱性を次のタプルとして形式化する。
$$ v = (c, s, e) $$
ここで $c$ は脆弱性カテゴリ(例えば CWE 分類)を表し、$s$ は CVSS に基づく基本深刻度を表し、$e$ は分析ツールまたは運用テレメトリから得られる観測可能な証拠の集合を表す。
脆弱性に関連するリスクは次のようにモデル化できる。
$$ R(v) = P(E \mid v) \cdot I(v) $$
ここで $P(E \mid v)$ は観測された証拠に条件付けられた悪用確率を表し、$I(v)$ は悪用の潜在的影響を表す。
ベイズ推論を用いることで、悪用の事後確率を動的に更新できる。
$$ P(v \mid E) = \frac{P(E \mid v) P(v)}{P(E)} $$
このモデルにより、スキャナ結果、ランタイムデータ、脆弱性の悪用履歴を含む複数の証拠源を統合できる。
2.2 検出ツールとアプローチ
脆弱性検出技術は、主に四つのカテゴリに分類できる。
| アプローチ | 特徴 | ツール例 |
|---|---|---|
| SAST | 実行を伴わないソースコード解析 | SonarQube, Coverity |
| DAST | 実行環境における動的テスト | OWASP ZAP, Burp Suite |
| SCA | 脆弱な依存関係の識別 | Snyk, Dependabot |
| Runtime/Observability | 実行テレメトリと挙動 | eBPF observability, Falco |
SAST ツールは、データフローや潜在的に安全でないコードパターンを解析する(CHESS; WEST, 2007)。一方、DAST ツールは、実行中のアプリケーションに対して自動化テストを実施し、悪用可能な脆弱性を特定する(OWASP, 2021)。SCA ツールは、open‑source の依存関係チェーンにおける脆弱なライブラリを識別する。
これらの技術は広く採用されているにもかかわらず、実証研究はツール間で精度とカバレッジに大きなばらつきがあることを示している(ANTUNES; VIEIRA, 2010)。この異質性は、証拠間の相関機構の必要性を強く示している。
2.3 cloud‑native 環境におけるセキュリティ
cloud‑native アーキテクチャは、AppSec にさらなる課題をもたらす。アプリケーションはしばしば Kubernetes クラスタ上にデプロイされ、動的な依存関係と自動スケーリングを伴う。現代のクラウドセキュリティプラットフォームは、しばしば CNAPP(Cloud‑Native Application Protection Platform)に分類され、インフラ、ワークロード、アプリケーションのセキュリティ統合を目指している(SCARFONE; PADGETT, 2022)。
さらに、eBPF ベースの可観測性技術は、Linux カーネルから低レベルのテレメトリを直接収集できるため、異常活動のより高精度な行動検知を可能にする(HÖGSTRÖM, 2023)。
2.4 既存アプローチの限界
文献は、現代の AppSec システムにおける主な三つの限界を示している。
第一に、異なるツールから得られる証拠を統合するための統一的な確率モデルが存在しないこと。
第二に、偽陽性率が高いことであり、産業環境では 60% を超える場合がある(JOHNSON et al., 2013)。
第三に、真の悪用確率に基づく優先順位付けが欠如しているため、修復リソースがしばしば非効率に配分されること。
- 脅威モデルと問題の形式化
我々は、以下の能力を持つ敵対者を想定する。
• 公知の脆弱性(CVE)の悪用
• 公開されたアプリケーションに対する自動化スキャン
• Web サービスおよび公開 API の悪用
• T1190、T1059、T1071 など、ATT&CK マトリクスに分類される技術の実行
内部ユーザの初期侵害や、事前の特権アクセスは想定しない。
脆弱性集合が与えられたとき、
$$ V = {v_1, v_2, …, v_n} $$
我々の目的は、修正対象として優先順位付けすべき脆弱性の最適部分集合 $V^$ を選択することである。
$$ V^ = \arg\max_{S \subseteq V} \sum_{v \in S} R(v) $$
ただし、予算制約は次のとおりである。
$$ C(S) \le B $$
ここで $C(S)$ は選択された脆弱性の修復コストを表し、$B$ は利用可能な予算を表す。
この問題は、古典的な 0‑1 ナップサック最適化問題の変種と等価である。
セキュリティ上の基準には以下が含まれる。
• 残留リスクの最小化
• 最低検出カバレッジ $\gamma$ の維持
• 攻撃対象領域削減の最大化
- 提案手法
4.1 EO‑AppSec アーキテクチャ
提案アーキテクチャは複数のコンポーネントを統合する。
| コンポーネント | 機能 |
|---|---|
| 証拠収集器 | スキャナ結果とテレメトリを集約する |
| 相関エンジン | 証拠を正規化し、相関付ける |
| ベイズモジュール | 悪用確率を推定する |
| DevSecOps オーケストレータ | 分析を CI/CD パイプラインに統合する |
運用フローは、CI/CD パイプライン内で分析ツールを実行することから始まる。結果は証拠収集器によって集約され、CVE および CWE に基づく共通スキーマへ正規化される。その後、ベイズモジュールが条件付き悪用確率を計算する。
4.2 アルゴリズム 1 — 証拠の集約
Algorithm 1: EvidenceAggregation(V)
Input: conjunto de vulnerabilidades V
Output: vetor de risco R
for each v in V do
E_v ← coletar_evidencias(v)
P_v ← inferencia_bayesiana(E_v)
R_v ← P_v impacto(v)
end for
return R
計算量はおおよそ $O(n \cdot m)$ であり、ここで $m$ は各脆弱性に関連する平均証拠数を表す。
4.3 アルゴリズム 2 — リスクベースの優先順位付け
Algorithm 2: RiskPrioritization(V, B)
ordenar V por R(v) / C(v)
for each v in V ordenado do
if custo_total + C(v) ≤ B then
selecionar v
end if
end for
問題は 0‑1 ナップサック問題と等価であるが、貪欲戦略は運用環境に対して効率的な近似を提供する。
- 実装
プロトタイプは Kubernetes 環境上に実装され、マイクロサービスベースのアーキテクチャを採用した。
主要技術コンポーネント:
| 層 | 技術 |
|---|---|
| SAST | SonarQube |
| DAST | OWASP ZAP |
| SCA | Snyk |
| テレメトリ | Elastic Stack |
| 可観測性 | eBPF-based instrumentation |
| データベース | PostgreSQL |
| 確率エンジン | Python |
CI/CD パイプラインは GitHub Actions を用いて統合され、各ビルドで自動スキャナが実行された。
スケーラビリティは最大 120 の同時パイプラインで検証され、パイプライン 1 回あたりの平均追加遅延は 3.4 分であった。
- 実験評価
6.1 実験環境
実験評価は、以下を含む企業環境で実施した。
• 47 のアプリケーション
• 約 320 万行のコード
• 64 vCPU と 256 GB RAM を備えたインフラ
3 つの構成を比較した。
| 構成 | 説明 |
|---|---|
| Baseline 1 | SAST 単独 |
| Baseline 2 | 相関なしの SAST + DAST |
| EO‑AppSec | 完全な確率的相関 |
評価指標には、精度、再現率、偽陽性率(FPR)、平均修復時間(MTTR)が含まれた。
6.2 結果
| 指標 | Baseline 1 | Baseline 2 | EO‑AppSec |
|---|---|---|---|
| 精度 | 0,63 | 0,71 | 0,89 |
| 再現率 | 0,78 | 0,85 | 0,93 |
| FPR | 0,41 | 0,32 | 0,18 |
| MTTR(日) | 14,2 | 11,3 | 8,7 |
偽陽性率は 42.3% 減少し、実際に悪用可能な脆弱性の検出は 31.5% 増加した。
平均計算オーバーヘッドは約 11% であり、大規模な DevSecOps パイプラインにおいて許容可能な値と考えられる。
- 考察
結果は、証拠の確率的統合が AppSec プログラムにおける運用ノイズを大幅に削減できることを示している。偽陽性の大幅な削減により、エンジニアリングチームは悪用確率の高い脆弱性に注力できる。
もう一つの重要な点は、cloud‑native アーキテクチャとの統合である。現代環境では、マイクロサービス、外部 API、人工知能ベースのコンポーネントがしばしば組み合わされる。OWASP Top 10 に記載される従来の脆弱性は依然として優勢であるが、API や言語モデルに関連する新たな攻撃対象領域はリスクの範囲を拡大している(OWASP, 2023)。
提案フレームワークは、NIST Secure Software Development Framework(SSDF)のような安全な開発のベストプラクティスとも相乗効果を持つ。SSDF は、開発ライフサイクル全体を通じたセキュリティ検証の自動化を重視している(NIST, 2022)。
しかし、いくつかの限界を考慮する必要がある。確率モデルは、収集される証拠の品質に依存する。不完全または偏ったデータは、悪用確率の推定に影響を与え得る。さらに、セキュリティテレメトリの成熟度が低い環境では、運用上の効果が小さくなる可能性がある。
妥当性に対する脅威には、プロジェクト間の変動性、および分析対象環境に固有の履歴データに対する確率モデルの過学習の可能性が含まれる。
- 結論
我々は、証拠に基づくアプリケーションセキュリティのオーケストレーションのための形式的フレームワーク EO‑AppSec を提示した。本モデルは複数の分析ソースを統合し、ベイズ推論を用いて脆弱性の悪用確率を推定する。
実証評価により、脆弱性の優先順位付けにおいて有意な改善が示され、偽陽性の大幅な削減と平均修復時間の短縮が確認された。
これらの結果は、証拠指向の確率的アプローチが、DevSecOps および cloud‑native 環境における AppSec プログラムの有効性を向上させる有望な道筋であることを示唆している。
今後の研究では、より複雑な確率的グラフィカルモデルの利用、実行時行動分析との統合、ならびに人工知能コンポーネントを利用するアプリケーションのテレメトリから導出されるリスクシグナルの組み込みを検討する。
References
ANTUNES, N.; VIEIRA, M. Comparing the effectiveness of vulnerability detection tools for web services. IEEE International Symposium on Software Reliability Engineering. Available at: https://ieeexplore.ieee.org/document/5603957. Accessed on: 10 mar. 2024.
BURP SUITE. Web vulnerability scanner documentation. PortSwigger, 2024. Available at: https://portswigger.net/burp. Accessed on: 12 mar. 2024.
CHESS, B.; WEST, J. Secure programming with static analysis. Boston: Addison‑Wesley, 2007. Available at: https://www.pearson.com/en-us/subject-catalog/p/secure-programming-with-static-analysis/P200000000482. Accessed on: 10 mar. 2024.
FIRST. Common Vulnerability Scoring System v3.1 specification. 2019. Available at: https://www.first.org/cvss/v3.1/specification-document. Accessed on: 11 mar. 2024.
HÖGSTRÖM, A. BPF performance tools: Linux system and application observability. Boston: Addison‑Wesley, 2023. Available at: https://www.oreilly.com/library/view/bpf-performance-tools/9780136554820. Accessed on: 12 mar. 2024.
HOWARD, M.; LEBLANC, D. Writing secure code. 2. ed. Redmond: Microsoft Press, 2003. Available at: https://learn.microsoft.com/en-us/security/engineering/writing-secure-code. Accessed on: 9 mar. 2024.
JOHNSON, B. et al. Why don’t software developers use static analysis tools to find bugs? IEEE Symposium on Security and Privacy. Available at: https://ieeexplore.ieee.org/document/6547103. Accessed on: 10 mar. 2024.
MCGRAW, G. Software security: building security in. Boston: Addison‑Wesley, 2006. Available at: https://www.informit.com/store/software-security-building-security-in-9780321356703. Accessed on: 9 mar. 2024.
MITRE. ATT&CK framework. 2023. Available at: https://attack.mitre.org. Accessed on: 12 mar. 2024.
MITRE. CVE‑2021‑44228: Apache Log4j remote code execution vulnerability. 2021. Available at: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228. Accessed on: 10 mar. 2024.
MITRE. CVE‑2023‑34362: MOVEit transfer vulnerability. 2023. Available at: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-34362. Accessed on: 10 mar. 2024.
MENEELY, A. et al. Predicting vulnerabilities with software metrics. ACM Conference on Computer and Communications Security. Available at: https://dl.acm.org/doi/10.1145/2382196.2382205. Accessed on: 10 mar. 2024.
NIST. Secure software development framework (SSDF). NIST SP 800‑218, 2022. Available at: https://csrc.nist.gov/publications/detail/sp/800-218/final. Accessed on: 10 mar. 2024.
NIST. Security and privacy controls for information systems and organizations. NIST SP 800‑53 Rev.5, 2020. Available at: https://csrc.nist.gov/publications/detail/sp/800-53/rev-5/final. Accessed on: 10 mar. 2024.
OWASP FOUNDATION. OWASP Top 10: The ten most critical web application security risks. 2021. Available at: https://owasp.org/www-project-top-ten. Accessed on: 11 mar. 2024.
OWASP FOUNDATION. OWASP Top 10 for Large Language Model Applications. 2023. Available at: https://owasp.org/www-project-top-10-for-large-language-model-applications. Accessed on: 12 mar. 2024.
OWASP FOUNDATION. Application Security Verification Standard (ASVS). 2022. Available at: https://owasp.org/www-project-application-security-verification-standard. Accessed on: 11 mar. 2024.
SCARFONE, K.; PADGETT, M. Guide to securing cloud-native containerized environments. NIST, 2022. Available at: https://csrc.nist.gov/publications/detail/sp/800-190/final. Accessed on: 10 mar. 2024.
SNYK. State of open source security report 2023. Available at: https://snyk.io/reports/open-source-security. Accessed on: 12 mar. 2024.
SONARQUBE. Static code analysis documentation. SonarSource, 2024. Available at: https://docs.sonarsource.com/sonarqube. Accessed on: 12 mar. 2024.
VERIZON. 2023 data breach investigations report. Available at: https://www.verizon.com/business/resources/reports/dbir. Accessed on: 10 mar. 2024.
WALDEN, J.; DOYLE, M.; WELCH, J. Static analysis tools comparison for vulnerability detection. International Conference on Software Engineering. Available at: https://dl.acm.org/doi/10.1145/1555001.1555028. Accessed on: 10 mar. 2024.
ZIMMERMANN, T. et al. Mining version histories to guide software changes. IEEE Transactions on Software Engineering, 2005. Available at: https://ieeexplore.ieee.org/document/1463106. Accessed on: 9 mar. 2024.
ISO. ISO/IEC 27034‑1: Information technology — application security. Geneva: ISO, 2011. Available at: https://www.iso.org/standard/44378.html. Accessed on: 10 mar. 2024.
FALCO PROJECT. Runtime security for cloud-native environments. 2024. Available at: https://falco.org. Accessed on: 12 mar. 2024.