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:是否可以在不引入过高开销到 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)维护的 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 = 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 集群组成的实验室环境中进行。
环境配置:
• 3 台 Dell R740 服务器
• 每个节点 128 GB RAM
• Kubernetes 1.28
实验数据集包含安全研究中广泛使用的、故意设置漏洞的应用程序。
• OWASP Juice Shop
• Damn Vulnerable Web Application (DVWA)
• 十个代表企业应用的内部微服务
评估指标包括:
• Precision
• Recall
• 平均检测时间(MTTD)
• 计算开销
观察结果如下:
• 平均 Recall:91,3%
• 平均 Precision:87,6%
• MTTD 降低:63,4%
• 平均开销:17,8%
方法比较:
| 方法 | Recall | 开销 |
|---|---|---|
| 独立 SAST | 72% | 9% |
| 独立 DAST | 81% | 14% |
| 所提混合方法 | 91,3% | 17,8% |
结果表明,当组合多种分析来源时,对可利用漏洞的识别能力有显著提升。
- 案例研究
我们在一款拥有约两百万活跃用户的金融科技应用中开展了案例研究。
该过程分为四个阶段:
- 执行初始 SAST 分析,得到 342 个潜在发现。
- 应用优先级排序模型,将集合缩减为 89 个关键漏洞。
- 通过 DAST 进行动态验证,确认了 41 个可利用漏洞。
- 运行时监控识别到一次真实的 SQL injection 利用尝试。
观察到,初始 SAST 发现中约 52% 属于误报或在运行环境中不可利用的漏洞。
运行时遥测使事件响应时间缩短了约 48%。
- 讨论
所得结果表明,整合多种安全分析机制可在识别可利用漏洞方面带来显著改进。
所提架构的主要贡献在于,能够在定量风险模型中关联静态分析、动态分析与运行时遥测的结果。
然而,仍需考虑若干局限。
首先,动态分析的有效性取决于测试期间达到的执行覆盖率。复杂应用可能包含在 fuzzing 过程中仍未被探索的、极少执行的路径。
此外,整合多种工具会引入额外的运营复杂性,需要结构良好的 CI/CD 流水线以及稳健的可观测性机制。
对于企业环境,建议与 SIEM 平台(如 Elastic Security 或 Splunk)集成,并采用基于 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.