Paper Files / AppSec
タイトル: 形式的脅威モデリング、SAST/DAST/SCAの統合、およびDevSecOps環境におけるランタイム・テレメトリに基づく定量的Application Securityアーキテクチャ
タイトル: 形式的脅威モデリング、SAST/DAST/SCAの統合、およびDevSecOps環境におけるランタイム・テレメトリに基づく定量的Application Securityアーキテクチャ 要旨: Webアプリケーション、API、およびマイクロサービスベースのアーキテクチャへの依存の増大は、現代システムの攻撃対象領域を大幅に拡大させた。近年のインシデント報告は、インターネットに公開されたアプリケーションの悪用が、依然として最も頻繁な侵入ベクトルの一つであることを示しており、その多くはライブラリ内の既知の脆弱性、入力検証の不備、または不適切な設定を悪用している。静的解析(SAST)、動的解析(DAST)、ソフトウェア構成分析(SCA)などのアプリケーションセキュリティツールはDevSecOpsパイプラインで広く利用されているが、これらの機構は通常、断片的に動作し、システムの残留リスクを推定するための定量的枠組みを欠いている。本研究は、形式的な脅威モデリング、複数の分析ソースから得られる結果の集約、および実行時テレメトリの組み込みに基づく統合型Application Securityアーキテクチャを提案する。われわれは、脆弱性の優先順位付け問題を、加重残留リスク最小化プロセスとして定式化し、各脆弱性を悪用可能性、潜在的影響、および運用コンテキストのメトリクスに基づいて評価する。提案アーキテクチャは、静的解析、動的解析、および依存関係分析ツールを、ランタイムでの行動ベース検知や継続的イベント収集を含むセキュリティ可観測性の仕組みと統合する。われわれは、この手法を、意図的に脆弱に作成されたアプリケーションと、コンテナ化インフラ上で稼働する実際のマイクロサービスから構成される環境で実験的に評価した。結果は、実際に悪用可能な脆弱性の特定能力が有意に向上したことを示し、平均recallは91,3%に達し、孤立したアプローチと比較して平均検知時間(MTTD)は63,4%短縮された。観測された計算オーバーヘッドは20%未満にとどまり、現代のCI/CDパイプラインの運用要件と整合的であった。さらに、コード解析、運用監視、脅威インテリジェンスの統合の重要性を強調しつつ、企業向け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 億 4,700 万人の個人データを侵害したインシデントで悪用された(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 節で本研究を結論づける。
2. 背景と関連研究
アプリケーションセキュリティは、機密性($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)。しかし、複数の解析技術と運用テレメトリを統合し、ほぼリアルタイムで残余リスクを推定することを形式的に探究した研究は少ない。
3. 脅威モデルと問題の定式化
我々は、インターネットに公開されたアプリケーションの文脈において現実的な能力を持つ攻撃者 $\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. 提案手法
提案アーキテクチャは、4 つの主要なセキュリティ分析層で構成される。
- Semgrep や SonarQube のようなツールを用いたコードの収集および静的解析。
- OWASP ZAP や Burp Suite のような DAST スキャナを用いたアプリケーションの動的解析。
- 脆弱な依存関係の特定のためのソフトウェア構成解析(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 パイプライン内で実施される。
5. 実装
実験実装では、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 以上の脆弱性が特定された場合にマージをブロックするよう構成された。
6. 実験評価
実験評価は、仮想化インフラと Kubernetes クラスタから成るラボ環境で実施された。
環境構成:
• 3 台の Dell R740 サーバ
• ノードあたり 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% |
結果は、複数の分析ソースを組み合わせることで、実際に悪用可能な脆弱性を特定する能力が大幅に向上することを示している。
7. ケーススタディ
我々は、約 200 万人のアクティブユーザを有するフィンテックアプリケーションにおいてケーススタディを実施した。
プロセスは 4 段階で進行した。
- 初期 SAST 解析を実行し、342 件の潜在的検出を得た。
- 優先順位付けモデルを適用し、集合を 89 件の重大脆弱性に縮減した。
- DAST による動的検証を行い、41 件の悪用可能な脆弱性を確認した。
- 実行時モニタリングにより、SQL injection の実際の悪用試行を検知した。
初期 SAST 検出の約 52% が、偽陽性または運用コンテキストにおいて悪用不可能な脆弱性に相当することが観察された。
実行時テレメトリにより、インシデント対応時間は約 48% 短縮された。
8. 議論
得られた結果は、複数のセキュリティ分析メカニズムの統合が、悪用可能な脆弱性の特定において実質的な改善をもたらすことを示している。
提案アーキテクチャの主たる貢献は、静的解析、動的解析、および運用テレメトリの結果を定量的リスクモデルの中で相関付ける能力にある。
しかし、いくつかの限界を考慮する必要がある。
第一に、動的解析の有効性は、テスト中に達成される実行カバレッジに依存する。複雑なアプリケーションでは、ファジング中に探索されないまま残る稀な実行経路が存在しうる。
さらに、複数ツールの統合は追加の運用複雑性を導入し、十分に構造化された CI/CD パイプラインと堅牢な可観測性機構を必要とする。
企業環境に対しては、Elastic Security や Splunk のような SIEM プラットフォームとの統合に加え、STRIDE のような方法論に基づく継続的脅威モデリングの採用を推奨する(SHOSTACK, 2014)。
9. 結論
本研究では、静的解析、動的解析、依存関係解析、および実行テレメトリの統合に基づく、アプリケーションセキュリティのための定量的アーキテクチャを提示した。
脆弱性優先順位付け問題を残余リスク最小化として定式化することで、異種の証拠を統一的な意思決定モデルに統合できることを示した。
実験結果は、ハイブリッド手法が悪用可能な脆弱性を特定する能力を大幅に向上させると同時に、顕著な運用オーバーヘッドを導入することなく平均検知時間を短縮することを示している。
継続的開発と分散アーキテクチャが主流となる現代環境において、運用可観測性とコード解析の統合は、効果的な 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.