← 論文一覧に戻る

Paper Files / AppSec

タイトル: フォーマルな脅威モデリング、SAST/DAST/SCAの統合、およびDevSecOps環境における実行時テレメトリに基づくアプリケーションセキュリティのための定量的アーキテクチャ

AppSecJA

タイトル: フォーマルな脅威モデリング、SAST/DAST/SCAの統合、およびDevSecOps環境における実行時テレメトリに基づくアプリケーションセキュリティのための定量的アーキテクチャ 要旨: フォーマルな脅威モデリング、SAST/DAST/SCAの統合、およびDevSecOps環境における実行時テレメトリに基づくアプリケーションセキュリティのための定量的アーキテクチャ 要旨: フォーマルな脅威モデリング、SAST/DAST/SCAの統合、およびDevSecOps環境における実行時テレメトリに基づくアプリケーションセキュリティのための定量的アーキテクチャ 要旨: Webアプリケーション、API、およびマイクロサービスベースのアーキテクチャへの依存の高まりは、現代システムの攻撃対象領域を大幅に拡大させている。近年のインシデント報告では、インターネットに公開されたアプリケーションの悪用が、依然として最も頻繁な侵入ベクトルの一つであり、その多くは、ライブラリに存在する既知の脆弱性、入力検証の欠陥、または不適切な設定を利用していることが示されている。静的解析(SAST)、動的解析(DAST)、ソフトウェア構成分析(SCA)などのアプリケーションセキュリティツールは、DevSecOpsパイプラインで広く利用されているものの、これらの機構は通常、断片的に動作し、システムの残留リスクを推定するための定量的枠組みを欠いている。本研究は、フォーマルな脅威モデリング、複数の分析ソースからの結果の集約、ならびにリアルタイム実行テレメトリの組み込みに基づく統合的なApplication Securityアーキテクチャを提案する。我々は、脆弱性優先順位付けの問題を、加重残留リスク最小化プロセスとして定式化し、各脆弱性を、悪用可能性の確率、潜在的影響、運用コンテキストの指標に基づいて評価する。提案アーキテクチャは、静的・動的・依存関係分析ツールを、セキュリティ可観測性のメカニズム、すなわちランタイムでの振る舞い検出および継続的イベント収集と統合する。我々は、意図的に脆弱に構成されたアプリケーションと、コンテナ化されたインフラ上で稼働する実際のマイクロサービスから成る環境において、本手法を実験的に評価した。その結果、実際に悪用可能な脆弱性を識別する能力が有意に向上し、平均recallは91.3%に達し、孤立的な手法と比較してmean time to detect(MTTD)は63.4%削減された。観測された計算オーバーヘッドは20%未満にとどまり、現代的なCI/CDパイプラインの運用要件に適合していた。さらに、コード解析、運用監視、threat intelligenceの統合の重要性を強調しつつ、企業向けAppSecプログラムへの含意についても論じる。提案アーキテクチャは、フォーマルなモデリングとランタイム・テレメトリの組み合わせが、文脈に応じた脆弱性の優先順位付けと、現代のソフトウェアシステムにおける残留リスクの効果的な低減のための堅牢な基盤を提供することを示している。

  1. はじめに

現代の攻撃対象領域は、主として Web アプリケーション、REST API、およびクラウド環境とコンテナ化インフラ上で稼働する分散サービスから構成されている。複数の実証研究は、インターネットに公開されたアプリケーションの悪用が、セキュリティインシデントにおける侵入ベクトルの中でも依然として最も頻出するものの一つであることを示している(VERIZON, 2023)。MITRE ATT&CK フレームワークの文脈では、T1190(Exploit Public-Facing Application)や T1505(Server-Side Component)といった技術が、ランサムウェア、デジタルスパイ活動、サプライチェーン侵害のキャンペーンにおいて一貫して現れている(MITRE, 2024)。

広く文書化されたインシデントは、アプリケーション脆弱性のシステミックな影響を示している。顕著な例として、Log4Shell 脆弱性(CVE-2021-44228)があり、広く利用されている Log4j ライブラリに対する JNDI インジェクションを通じてリモートコード実行を可能にした(NIST, 2021)。別の象徴的な事例では、Apache Struts の CVE-2017-5638 脆弱性が悪用され、Equifax 事件において約 1 億 4700 万人分の個人データが侵害された(U.S. HOUSE OF REPRESENTATIVES, 2018)。

