Paper Files / AppSec
形式的脅威モデリング、SAST/DAST/SCA の統合、および DevSecOps 環境におけるランタイム・テレメトリに基づく定量的な Application Security アーキテクチャ
TITLE: 形式的脅威モデリング、SAST/DAST/SCA の統合、および DevSecOps 環境におけるランタイム・テレメトリに基づく定量的な Application Security アーキテクチャ ABSTRACT: Webアプリケーション、API、およびマイクロサービスベースのアーキテクチャへの依存の高まりにより、現代システムの攻撃対象領域は大幅に拡大している。近年のインシデント報告は、インターネットに公開されたアプリケーションの悪用が、依然として最も頻繁な侵入ベクトルの一つであり、ライブラリに存在する既知の脆弱性、入力検証の不備、または不適切な設定をしばしば突いていることを示している。静的解析(SAST)、動的解析(DAST)、ソフトウェア構成分析(SCA)といったアプリケーション・セキュリティ・ツールは DevSecOps パイプラインで広く利用されているものの、これらの機構は通常、断片的に動作し、システムの残留リスクを推定するための定量的な枠組みを欠いている。本研究は、形式的脅威モデリング、多様な分析ソースから得られる結果の集約、および実行時テレメトリの組み込みに基づく統合的な Application Security アーキテクチャを提案する。我々は、脆弱性の優先順位付け問題を、重み付けされた残留リスクの最小化プロセスとして定式化し、各脆弱性を悪用可能性の確率、潜在的影響、および運用コンテキストの指標から評価する。提案アーキテクチャは、静的解析、動的解析、および依存関係解析のツールを、セキュリティ観測機構と統合し、ランタイムにおける行動ベースの検知および継続的なイベント収集を含む。われわれは、このアプローチを、意図的に脆弱なアプリケーションと、コンテナ化されたインフラ上で稼働する実際のマイクロサービスからなる環境で実験的に評価した。結果は、実際に悪用可能な脆弱性を識別する能力が有意に向上したことを示し、単独アプローチと比較して平均 recall が 91.3% に向上し、平均検知時間(MTTD)が 63.4% 短縮された。観測された計算オーバーヘッドは 20% 未満にとどまり、現代の CI/CD パイプラインの運用要件と整合的であった。さらに、コード解析、運用監視、および脅威インテリジェンスの統合の重要性を強調しつつ、企業向け AppSec プログラムへの示唆を議論する。提案アーキテクチャは、形式的モデリングとランタイム・テレメトリの組み合わせが、現代ソフトウェアシステムにおける文脈化された脆弱性優先順位付けと、残留リスクの効果的な低減のための堅牢な基盤を提供することを示している。
- はじめに
現代の攻撃対象領域は、主として 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)。
セキュリティツールが広く採用されているにもかかわらず、Application Security プログラムはしばしば断片的に運用されている。静的コード解析(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 節で本研究を結論づける。
- 背景と関連研究
アプリケーションセキュリティは、ソフトウェアシステムにおける機密性($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)。しかしながら、複数の解析技術と運用テレメトリを統合し、ほぼリアルタイムで残余リスクを推定することを形式的に扱った研究は少ない。
- 脅威モデルと問題の定式化
我々は、インターネット公開アプリケーションの文脈において現実的な能力を持つ攻撃者 $\mathcal{A}$ を仮定する。攻撃者は HTTP または HTTPS を介したリモートアクセスを有し、任意のリクエストを送信し、潜在的な入力検証不備やアプリケーションロジックの欠陥を悪用できる。
形式的には、攻撃者は以下の能力を有すると考える。
- 公開インターフェースを通じたアプリケーションへのリモートアクセス。
- 任意のペイロードを送信し、リクエストパラメータを操作する能力。
- 部分的なシステム構成の知識。これは、部分的ホワイトボックスまたはコード開示のシナリオと整合的である。
攻撃者の目的は、脆弱性の悪用に関連する利得 $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)$ の計算量を持つべきである。
- 提案手法
提案アーキテクチャは、4 つの主要なセキュリティ分析層で構成される。
- Semgrep や SonarQube などのツールを用いたコードの収集と静的解析。
- OWASP ZAP や Burp Suite などの DAST スキャナを用いたアプリケーションの動的解析。
- 脆弱な依存関係を特定するための Software Composition Analysis(SCA)。
- 可観測性と行動検知に基づく実行時セキュリティ・テレメトリ。
脆弱性の優先順位付けは、リスク集約アルゴリズムによって実行される。
アルゴリズム 1: 脆弱性の優先順位付け
Input: V = conjunto de vulnerabilidades detectadas
Output: lista ordenada 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 パイプライン内で実施される。
- 実装
実験実装では、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 以上の脆弱性が識別された場合にマージをブロックするよう構成した。
- 実験評価
実験評価は、仮想化インフラと Kubernetes クラスタから成る実験室環境で実施した。
環境構成:
• Dell R740 サーバ 3 台
• ノードごとに 128 GB の RAM
• Kubernetes 1.28
実験データセットには、セキュリティ研究で広く利用される意図的に脆弱なアプリケーションを含めた。
• OWASP Juice Shop
• Damn Vulnerable Web Application (DVWA)
• 企業アプリケーションを代表する 10 個の内部マイクロサービス
評価した指標は以下のとおりである。
• Precision
• Recall
• 平均検出時間(MTTD)
• 計算オーバーヘッド
観測された結果:
• 平均 Recall: 91.3%
• 平均 Precision: 87.6%
• MTTD の削減: 63.4%
• 平均オーバーヘッド: 17.8%
手法間比較:
| 手法 | Recall | Overhead |
|---|---|---|
| 単独 SAST | 72% | 9% |
| 単独 DAST | 81% | 14% |
| 提案ハイブリッド手法 | 91.3% | 17.8% |
結果は、複数の分析ソースを組み合わせることで、実際に悪用可能な脆弱性を識別する能力が大幅に向上することを示している。
- ケーススタディ
我々は、約 200 万人のアクティブユーザーを有するフィンテックアプリケーションにおいてケーススタディを実施した。
プロセスは 4 段階で進行した。
- 初期 SAST 分析を実行し、342 件の潜在的検出を得た。
- 優先順位付けモデルを適用し、集合を 89 件の重大な脆弱性に削減した。
- DAST による動的検証を行い、41 件の悪用可能な脆弱性を確認した。
- 実行時モニタリングにより、SQL インジェクションの実際の悪用試行を検知した。
初期 SAST の検出結果の約 52% は、偽陽性または運用コンテキストでは悪用不能な脆弱性に対応していることが観察された。
実行時テレメトリにより、インシデント対応時間は約 48% 短縮された。
- 考察
得られた結果は、複数のセキュリティ分析機構の統合が、実際に悪用可能な脆弱性の識別において大幅な改善をもたらすことを示している。
提案アーキテクチャの主要な貢献は、静的解析、動的解析、および運用テレメトリの結果を定量的リスクモデル内で相関付ける能力にある。
しかしながら、いくつかの制約を考慮する必要がある。
第一に、動的解析の有効性は、テスト中に達成される実行カバレッジに依存する。複雑なアプリケーションでは、まれにしか実行されない経路が存在し、ファジング中に未探索のまま残る可能性がある。
さらに、複数ツールの統合は追加の運用複雑性を導入し、十分に構造化された CI/CD パイプラインと堅牢な可観測性機構を必要とする。
企業環境では、Elastic Security や Splunk などの SIEM プラットフォームとの統合に加え、STRIDE のような方法論に基づく継続的な脅威モデリングの採用が推奨される(SHOSTACK, 2014)。
- 結論
本研究は、静的解析、動的解析、依存関係解析、実行テレメトリの統合に基づく、Application Security のための定量的アーキテクチャを提示した。
我々は、脆弱性優先順位付け問題を残余リスク最小化として定式化することで、異種の証拠を統一的な意思決定モデルに統合できることを示した。
実験結果は、ハイブリッド手法が実際に悪用可能な脆弱性を識別する能力を有意に向上させると同時に、運用上のオーバーヘッドを大きく増加させることなく平均検出時間を短縮することを示している。
継続的開発と分散アーキテクチャが主流の現代環境において、運用可観測性とコード解析の統合は、効果的な Application Security プログラムに不可欠な要素となる。
References
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 abr. 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 abr. 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 abr. 2024.
BEHL, Abhishek. Cybersecurity analytics. Boca Raton: CRC Press, 2017. Available at: https://www.routledge.com. Accessed on: 13 abr. 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 abr. 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 abr. 2024.
FIRST. Common Vulnerability Scoring System v3.1 specification. 2019. Available at: https://www.first.org/cvss/. Accessed on: 13 abr. 2024.
GREEN, Matthew; SMITH, Matthew. The cryptopals crypto challenges. 2018. Available at: https://cryptopals.com. Accessed on: 13 abr. 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 abr. 2024.
MICROSOFT. CodeQL documentation. 2023. Available at: https://codeql.github.com/docs/. Accessed on: 13 abr. 2024.
MITRE. MITRE ATT&CK framework. 2024. Available at: https://attack.mitre.org. Accessed on: 13 abr. 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 abr. 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 abr. 2024.
OWASP FOUNDATION. OWASP Top 10:2021. 2021. Available at: https://owasp.org/Top10/. Accessed on: 13 abr. 2024.
OWASP FOUNDATION. OWASP Juice Shop project. 2023. Available at: https://owasp.org/www-project-juice-shop/. Accessed on: 13 abr. 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 abr. 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 abr. 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 abr. 2024.
SOMMERVILLE, Ian. Software engineering. 10. ed. Boston: Pearson, 2016. Available at: https://www.pearson.com. Accessed on: 13 abr. 2024.
STALLINGS, William; BROWN, Lawrie. Computer security: principles and practice. 4. ed. Boston: Pearson, 2018. Available at: https://www.pearson.com. Accessed on: 13 abr. 2024.
VERIZON. 2023 data breach investigations report. 2023. Available at: https://www.verizon.com/business/resources/reports/dbir/. Accessed on: 13 abr. 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 abr. 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 abr. 2024.
CNCF. Falco runtime security project. 2024. Available at: https://falco.org. Accessed on: 13 abr. 2024.
OPEN INFORMATION SECURITY FOUNDATION. Suricata intrusion detection system documentation. 2024. Available at: https://suricata.io. Accessed on: 13 abr. 2024.