← 論文一覧に戻る

Paper Files / AppSec

タイトル: 証拠に基づくAppSec: 脅威モデリングと継続的ハイブリッド分析に基づくアプリケーションセキュリティ・オーケストレーションのための形式的かつスケーラブルなフレームワーク

AppSecJA

タイトル: 証拠に基づくAppSec: 脅威モデリングと継続的ハイブリッド分析に基づくアプリケーションセキュリティ・オーケストレーションのための形式的かつスケーラブルなフレームワーク 要旨: アプリケーションセキュリティは、分散アーキテクチャ、マイクロサービス、公開API、複雑なオープンソース依存関係の連鎖への依存が高まっていることにより、現代のサイバーセキュリティの中心的要素となっている。現代システムの攻撃対象領域は、コンポーネント間の相互接続性に比例して増大し、脆弱性を個別に分析する従来のアプローチでは不十分である。現代のDevSecOps環境では、静的解析(SAST)、動的解析(DAST)、およびソフトウェア構成分析(SCA)などのツールが大量のアラートを生成し、その多くは高い偽陽性率と不適切なリスク優先順位付けを特徴とする。本研究では、複数のセキュリティ証拠ソースを脆弱性優先順位付けのための統一的な確率モデルに統合する、EO-AppSec(Evidence-Oriented Application Security)と呼ばれる形式的フレームワークを提案する。我々は、ベイズ推論を、文脈化されたCVSS指標および有向グラフで表現されるコンポーネント依存関係モデリングと組み合わせることで、問題を形式化する。このフレームワークは、SAST、DAST、SCAの結果に加え、運用テレメトリを相関させ、脆弱性の悪用確率を推定し、条件付きリスクスコアを算出する。提案アーキテクチャは、CI/CDパイプラインおよびクラウドネイティブ・インフラストラクチャに統合され、Kubernetes環境やeBPFベースの可観測性プラットフォーム、最新のテレメトリスタックを含む。我々は、47のアプリケーションと約320万行のコードを含む産業環境でシステムを評価し、脆弱性を個別に分析する従来手法と比較した。その結果、脆弱性優先順位付けの精度が有意に向上し(0.89)、偽陽性が42.3%削減され、さらに平均是正時間が14.2日から8.7日に短縮された。あわせて、NIST Secure Software Development FrameworkやDevSecOpsパイプラインにおける現代的なセキュリティ実践を含む、ソフトウェアセキュリティ・ガバナンスおよび現代的セキュリティフレームワークとの統合に関する実務的含意を論じる。また、人工知能コンポーネントや大規模言語モデルを組み込む現代アプリケーションに対する方法論的限界とその含意についても分析する。結果は、証拠に基づくオーケストレーションが、運用ノイズを低減し、産業規模におけるAppSecプログラムの有効性を向上させる実行可能な道筋を提供することを示している。

  1. はじめに

アプリケーションセキュリティ(Application Security — AppSec)は、現代のサイバー・レジリエンスを支える柱の一つとなっている。分散アーキテクチャ、クラウドネイティブ・プラットフォーム、公開API、DevSecOpsパイプラインへの移行は、現代システムの攻撃対象領域を大幅に拡大した。実証的報告は、アプリケーションに存在する悪用可能な脆弱性が、依然としてセキュリティインシデントの主要因の一つであることを示している(VERIZON, 2023)。

特に、オープンソースの依存関係チェーンは体系的リスクを導入する。脆弱性 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)。これらのツールから得られる証拠を相関付ける正式なメカニズムが欠如しているため、偽陽性率が高くなり、どの脆弱性が実際のリスクを示すのかを判断しにくい。

加えて、人工知能モデルや大規模言語モデル(LLMs)に基づくAPIを組み込むアプリケーションの最近の増加は、プロンプトインジェクションや機微データの意図しない漏えいといった新たな攻撃対象領域を導入している。これらの脅威は従来型の脆弱性に取って代わるものではないが、統合的で証拠駆動型の分析機構の必要性を一層高めている(OWASP, 2023)。

このような状況を踏まえ、我々は以下の研究課題を設定する。

RQ1: 複数の分析ソースから得られる異種の証拠を考慮して、アプリケーション脆弱性のリスクをどのように形式的にモデル化できるか?

RQ2: 検出のカバレッジを損なうことなく、偽陽性を低減し、脆弱性の優先順位付けを改善することは可能か?

RQ3: 確率的リスクに基づく継続的オーケストレーションがDevSecOpsパイプラインに与える運用上の影響は何か?

本研究の貢献は三つである。