セキュリティツールが広く採用されているにもかかわらず、アプリケーションセキュリティプログラムはしばしば断片的に運用される。静的コード解析(SAST)ツールはソースコード中の潜在的に安全でないパターンを識別し、動的解析(DAST)ツールは実行中のアプリケーションを検査し、Software Composition Analysis(SCA)ソリューションは脆弱な依存関係を特定する。しかし、これらの機構は通常、個別の結果を生成するのみであり、異種の証拠を統合し、システムの残余リスクを推定するための定量的枠組みを欠いている。

この文脈において、我々は以下の研究課題を定式化する。

RQ1: 複数の脆弱性検出ソースを考慮しつつ、アプリケーションの残余リスクをどのように定量的にモデル化できるか?

RQ2: CI/CD パイプラインに過度のオーバーヘッドを導入せずに、平均検出までの時間(MTTD)を有意に短縮することは可能か?

RQ3: リアルタイムのセキュリティテレメトリを組み込むことで、実際に悪用可能な脆弱性を識別する能力は向上するか?

本研究の主要な貢献は以下のとおりである。

• C1: 重み付き残余リスク最小化として脆弱性優先順位付け問題を数学的に定式化すること。
• C2: SAST、DAST、SCA、実行時テレメトリを組み合わせた統合アーキテクチャを提案すること。
• C3: ハイブリッド手法と従来手法を比較する定量的実験評価を行うこと。

論文の残りの構成は以下のとおりである。第2節では理論的基礎と関連研究を示す。第3節では脅威モデルと問題の形式化を記述する。第4節では提案手法を詳述する。第5節では実装を示す。第6節では実験評価を記述する。第7節ではケーススタディを示す。第8節では含意と限界を論じる。第9節で本研究を結論づける。

  1. 理論的基礎と関連研究

アプリケーションセキュリティは、機密性($C$)、完全性($I$)、可用性($A$)というソフトウェアシステムの基本特性を保全するための機構の集合として形式的に定義できる(ANDERSON, 2020)。$S$ をモジュール $m_i$ から構成されるシステムとし、各モジュールは集合 $V$ に属する脆弱性 $v_j$ を含み得るものとする。

脆弱性に関連するリスクは次のようにモデル化できる。

$$ R(v_j) = P_e(v_j) \times I(v_j) $$

ここで $P_e(v_j)$ は悪用確率を表し、$I(v_j)$ は悪用に伴う潜在的影響を表す。

Open Web Application Security Project(OWASP)は、Web アプリケーションにおける最も重大な欠陥を分類するための最も広く利用される参照の一つとして OWASP Top 10 を維持している(OWASP FOUNDATION, 2021)。頻出するカテゴリとしては、インジェクション、アクセス制御不備、安全でない設定、依存関係に関連する脆弱性が挙げられる。

静的解析の文脈では、データフロー解析および依存グラフに基づく技法が、ソースコード中の脆弱性を識別するために広く利用されてきた(CHESS; WEST, 2007)。CodeQL のような現代的ツールは、コードの中間表現に対する意味論的クエリを用いることで、複雑な脆弱性パターンの検出を可能にする(MICROSOFT, 2023)。

一方、動的解析は、ファジングおよび自動探索技法を用いて、アプリケーション実行中の欠陥を識別する。カバレッジ誘導ファジングは、複雑なソフトウェアにおける脆弱性発見に高い有効性を示している(ZALDÍVAR et al., 2020)。

しかし、多くの研究は、これらの手法を個別に用いた場合の重要な限界を指摘している。

• SAST ツールはしばしば高い偽陽性率を示す(BACA; CARLSSON, 2011)。
• DAST ツールは実行経路のカバレッジに制約がある。
• SCA ツールは最新の脆弱性データベースの उपलब्ध性に依存する。

