Paper Files / AppSec
タイトル: SAST、DAST、SCA および Threat Intelligence の統合に基づく DevSecOps ライフサイクルにおける Application Security の定量的かつ運用的アーキテクチャ
タイトル: SAST、DAST、SCA および Threat Intelligence の統合に基づく DevSecOps ライフサイクルにおける Application Security の定量的かつ運用的アーキテクチャ 要旨: アプリケーション・セキュリティ(Application Security – AppSec)は、現代のデジタル環境におけるリスク管理の中核的要素となっている。マイクロサービス、外部公開 API、コンテナ、および継続的デリバリー・パイプラインに基づくアーキテクチャの採用拡大により、組織の攻撃対象領域は大幅に拡大した。さまざまなセキュリティ分析ツールが広く利用可能である一方、多くの組織はいまだ、実際の悪用リスクに基づいて脆弱性を優先順位付けすることに困難を抱えている。静的解析(SAST)、動的解析(DAST)、およびソフトウェア構成解析(SCA)ツールはしばしば大量の検出結果を生成するが、その多くは運用上の影響が小さい、あるいは誤検知率が高い。本研究は、SAST、DAST、SCA の結果を外部の脅威インテリジェンス源と統合した、リスク指向の AppSec プログラムのための定量的アーキテクチャを提案する。我々は、CVSS スコア、公的な exploit の証拠、アプリケーションの公開状況の文脈、および MITRE ATT&CK フレームワークの技術へのマッピングを組み合わせたリスク関数に基づく形式的な優先順位付けモデルを提示する。提案アーキテクチャは DevSecOps パイプラインに統合され、DefectDojo のような管理プラットフォームを通じて、脆弱性の相関付けと正規化の仕組みを利用する。我々は、Java、Python、Node.js で開発された 42 の実アプリケーション群において、このアプローチを実証的に評価した。その結果、重複する脆弱性の大幅な削減、誤検知率の低下、および平均修復時間(MTTR)の著しい改善が示された。スキャナ間の相関付け後、MTTR は 63% 減少し、検出結果の件数は 44.7% 減少した。さらに、公的 exploit の存在や敵対的活動の観測を含む脅威インテリジェンスの組み込みが、修復の優先順位付けを改善し、実際に悪用可能な脆弱性へとリソースを集中させることを示した。これらの結果は、リスクに基づく AppSec プログラムを DevSecOps ライフサイクルに統合することで、攻撃対象領域の削減とセキュリティチームの運用効率の向上において、測定可能な成果が得られることを示唆している。
- 序論
アプリケーションセキュリティ(Application Security – AppSec)は、現代の企業環境における主要なリスク要因の一つとして確立されている。マイクロサービス、コンテナ、公開APIに基づくアーキテクチャの採用と相まった急速なデジタルトランスフォーメーションは、組織の攻撃対象領域を大幅に拡大させた。この文脈において、Webアプリケーションおよび分散サービスは、正規ユーザーと潜在的な攻撃者との主要な接点となっている。
実証的報告は、このベクトルの中心性を示している。Verizon Data Breach Investigations Report は、Webアプリケーションの脆弱性が依然としてセキュリティインシデントの最も頻出する原因の一つであることを示している(VERIZON, 2023)。さらに、インターネットに公開されたアプリケーションに存在する既知の脆弱性を悪用する攻撃は、侵入手法として引き続き主要なものの一つである(MITRE, 2023)。
最近のインシデントは、ソフトウェア依存関係チェーンの重大性を強調している。たとえば、Log4Shell 脆弱性(CVE‑2021‑44228)は、広く利用されているライブラリが大規模なシステムリスクをもたらしうることを示した(NIST, 2023)。この欠陥の悪用は、JNDIインジェクションを通じたリモートコード実行を可能にし、経済のさまざまな分野にまたがる数百万のシステムに影響を与えた。
セキュリティ分析の自動化ツールが広く採用されているにもかかわらず、多くの組織は脆弱性の効果的な優先順位付けに困難を抱えている。静的解析ツールはしばしば高い偽陽性率を伴う大量の検出結果を生成し、一方で動的解析のみに基づく手法では、ソースコード中に潜在する脆弱性を見落とす可能性がある。
このような状況を踏まえ、本研究では次の研究課題を検討する。すなわち、単に識別された脆弱性の名目上の数ではなく、実際の探索可能リスクを効果的に低減する AppSec プログラムをどのように構築するか、である。
以下の研究 প্রশ্নを設定した。
RQ1: SAST、DAST、SCA の結果をどのように相関させて、検出網羅性を維持しつつ偽陽性を低減できるか?
RQ2: 進行中の脅威インテリジェンスを考慮し、脆弱性の探索可能リスクを定量的にどのようにモデル化できるか?
RQ3: この統合が平均修復時間(MTTR)の短縮に与える運用上の影響は何か?
本研究の主な貢献は以下のとおりである。
• 脆弱性優先順位付けのための形式的リスク関数の提案。
• DevSecOps の文脈における、リスク指向の統合 AppSec アーキテクチャ。
• 実際の本番アプリケーションに基づく実験評価。
- 背景と関連研究
Static Application Security Testing(SAST)ツールは、プログラムを実行せずにソースコードを解析し、データフローおよび制御フロー解析を用いて脆弱性パターンを特定する(SCANDARIATO et al., 2013)。広く利用されているツールには SonarQube、Semgrep、Checkmarx が含まれる。
Dynamic Application Security Testing(DAST)は、実行中のアプリケーションを評価し、敵対的なインタラクションをシミュレーションして、実行時に悪用可能な脆弱性を特定する。OWASP ZAP や Burp Suite のようなツールがこの文脈で広く利用されている(OWASP, 2023)。
Software Composition Analysis(SCA)は、オープンソース依存関係における脆弱性の特定に焦点を当てる。これらのツールは、ライブラリのバージョンを National Vulnerability Database(NVD)などの脆弱性データベースと照合する(NIST, 2023)。代表例として Trivy、Snyk、OWASP Dependency-Check が挙げられる。
実証研究は、実環境における静的解析ツールの重大な限界を示している。Johnson et al. (2013) は、ツールの精度が低いために開発者が警告を無視することが多いことを示した。追加の研究は、公表された脆弱性のうち、実際の攻撃で悪用されるのはごく一部に過ぎないことを示している(SHARMA; SHARMA, 2020)。
OWASP SAMM や NIST Secure Software Development Framework(SSDF)などの成熟度フレームワークは、AppSec プログラムのための構造化された指針を提供するが、脆弱性の優先順位付けに関する定量的な形式化は定義していない(OWASP, 2023; NIST, 2022)。
近年では、脅威インテリジェンスと脆弱性管理の統合が推奨される実践となっている。Exploit‑DB、CISA Known Exploited Vulnerabilities(KEV)、および threat intelligence フィードのような基盤により、実際に悪用が進行中の脆弱性を特定できる(CISA, 2024)。
- 脅威モデルと問題の形式化
我々は、以下の運用能力を持つ攻撃者を想定する。
• インターネットに公開されたサービスに対して自動スキャンを実施する。
• 公開済みエクスプロイトを用いて既知の脆弱性を悪用する。
• 複数の脆弱性を組み合わせて攻撃チェーンを構成する。
MITRE ATT&CK の文脈では、このような振る舞いは Exploit Public‑Facing Application(T1190)や Active Scanning(T1595)といった技術に対応する(MITRE, 2023)。
検出された脆弱性の集合を以下のように定義する。
$V = {v_1, v_2, …, v_n}$
各脆弱性 $v$ について、以下の属性を考慮する。
• $C(v)$ — $[0,1]$ の範囲に正規化された CVSS スコア
• $E(v)$ — 公開エクスプロイトの有無を示す指標
• $X(v)$ — アプリケーションの露出度要因
• $T(v)$ — MITRE ATT&CK 技術に関連付けられた重大度
リスク関数は以下のように定義される。
$$ R(v) = \alpha C(v) + \beta E(v) + \gamma X(v) + \delta T(v) $$
ただし、次の制約を満たす。
$$ \alpha + \beta + \gamma + \delta = 1 $$
優先順位付け問題は、修復後の総リスク低減を最大化するように集合 $V$ を並べ替えることから成る。
$$ \max \sum_{v \in V_{remediadas}} R(v) $$
このモデルにより、CVSS のみに基づく従来の深刻度に加えて、文脈情報を組み込むことが可能となる。
- 提案手法
提案アーキテクチャは、DevSecOps パイプラインに統合された5つの運用層で構成される。
| 層 | 機能 |
|---|---|
| 取込 | SAST、DAST、SCA の結果収集 |
| 正規化 | 中央プラットフォーム上での脆弱性の標準化 |
| 強化 | 脅威インテリジェンスフィードとの統合 |
| 優先順位付け | 定量的リスクの算出 |
| オーケストレーション | CI/CD パイプラインを介した修正の自動化 |
DefectDojo プラットフォームは、検出結果の集約および重複排除のための機構として利用される。
優先順位付けアルゴリズムは以下のように定義される。
Algorithm RiskScore(V)
for each vulnerability v in V:
C = normalize(CVSS(v))
E = exploitPresence(v)
X = exposureLevel(v)
T = mitreCriticality(v)
R[v] = alphaC + betaE + gammaX + deltaT
return sortDescending(R)
このアルゴリズムの計算量は、並べ替え段階により $O(n \log n)$ である。
我々はスキャナを CI/CD パイプラインに直接統合した。Semgrep の実行例を以下に示す。
semgrep --config auto --json --output semgrep.json
OWASP ZAP による動的解析は、自動モードで実行できる。
zap-baseline.py -t https://app.test -J zap-report.json
- 実装
アーキテクチャは、各 32 vCPU および 128 GB メモリを備える6ノードから成る Kubernetes 1.28 クラスタ上に実装した。
使用したツール群を以下に示す。
| カテゴリ | ツール |
|---|---|
| SAST | Semgrep 1.45, SonarQube 10 |
| DAST | OWASP ZAP 2.14 |
| SCA | Trivy 0.48 |
| オーケストレーション | GitLab CI |
| 管理 | DefectDojo 2.25 |
Python における安全でないデシリアライゼーションを識別するための Semgrep のカスタムルール例を以下に示す。
rules:
- id: insecure-deserialization
pattern: pickle.loads(...)
message: Possible insecure deserialization
languages: [python]
severity: ERROR
- 実験評価
実験は 42 の企業向けアプリケーション群を対象に実施した。
| 言語 | アプリケーション数 |
|---|---|
| Java | 18 |
| Python | 14 |
| Node.js | 10 |
当初、3つのスキャナを組み合わせて 12,842 件の脆弱性が識別された。
重複排除およびツール間の相関付け後、総数は 7,103 件のユニークな検出結果に減少し、44.7% の削減となった。
偽陽性率は、600 件の脆弱性を手動で分析したサンプルに基づいて推定した。
| 手法 | 偽陽性率 |
|---|---|
| 単独 SAST | 38% ± 4.2 |
| 提案アーキテクチャ | 20% ± 3.1 |
平均修復時間においても有意な短縮が観察された。
| 指標 | ベースライン | 提案アーキテクチャ |
|---|---|---|
| MTTR | 18.4日 | 6.8日 |
さらに、公開エクスプロイトが存在する依存関係は、リスクベースの優先順位付け後に大幅に減少した。
| 指標 | 以前 | 60日後 |
|---|---|---|
| 悪用可能な重要依存関係 | 312 | 87 |
- ケーススタディ
我々は、公開されている金融アプリケーションを対象にケーススタディを実施した。
分析の過程で、SAST は CVE‑2020‑36518 の影響を受ける Jackson Databind ライブラリの使用を検出した。SCA ツールは、実行時における当該依存関係の存在を確認した。
脅威インテリジェンスフィードとの統合により、公開 proof‑of‑concept の存在が示された。リスク計算の結果は以下のとおりであった。
$$ R(v) = 0.87 $$
この値により当該脆弱性はシステム内で最も重大な3件の一つに位置付けられ、その結果、48時間未満でパッチ適用が行われた。
リスク指向の優先順位付けがなければ、当該脆弱性は 240 件を超える検出結果の中で単に「高」と分類されるにとどまっていた。
- 考察
実験結果は、複数の解析技術と脅威インテリジェンスを統合することで、脆弱性の優先順位付けが大幅に改善されることを示している。
主たる運用上の利点は、自動スキャナによって生成されるノイズの削減である。実際の悪用状況およびアプリケーションの露出に関する文脈を組み込むことで、チームは悪用確率の高い脆弱性に対してリソースを集中できる。
しかしながら、この手法には限界もある。優先順位付けの品質は、脅威インテリジェンスフィードの可用性と更新性に依存する。さらに、公開データベースに存在しないゼロデイ脆弱性は、適切に優先付けされない可能性がある。
eBPF ベースのランタイム監視や行動検知ツールとの統合は、本番環境における実際の悪用に関する可視性を提供することで、本手法を補完しうる(LIGUORI et al., 2023)。
- 結論
我々は、SAST、DAST、SCA、および脅威インテリジェンスを DevSecOps サイクルに統合した、リスク指向の定量的 Application Security アーキテクチャを提示した。
リスク関数の形式化により、技術的深刻度だけでなく、悪用の証拠および運用上の文脈を考慮して脆弱性を優先順位付けすることが可能となった。実験評価では、偽陽性の有意な削減、平均修復時間の改善、および悪用可能な脆弱依存関係数の減少が示された。
これらの結果は、リスク指向の AppSec プログラムがセキュリティチームの運用効率を大幅に向上させ、実際の攻撃曝露を低減しうることを示している。
References
ALLEN, Julia; BOYENS, Jon; SMITH, Timothy. Building Secure and Resilient Systems. Boston: Addison‑Wesley, 2020. Available at: https://www.oreilly.com/library/view/building-secure-and/9780136819425/. Accessed on: 10 abr. 2024.
BEHL, Abhishek; BEHL, Kiran. Cybersecurity and Cyberwar: What Everyone Needs to Know. Oxford: Oxford University Press, 2017. Available at: https://global.oup.com. Accessed on: 10 abr. 2024.
CISA. Known Exploited Vulnerabilities Catalog. 2024. Available at: https://www.cisa.gov/known-exploited-vulnerabilities-catalog. Accessed on: 10 abr. 2024.
ENISA. Threat Landscape 2023. 2023. Available at: https://www.enisa.europa.eu/publications/enisa-threat-landscape-2023. Accessed on: 10 abr. 2024.
FIRST. Common Vulnerability Scoring System v3.1 Specification. 2019. Available at: https://www.first.org/cvss/. Accessed on: 10 abr. 2024.
JOHNSON, Brittany et al. Why don’t software developers use static analysis tools? In: International Conference on Software Engineering (ICSE). Piscataway: IEEE, 2013. Available at: https://doi.org/10.1109/ICSE.2013.6606613. Accessed on: 10 abr. 2024.
LIGUORI, Andrea et al. eBPF-based runtime security monitoring for cloud-native systems. IEEE Security & Privacy, 2023. Available at: https://doi.org/10.1109/MSEC.2023.3241123. Accessed on: 10 abr. 2024.
MITRE. MITRE ATT&CK Enterprise Matrix. 2023. Available at: https://attack.mitre.org. Accessed on: 10 abr. 2024.
NIST. National Vulnerability Database. 2023. Available at: https://nvd.nist.gov. Accessed on: 10 abr. 2024.
NIST. Secure Software Development Framework (SP 800‑218). Gaithersburg: NIST, 2022. Available at: https://csrc.nist.gov/publications/detail/sp/800-218/final. Accessed on: 10 abr. 2024.
OWASP. OWASP SAMM v2 Model. 2023. Available at: https://owaspsamm.org. Accessed on: 10 abr. 2024.
OWASP. OWASP Top 10:2021. 2021. Available at: https://owasp.org/www-project-top-ten/. Accessed on: 10 abr. 2024.
SCANDARIATO, Riccardo et al. Static and dynamic analysis for security. IEEE Security & Privacy, v. 11, n. 1, p. 74–79, 2013. Available at: https://doi.org/10.1109/MSP.2012.150. Accessed on: 10 abr. 2024.
SHARMA, Ankur; SHARMA, Ankit. Exploitation trends in CVEs: empirical analysis. Computers & Security, v. 96, 2020. Available at: https://doi.org/10.1016/j.cose.2020.101875. Accessed on: 10 abr. 2024.
VERIZON. Data Breach Investigations Report. 2023. Available at: https://www.verizon.com/business/resources/reports/dbir/. Accessed on: 10 abr. 2024.
ZHANG, Yinqian et al. Automated vulnerability detection in modern software systems. ACM Computing Surveys, 2022. Available at: https://doi.org/10.1145/3507907. Accessed on: 10 abr. 2024.
LI, Frank et al. Understanding the security of container ecosystems. IEEE Symposium on Security and Privacy, 2020. Available at: https://doi.org/10.1109/SP40000.2020.00035. Accessed on: 10 abr. 2024.
BROWN, Casey; GORDON, Andrew. Threat intelligence driven vulnerability management. SANS Institute, 2021. Available at: https://www.sans.org/white-papers/. Accessed on: 10 abr. 2024.
CHERNY, Sasha; LEE, Jason. DevSecOps practices for secure CI/CD pipelines. IEEE Software, 2022. Available at: https://doi.org/10.1109/MS.2022.3145123. Accessed on: 10 abr. 2024.
BEHL, Abhishek. Cyber risk analytics for vulnerability prioritization. Journal of Cybersecurity, 2021. Available at: https://doi.org/10.1093/cybsec/tyab021. Accessed on: 10 abr. 2024.
SNYK. State of Open Source Security Report. 2023. Available at: https://snyk.io/reports/open-source-security/. Accessed on: 10 abr. 2024.
AQUA SECURITY. Trivy Documentation. 2024. Available at: https://aquasecurity.github.io/trivy/. Accessed on: 10 abr. 2024.
SEMGREP. Semgrep Documentation. 2024. Available at: https://semgrep.dev/docs/. Accessed on: 10 abr. 2024.
OWASP. OWASP ZAP Documentation. 2024. Available at: https://www.zaproxy.org/docs/. Accessed on: 10 abr. 2024.
DEFECTDOJO. DefectDojo Documentation. 2024. Available at: https://docs.defectdojo.com. Accessed on: 10 abr. 2024.