第一に、ベイズ推論とコンテキスト化されたCVSS指標に基づく条件付きリスク関数を形式的に定義する。

第二に、SAST、DAST、SCA、および運用テレメトリの結果を確率的相関機構に統合するEO‑AppSecアーキテクチャを提案する。

第三に、産業規模でシステムを実証的に評価し、脆弱性の優先順位付けと修復プロセスの運用効率において、定量的かつ有意な改善を示す。

  1. 背景および関連研究

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ツールは、オープンソースの依存関係チェーン内に存在する脆弱なライブラリを識別する。

これらの技術は広く採用されているにもかかわらず、実証研究はツール間で精度とカバレッジに大きなばらつきがあることを示している(ANTUNES; VIEIRA, 2010)。この異質性は、証拠間の相関機構の必要性を一層強調する。

2.3 クラウドネイティブ環境におけるセキュリティ

クラウドネイティブ・アーキテクチャは、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)。

第三に、実際の悪用確率に基づく優先順位付けが欠如していることであり、その結果として修復資源の非効率な配分がしばしば生じる。

  1. 脅威モデルと問題の形式化

我々は、以下の能力を有する攻撃者を想定する。

• 公知の脆弱性(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$ の維持
• 攻撃対象領域削減の最大化

  1. 提案手法

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ナップサック問題と等価であるが、貪欲戦略は運用環境において効率的な近似を提供する。

  1. 実装

プロトタイプは、マイクロサービスベースのアーキテクチャを用いてKubernetes環境に実装された。

主要技術コンポーネントは以下のとおりである。

レイヤ 技術
SAST SonarQube
DAST OWASP ZAP
SCA Snyk
テレメトリ Elastic Stack
可観測性 eBPF-based instrumentation
データベース PostgreSQL
確率エンジン Python

CI/CDパイプラインはGitHub Actionsを用いて統合され、各ビルドで自動スキャナが実行された。

スケーラビリティは同時に最大120パイプラインまで検証され、パイプライン1回あたりの平均追加レイテンシは3.4分であった。

  1. 実験評価

6.1 実験環境

実験評価は、以下を含む企業環境で実施された。

• 47のアプリケーション
• 約320万行のコード
• 64 vCPUおよび256 GB RAMを備えたインフラストラクチャ

三つの構成を比較した。

構成 説明
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パイプラインに対して許容可能な値とみなされた。

  1. 議論

結果は、証拠の確率的統合がAppSecプログラムにおける運用上のノイズを大幅に削減できることを示している。偽陽性の大幅な低減により、エンジニアリングチームは、悪用される可能性が高い脆弱性に重点的に取り組むことができる。

もう一つの重要な点は、クラウドネイティブ・アーキテクチャとの統合である。現代環境では、マイクロサービス、外部API、人工知能ベースのコンポーネントが組み合わされることが多い。OWASP Top 10で述べられる従来型の脆弱性は依然として主要であるが、APIや言語モデルに関連する新たな攻撃対象領域がリスクの範囲を拡大している(OWASP, 2023)。

提案フレームワークは、開発ライフサイクル全体にわたるセキュリティ検証の自動化を重視するNIST Secure Software Development Framework(SSDF)などの安全な開発フレームワークで推奨される実践とも相乗効果を持つ(NIST, 2022)。

ただし、いくつかの限界を考慮する必要がある。確率モデルは、収集される証拠の質に依存する。不完全または偏ったデータは、悪用確率の推定に影響を及ぼし得る。さらに、セキュリティ・テレメトリの成熟度が低い環境では、運用上の効果が小さくなる可能性がある。

妥当性への脅威には、プロジェクト間のばらつき、および解析対象環境の特定の履歴データに対する確率モデルの過学習の可能性が含まれる。

  1. 結論

我々は、証拠に基づくアプリケーションセキュリティ・オーケストレーションのための形式的フレームワークEO‑AppSecを提示した。本モデルは、複数の分析ソースを統合し、ベイズ推論を用いて脆弱性悪用確率を推定する。

実証評価により、脆弱性の優先順位付けにおける有意な改善、すなわち偽陽性の顕著な削減と平均修復時間の短縮が示された。

これらの結果は、証拠駆動型の確率的アプローチが、DevSecOpsおよびクラウドネイティブ環境におけるAppSecプログラムの有効性を向上させる有望な方向性であることを示唆している。

今後の研究には、より複雑な確率的グラフィカルモデルの利用、実行時行動分析との統合、および人工知能コンポーネントを利用するアプリケーションのテレメトリから導出されるリスクシグナルの組み込みが含まれる。

参考文献

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.