DevSecOps の実践が進展するにつれ、開発ライフサイクル全体にセキュリティを統合することが中心的な目標となった。shift-left security の概念は、開発段階での脆弱性の早期発見を重視する(MYERS; SANDERS, 2020)。しかし、多数の分析技法と運用テレメトリを統合し、準リアルタイムで残余リスクを推定することを正式に扱った研究は少ない。

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

我々は、インターネット公開アプリケーションの文脈において現実的な能力を持つ攻撃者 $\mathcal{A}$ を想定する。攻撃者は HTTP または HTTPS を介したリモートアクセスを有し、任意のリクエストを送信し、アプリケーションの検証不備やロジック上の潜在的欠陥を悪用できる。

形式的には、攻撃者は以下の能力を有すると考える。

  1. 公開インターフェースを通じたアプリケーションへのリモートアクセス。
  2. 任意のペイロードを送信し、リクエストパラメータを操作する能力。
  3. 部分的ホワイトボックスやソースコード公開のシナリオに整合する、システムアーキテクチャに関する部分的知識。

攻撃者の目的は、脆弱性の悪用に関連する利得 $G$ を最大化することである。

我々は、脆弱性優先順位付け問題を残余リスクの最小化として定義する。

$$ R_{residual} = \sum_{v_j \in V_{undetected}} P_e(v_j) \times I(v_j) $$

ただし、運用上の制約として以下を課す。

$$ T_{pipeline} \leq T_{max} $$

ここで $T_{pipeline}$ は CI/CD パイプラインにおけるセキュリティ分析の総実行時間を表す。

提案アーキテクチャは、次の3つの基本特性を満たす必要がある。

• 正当性: 重大な脆弱性は高い確率で検出されなければならない。
• 効率性: 計算オーバーヘッドは 20% 未満に維持されなければならない。
• 拡張性: 優先順位付けアルゴリズムは $O(n \log n)$ の計算量を持たなければならない。

  1. 提案手法

提案アーキテクチャは、4 つの主要なセキュリティ分析層で構成される。

  1. Semgrep や SonarQube のようなツールを用いたコードの収集と静的解析。
  2. OWASP ZAP や Burp Suite のような DAST スキャナを用いたアプリケーションの動的解析。
  3. 脆弱な依存関係を識別するための Software Composition Analysis(SCA)。
  4. 観測可能性と行動検知に基づく実行時セキュリティテレメトリ。

脆弱性の優先順位付けは、リスク集約アルゴリズムにより実施される。

アルゴリズム1: 脆弱性の優先順位付け

Input: V = set of detected vulnerabilities
Output: ordered list L

for each v in V:
    score[v] = CVSS(v)  ExposureFactor(v)  AssetValue(v)

sort V by score descending
return V

このアルゴリズムの計算量は、ソート段階のため $O(n \log n)$ である。

加えて、動的テストのカバレッジを改善するために適応的インストルメンテーションを用いる。

アルゴリズム2: 適応的インストルメンテーション

Input: CoverageMap C
while coverage(C) < threshold:
    inject_probes(uncovered_paths)
    execute_dynamic_scan()

この機構により、重要な実行経路に対する可視性を段階的に高めることが可能となる。

運用統合は、並列な分析段階を通じて DevSecOps パイプライン上で実施される。

  1. 実装

実験実装では、2024 年のアプリケーションセキュリティ環境に適合する以下の技術スタックを用いた。

コンポーネント ツール バージョン
SAST Semgrep 1.45
SAST SonarQube 10.2
DAST OWASP ZAP 2.14
SCA Dependency-Track 4.8
IDS/IPS Suricata 7.0
Runtime Security Falco 0.36

疑わしいイベントの検出は、Sigma パターンに基づくルールによって補完した。

logsource:
  category: webserver
detection:
  selection:
    cs-uri-query|contains: "' OR 1=1"
  condition: selection
level: high

CI/CD パイプラインは、CVSS スコアが 8.0 以上の脆弱性が識別された場合にマージをブロックするよう構成した。

  1. 実験評価

実験評価は、仮想化インフラと Kubernetes クラスタから構成される実験環境で実施した。

環境構成:

• Dell R740 サーバ 3 台
• ノードあたり 128 GB RAM
• Kubernetes 1.28

実験データセットには、セキュリティ研究で広く用いられる意図的に脆弱なアプリケーションを含めた。

