Paper Files / AppSec
标题:一种基于正式威胁建模、SAST/DAST/SCA 集成以及 DevSecOps 环境中运行时遥测的定量 Application Security 架构
标题:一种基于正式威胁建模、SAST/DAST/SCA 集成以及 DevSecOps 环境中运行时遥测的定量 Application Security 架构 摘要:对 Web 应用、API 和基于微服务的架构日益增长的依赖,显著扩大了现代系统的攻击面。近期事件报告表明,暴露于互联网的应用程序被利用仍然是最常见的入侵向量之一,攻击者通常利用已知的库漏洞、输入验证缺陷或不当配置。尽管静态分析(SAST)、动态分析(DAST)以及软件组成分析(SCA)等应用安全工具已广泛用于 DevSecOps 管道,但这些机制通常以碎片化方式运行,且缺乏一种能够估计系统残余风险的定量框架。本文提出一种集成式 Application Security 架构,基于正式威胁建模、多源分析结果聚合以及运行时实时遥测的引入。我们将漏洞优先级排序问题形式化为一个加权残余风险最小化过程,其中每个漏洞都依据可利用性概率、潜在影响和运行上下文等指标进行评估。所提出的架构将静态、动态和依赖关系分析工具与安全可观测性机制相集成,包括运行时行为检测和持续事件采集。我们在一个由故意设计为存在漏洞的应用程序和运行于容器化基础设施中的真实微服务组成的环境中,对该方法进行了实验评估。结果表明,该方法在识别实际可利用漏洞方面能力显著提升,平均召回率提高至 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.47 亿人个人数据泄露的攻击中被利用(U.S. HOUSE OF REPRESENTATIVES, 2018)。
尽管安全工具被广泛采用,Application Security 项目通常仍以碎片化方式运行。静态代码分析(SAST)工具识别源代码中潜在不安全的模式;动态分析(DAST)工具测试运行中的应用程序;软件成分分析(SCA)解决方案识别存在漏洞的依赖项。然而,这些机制通常产生孤立的结果,缺乏一种能够整合异构证据并估计系统残余风险的定量框架。
在此背景下,我们提出以下研究问题:
RQ1:如何在考虑多种漏洞检测来源的情况下,对应用程序的残余风险进行定量建模?
RQ2:是否能够在不引入过高开销的前提下,显著降低平均检测时间(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)维护的 OWASP Top 10 是最常用于对 Web 应用中最关键缺陷进行分类的参考之一(OWASP FOUNDATION, 2021)。其中反复出现的类别包括注入、访问控制失效、不安全配置以及与依赖项相关的漏洞。
在静态分析背景下,基于数据流分析和依赖图的技术已被广泛用于识别源代码中的漏洞(CHESS; WEST, 2007)。诸如 CodeQL 之类的现代工具利用代码中间表示上的语义查询,从而能够检测复杂的漏洞模式(MICROSOFT, 2023)。
另一方面,动态分析采用 fuzzing 和自动化利用技术来识别应用程序执行期间的缺陷。基于覆盖率引导的 fuzzing 已在复杂软件漏洞发现方面展现出较高有效性(ZALDÍVAR et al., 2020)。
然而,多项研究指出,这些方法在单独使用时存在重要局限。
• SAST 工具往往具有较高的误报率(BACA; CARLSSON, 2011)。
• DAST 工具的执行路径覆盖范围有限。
• SCA 工具依赖于最新漏洞数据库的可用性。
随着 DevSecOps 实践的发展,将安全性融入整个开发生命周期已成为核心目标。shift-left security 概念强调在开发阶段尽早识别漏洞(MYERS; SANDERS, 2020)。然而,鲜有工作形式化地探讨多种分析技术与运行遥测的集成,以在近实时条件下估计残余风险。
- 威胁模型与问题形式化
我们假设对手 $\mathcal{A}$ 在暴露于互联网的应用场景下具备现实可行的能力。对手可通过 HTTP 或 HTTPS 进行远程访问,能够发送任意请求,并利用潜在的验证缺陷或应用逻辑缺陷。
形式化地,假设对手具有如下能力:
- 通过公共接口远程访问应用程序。
- 能够发送任意 payload 并操纵请求参数。
- 对系统架构具有部分了解,这与部分白盒场景或代码泄露场景一致。
对手的目标是最大化与漏洞利用相关的收益 $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 流水线中安全分析的总执行时间。
所提架构应满足三个基本性质:
• 正确性:关键漏洞应以高概率被检测到。
• 效率:计算开销应保持在 20% 以下。
• 可扩展性:优先级排序算法的复杂度应为 $O(n \log n)$。
- 所提方法
所提架构由四个主要安全分析层构成。
- 使用 Semgrep 和 SonarQube 等工具进行代码采集与静态分析。
- 使用 OWASP ZAP 或 Burp Suite 等 DAST 扫描器进行动态应用分析。
- 进行软件成分分析(SCA),以识别存在漏洞的依赖项。
- 基于可观测性和行为检测的运行时安全遥测。
漏洞优先级排序过程通过风险聚合算法完成。
算法 1:漏洞优先级排序
Input: V = detected vulnerabilities set
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 流水线中的并行分析阶段实现。
- 实现
实验实现采用了以下与 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 集群组成的实验室环境中进行。
环境配置:
• 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% |
结果表明,当组合多种分析来源时,识别可利用漏洞的能力显著提升。
- 案例研究
我们在一个约有 200 万活跃用户的金融科技应用中开展了案例研究。
过程分为四个阶段:
- 执行初始 SAST 分析,得到 342 个潜在发现。
- 应用优先级排序模型,将集合缩减为 89 个关键漏洞。
- 通过 DAST 进行动态验证,确认 41 个可利用漏洞。
- 运行时监控识别出一次真实的 SQL injection 利用尝试。
观察到,初始 SAST 发现中约有 52% 属于误报,或在运行环境中不可利用的漏洞。
运行时遥测使事件响应时间缩短了约 48%。
- 讨论
所得结果表明,多种安全分析机制的集成,可在识别可利用漏洞方面带来显著改进。
所提架构的主要贡献在于:能够在定量风险模型中关联静态分析、动态分析与运行遥测的结果。
然而,仍需考虑若干局限性。
首先,动态分析的有效性取决于测试期间达到的执行覆盖率。复杂应用可能存在较少执行的路径,而这些路径在 fuzzing 过程中仍未被探索。
此外,集成多种工具会引入额外的运行复杂性,这要求具备良好结构的 CI/CD 流水线以及稳健的可观测机制。
对于企业环境,建议与 Elastic Security 或 Splunk 等 SIEM 平台集成,并采用基于 STRIDE 等方法学的持续威胁建模(SHOSTACK, 2014)。
- 结论
本文提出了一种基于静态分析、动态分析、依赖分析和执行遥测集成的应用安全定量架构。
我们证明,将漏洞优先级排序问题形式化为残余风险最小化,有助于将异构证据整合为统一的决策模型。
实验结果表明,混合方法显著提升了识别可利用漏洞的能力,同时降低了平均检测时间,而不会引入显著的运行开销。
在现代持续开发环境和分布式架构中,运行可观测性与代码分析的集成,已成为有效 Application Security 项目的关键要素。
参考文献
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.