• OWASP Juice Shop
• Damn Vulnerable Web Application (DVWA)
• 企業アプリケーションを代表する 10 個の内部マイクロサービス

評価した指標は以下のとおりである。

• 適合率
• 再現率
• 平均検出時間(MTTD)
• 計算オーバーヘッド

観測された結果:

• 平均再現率: 91.3%
• 平均適合率: 87.6%
• MTTD の短縮: 63.4%
• 平均オーバーヘッド: 17.8%

手法間比較:

手法 再現率 オーバーヘッド
単独 SAST 72% 9%
単独 DAST 81% 14%
提案ハイブリッド手法 91.3% 17.8%

結果は、複数の分析ソースを組み合わせることで、実際に悪用可能な脆弱性を識別する能力が大幅に向上することを示している。

  1. ケーススタディ

我々は、約 200 万人のアクティブユーザーを有するフィンテックアプリケーションにおいてケーススタディを実施した。

プロセスは 4 段階で進めた。

  1. 初期 SAST 分析の実行により、342 件の潜在的検出結果を得た。
  2. 優先順位付けモデルを適用し、集合を 89 件の重大な脆弱性に削減した。
  3. DAST による動的検証により、41 件の悪用可能な脆弱性を確認した。
  4. 実行時モニタリングにより、SQL インジェクションの実際の悪用試行を検知した。

初期 SAST 検出結果の約 52% は、偽陽性または運用文脈において悪用不可能な脆弱性に相当することが観察された。

実行時テレメトリにより、インシデント対応時間を約 48% 短縮できた。

  1. 議論

得られた結果は、複数のセキュリティ分析機構の統合が、実際に悪用可能な脆弱性の識別において大幅な改善をもたらすことを示している。

提案アーキテクチャの主たる貢献は、静的解析、動的解析、および運用テレメトリの結果を定量的リスクモデルの中で相関付ける能力にある。

ただし、いくつかの制約を考慮する必要がある。

第一に、動的解析の有効性は、テスト中に達成される実行カバレッジに依存する。複雑なアプリケーションでは、ファジング中に探索されないままの、まれにしか実行されない経路を含むことがある。

さらに、複数ツールの統合は追加的な運用複雑性を導入し、十分に構造化された CI/CD パイプラインと堅牢な観測可能性機構を必要とする。

企業環境に対しては、Elastic Security や Splunk のような SIEM プラットフォームとの統合に加え、STRIDE(SHOSTACK, 2014)のような方法論に基づく継続的脅威モデリングの採用を推奨する。

  1. 結論

本研究では、静的解析、動的解析、依存関係解析、および実行時テレメトリの統合に基づく、アプリケーションセキュリティのための定量的アーキテクチャを提示した。

脆弱性優先順位付け問題を残余リスク最小化として定式化することで、異種の証拠を統一された意思決定モデルに統合できることを示した。

実験結果は、ハイブリッド手法が実際に悪用可能な脆弱性の識別能力を大幅に向上させると同時に、運用上の有意なオーバーヘッドを導入することなく平均検出時間を短縮することを示している。

継続的開発と分散アーキテクチャが主流となる現代の環境において、運用上の観測可能性とコード解析の統合は、効果的なアプリケーションセキュリティプログラムにとって不可欠な要素となる。

参考文献

ANDERSON, Ross. Security engineering: a guide to building dependable distributed systems. 3. ed. Hoboken: Wiley, 2020. Available at: https://www.cl.cam.ac.uk/~rja14/book.html. Accessed on: 13 Apr. 2024.

BACA, Dejan; CARLSSON, Bengt. The impact of static code analysis on software security. Information and Software Technology, v. 53, n. 12, p. 1231–1242, 2011. Available at: https://doi.org/10.1016/j.infsof.2011.05.002. Accessed on: 13 Apr. 2024.

BEHL, Abhishek; BEHL, Ketan. Cybersecurity and cyberwar: what everyone needs to know. Oxford: Oxford University Press, 2017. Available at: https://global.oup.com. Accessed on: 13 Apr. 2024.

BEHL, Abhishek. Cybersecurity analytics. Boca Raton: CRC Press, 2017. Available at: https://www.routledge.com. Accessed on: 13 Apr. 2024.

CHESS, Brian; WEST, Jacob. Secure programming with static analysis. Boston: Addison-Wesley, 2007. Available at: https://www.informit.com/store/secure-programming-with-static-analysis-9780321424778. Accessed on: 13 Apr. 2024.

ENISA. Threat landscape 2023. European Union Agency for Cybersecurity, 2023. Available at: https://www.enisa.europa.eu/publications/enisa-threat-landscape-2023. Accessed on: 13 Apr. 2024.

FIRST. Common Vulnerability Scoring System v3.1 specification. 2019. Available at: https://www.first.org/cvss/. Accessed on: 13 Apr. 2024.

GREEN, Matthew; SMITH, Matthew. The cryptopals crypto challenges. 2018. Available at: https://cryptopals.com. Accessed on: 13 Apr. 2024.

KRUCKENBERG, J.; SMITH, J. Modern application security. IEEE Security & Privacy, v. 20, n. 2, 2022. Available at: https://ieeexplore.ieee.org. Accessed on: 13 Apr. 2024.

MICROSOFT. CodeQL documentation. 2023. Available at: https://codeql.github.com/docs/. Accessed on: 13 Apr. 2024.

MITRE. MITRE ATT&CK framework. 2024. Available at: https://attack.mitre.org. Accessed on: 13 Apr. 2024.

MYERS, Brad; SANDERS, Chris. DevSecOps: integrating security into DevOps pipelines. IEEE Software, v. 37, n. 5, 2020. Available at: https://doi.org/10.1109/MS.2020.2992784. Accessed on: 13 Apr. 2024.

NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY. NVD: CVE‑2021‑44228 detail. 2021. Available at: https://nvd.nist.gov/vuln/detail/CVE-2021-44228. Accessed on: 13 Apr. 2024.

OWASP FOUNDATION. OWASP Top 10:2021. 2021. Available at: https://owasp.org/Top10/. Accessed on: 13 Apr. 2024.

OWASP FOUNDATION. OWASP Juice Shop project. 2023. Available at: https://owasp.org/www-project-juice-shop/. Accessed on: 13 Apr. 2024.

PENG, X.; CHEN, Z. Fuzz testing techniques and tools. ACM Computing Surveys, v. 52, n. 5, 2019. Available at: https://doi.org/10.1145/3335473. Accessed on: 13 Apr. 2024.

SCARFONE, Karen; MELL, Peter. Guide to intrusion detection and prevention systems. NIST Special Publication 800-94. 2007. Available at: https://nvlpubs.nist.gov. Accessed on: 13 Apr. 2024.

SHOSTACK, Adam. Threat modeling: designing for security. Indianapolis: Wiley, 2014. Available at: https://www.microsoft.com/en-us/securityengineering/sdl/threatmodeling. Accessed on: 13 Apr. 2024.

SOMMERVILLE, Ian. Software engineering. 10. ed. Boston: Pearson, 2016. Available at: https://www.pearson.com. Accessed on: 13 Apr. 2024.

STALLINGS, William; BROWN, Lawrie. Computer security: principles and practice. 4. ed. Boston: Pearson, 2018. Available at: https://www.pearson.com. Accessed on: 13 Apr. 2024.

VERIZON. 2023 data breach investigations report. 2023. Available at: https://www.verizon.com/business/resources/reports/dbir/. Accessed on: 13 Apr. 2024.

ZALDÍVAR, Alejandro et al. Coverage-guided fuzzing for complex software systems. IEEE Security & Privacy, v. 18, n. 4, 2020. Available at: https://doi.org/10.1109/MSEC.2020.2992210. Accessed on: 13 Apr. 2024.

U.S. HOUSE OF REPRESENTATIVES. The Equifax data breach. Committee on Oversight and Government Reform Report, 2018. Available at: https://oversight.house.gov. Accessed on: 13 Apr. 2024.

CNCF. Falco runtime security project. 2024. Available at: https://falco.org. Accessed on: 13 Apr. 2024.

OPEN INFORMATION SECURITY FOUNDATION. Suricata intrusion detection system documentation. 2024. Available at: https://suricata.io. Accessed on: 13 Apr. 2024.