Paper Files / AppSec
标题:基于证据的AppSec:一个形式化且可扩展的框架,用于基于威胁建模和持续混合分析的应用安全编排
标题:基于证据的AppSec:一个形式化且可扩展的框架,用于基于威胁建模和持续混合分析的应用安全编排 摘要:由于对分布式架构、微服务、公开API以及复杂的开源依赖链的日益依赖,应用安全已成为现代网络安全的核心组成部分。当代系统的攻击面与组件之间的互联程度成比例增长,这使得仅孤立分析漏洞的传统方法显得不足。在当代DevSecOps环境中,静态分析(SAST)、动态分析(DAST)和软件组成分析(SCA)等工具会产生大量告警,且常常表现出较高的误报率和不恰当的风险优先级排序。本文提出一个名为EO-AppSec(Evidence-Oriented Application Security,面向证据的应用安全)的正式框架,它将多种安全证据来源整合到一个统一的概率模型中,以实现漏洞优先级排序。我们使用贝叶斯推断结合上下文化的CVSS度量以及由有向图表示的组件依赖建模,对该问题进行了形式化。该框架关联SAST、DAST和SCA工具的结果,以及运行时遥测,以估计漏洞被利用的概率并计算条件风险评分。所提出的架构集成了CI/CD流水线和云原生基础设施,包括Kubernetes环境以及基于eBPF的可观测性平台和现代遥测技术栈。我们在一个包含47个应用程序、约320万行代码的工业环境中评估了该系统,并将其与基于孤立分析的传统方法进行了比较。结果表明,漏洞优先级排序的准确性显著提高(0.89),误报减少了42.3%,同时平均修复时间从14.2天降至8.7天。我们讨论了对软件安全治理以及与当代安全框架集成的实际影响,包括NIST Secure Software Development Framework以及DevSecOps流水线中的现代安全实践。我们还分析了方法学上的局限性,以及对纳入人工智能组件和大语言模型的现代应用环境的影响。结果表明,基于证据的编排为减少运行噪声并提升工业规模AppSec项目的有效性提供了一条可行路径。
- 引言
应用安全(Application Security — AppSec)已成为当代网络韧性的支柱之一。向分布式架构、云原生平台、公共 API 和 DevSecOps 流水线的迁移,显著扩大了现代系统的攻击面。实证报告表明,可被利用的应用漏洞仍然是安全事件的主要成因之一(VERIZON, 2023)。
尤其是,开源依赖链引入了系统性风险。与 Log4Shell 漏洞(CVE‑2021‑44228)相关的事件表明,一个被广泛使用的单一库即可同时影响数百万系统(MITRE, 2021)。此外,在 Web 应用中被利用的漏洞仍然是主导性的入侵向量,且通常与 MITRE ATT&CK 矩阵中编目的技术相关,如 T1190(Exploit Public‑Facing Application)和 T1059(Command and Scripting Interpreter)(MITRE, 2023)。
现代应用的结构可以形式化为一个有向图:
$$ G = (V, E) $$
其中 $V$ 表示软件组件(服务、库或 API),$E$ 表示这些组件之间的依赖关系或数据流。在基于微服务的架构中,随着服务被集成,边的数量迅速增长,按比例扩大了攻击面。尽管结构复杂度近似以 $O(|E|)$ 增长,许多安全工具却将每个顶点孤立分析,而不考虑依赖关系。
传统的 AppSec 工具包括静态代码分析(SAST)、动态分析(DAST)以及软件组成分析(SCA)。尽管这些方法被广泛使用,但它们往往产生碎片化且难以进行运营优先级排序的结果(ANTUNES; VIEIRA, 2010)。缺乏将来自这些工具的证据进行关联的形式化机制,会导致高比例的误报,并难以判断哪些漏洞构成真实风险。
此外,近年来集成人工智能模型和基于大语言模型(LLMs)的 API 的应用不断增长,引入了新的攻击面,例如提示注入和敏感数据的无意泄露。尽管这些威胁并不取代经典漏洞,但它们进一步凸显了对集成化、证据驱动分析机制的需求(OWASP, 2023)。
在此背景下,我们提出以下研究问题:
RQ1: 如何基于来自多个分析源的异构证据,对应用漏洞风险进行形式化建模?
RQ2: 是否可以在不损害检测覆盖率的前提下降低误报并改进漏洞优先级排序?
RQ3: 基于概率风险的持续编排对 DevSecOps 流水线的运营影响是什么?
本文的贡献有三点。
首先,我们基于贝叶斯推断和上下文化的 CVSS 指标,正式定义了一个条件风险函数。
其次,我们提出了 EO‑AppSec 架构,该架构将 SAST、DAST、SCA 和运行时遥测结果集成到一个概率相关机制中。
第三,我们在工业规模上对该系统进行了实证评估,证明其在漏洞优先级排序和修复流程运营效率方面具有显著的量化改进。
- 背景与相关工作
2.1 漏洞评估的形式化基础
我们将一个漏洞形式化为一个三元组:
$$ v = (c, s, e) $$
其中 $c$ 表示漏洞类别(例如 CWE 分类),$s$ 表示根据 CVSS 得出的基础严重性,$e$ 表示来自分析工具或运行时遥测的可观测证据集合。
与漏洞相关的风险可以建模为:
$$ R(v) = P(E \mid v) \cdot I(v) $$
其中 $P(E \mid v)$ 表示在已观察到证据条件下被利用的概率,$I(v)$ 表示利用所导致的潜在影响。
利用贝叶斯推断,被利用的后验概率可以动态更新:
$$ P(v \mid E) = \frac{P(E \mid v) P(v)}{P(E)} $$
该模型允许结合多种证据来源,包括扫描器结果、运行时数据以及漏洞利用历史。
2.2 检测工具与方法
漏洞检测技术可分为四个主要类别。
| 方法 | 特点 | 工具示例 |
|---|---|---|
| SAST | 无需执行的源代码分析 | SonarQube, Coverity |
| DAST | 运行环境中的动态测试 | OWASP ZAP, Burp Suite |
| SCA | 易受攻击依赖项识别 | Snyk, Dependabot |
| Runtime/Observability | 执行遥测与行为分析 | eBPF observability, Falco |
SAST 工具分析数据流和潜在不安全的代码模式(CHESS; WEST, 2007)。DAST 工具则针对运行中的应用执行自动化测试,以识别可被利用的漏洞(OWASP, 2021)。SCA 工具识别开源依赖链中的易受攻击库。
尽管这些技术被广泛采用,实证研究表明,不同工具在准确率和覆盖率方面存在显著差异(ANTUNES; VIEIRA, 2010)。这种异质性强化了证据关联机制的必要性。
2.3 云原生环境中的安全
云原生架构为 AppSec 带来了额外挑战。应用通常部署在 Kubernetes 集群中,具有动态依赖和自动扩缩容特性。现代云安全平台,通常被归类为 CNAPP(Cloud‑Native Application Protection Platform),旨在整合基础设施、工作负载和应用的安全能力(SCARFONE; PADGETT, 2022)。
此外,基于 eBPF 的可观测性技术能够直接从 Linux 内核收集低层次遥测,从而更精确地检测异常活动的行为特征(HÖGSTRÖM, 2023)。
2.4 现有方法的局限性
文献识别出当代 AppSec 系统的三项主要局限。
首先,缺乏统一的概率模型来整合来自不同工具的证据。
其次,误报率较高,在工业环境中可能超过 60%(JOHNSON et al., 2013)。
第三,缺乏基于真实被利用概率的优先级排序,这往往导致修复资源分配效率低下。
- 威胁模型与问题形式化
我们假设攻击者具有以下能力:
• 利用已公开已知的漏洞(CVE)
• 对暴露在外的应用进行自动化扫描
• 利用 Web 服务和公共 API
• 执行 ATT&CK 矩阵中编目的技术,例如 T1190、T1059 和 T1071
我们不假设对内部用户的初始入侵,也不假设事先拥有特权访问。
给定一个漏洞集合:
$$ V = {v_1, v_2, …, v_n} $$
我们的目标是选择一个最优子集 $V^$,用于优先修复的漏洞:
$$ V^ = \arg\max_{S \subseteq V} \sum_{v \in S} R(v) $$
并满足预算约束:
$$ C(S) \le B $$
其中 $C(S)$ 表示所选漏洞的修复成本,$B$ 表示可用预算。
该问题等价于经典 0‑1 背包优化问题的一个变体。
安全标准包括:
• 最小化残余风险
• 保持最低检测覆盖率 $\gamma$
• 最大化攻击面缩减
- 提出的方法
4.1 EO‑AppSec 架构
所提出的架构集成了多个组件。
| 组件 | 功能 |
|---|---|
| 证据收集器 | 汇总扫描器和遥测结果 |
| 关联引擎 | 规范化并关联证据 |
| 贝叶斯模块 | 估计被利用概率 |
| DevSecOps 编排器 | 将分析集成到 CI/CD 流水线 |
运行流程始于在 CI/CD 流水线中执行分析工具。结果由证据收集器聚合,并在基于 CVE 和 CWE 的通用模式下进行规范化。随后,贝叶斯模块计算条件被利用概率。
4.2 算法 1 — 证据聚合
Algorithm 1: EvidenceAggregation(V)
Input: 集合 V 中的漏洞
Output: 风险向量 R
for each v in V do
E_v ← coletar_evidencias(v)
P_v ← inferencia_bayesiana(E_v)
R_v ← P_v impacto(v)
end for
return R
计算复杂度近似为 $O(n \cdot m)$,其中 $m$ 表示与每个漏洞关联的平均证据数量。
4.3 算法 2 — 基于风险的优先级排序
Algorithm 2: RiskPrioritization(V, B)
按 R(v) / C(v) 对 V 排序
for each v in V ordenado do
if custo_total + C(v) ≤ B then
selecionar v
end if
end for
尽管该问题等价于 0‑1 背包问题,但贪心策略为运营环境提供了高效近似。
- 实现
该原型在 Kubernetes 环境中实现,采用基于微服务的架构。
主要技术组件:
| 层 | 技术 |
|---|---|
| SAST | SonarQube |
| DAST | OWASP ZAP |
| SCA | Snyk |
| 遥测 | Elastic Stack |
| 可观测性 | eBPF-based instrumentation |
| 数据库 | PostgreSQL |
| 概率引擎 | Python |
CI/CD 流水线通过 GitHub Actions 集成,并在每次构建中执行自动化扫描器。
通过最多 120 个并发流水线验证了可扩展性,每次流水线执行的平均额外延迟为 3.4 分钟。
- 实验评估
6.1 实验环境
实验评估在一个企业环境中进行,包含:
• 47 个应用
• 约 320 万行代码
• 由 64 vCPUs 和 256 GB RAM 服务器组成的基础设施
比较了三种配置。
| 配置 | 描述 |
|---|---|
| Baseline 1 | 仅 SAST |
| Baseline 2 | SAST + 无关联 DAST |
| EO‑AppSec | 完整概率关联 |
分析指标包括准确率、召回率、误报率(FPR)和平均修复时间(MTTR)。
6.2 结果
| 指标 | Baseline 1 | Baseline 2 | EO‑AppSec |
|---|---|---|---|
| 准确率 | 0,63 | 0,71 | 0,89 |
| 召回率 | 0,78 | 0,85 | 0,93 |
| FPR | 0,41 | 0,32 | 0,18 |
| MTTR(天) | 14,2 | 11,3 | 8,7 |
我们观察到误报率降低了 42.3%,并且对实际可被利用漏洞的检测提升了 31.5%。
平均计算开销约为 11%,这一数值被认为对于大规模 DevSecOps 流水线是可接受的。
- 讨论
结果表明,证据的概率性集成能够显著减少 AppSec 项目中的运营噪声。误报的大幅降低使工程团队能够将精力集中于更有可能被利用的漏洞。
另一个相关方面是与云原生架构的集成。现代环境通常结合了微服务、外部 API 以及基于人工智能的组件。OWASP Top 10 中描述的经典漏洞仍然占主导地位,但与 API 和语言模型相关的新攻击面扩大了风险范围(OWASP, 2023)。
所提出的框架也与安全开发框架推荐实践具有协同作用,例如 NIST Secure Software Development Framework(SSDF),其强调在开发生命周期中自动化安全检查(NIST, 2022)。
然而,仍需考虑一些局限性。概率模型依赖于所收集证据的质量。不完整或有偏差的数据可能影响被利用概率的估计。此外,安全遥测成熟度较低的环境可能体现出较小的运营收益。
有效性威胁包括不同项目之间的差异,以及模型可能针对所分析环境的特定历史数据发生过拟合。
- 结论
我们提出了 EO‑AppSec,一个基于证据的应用安全编排形式化框架。该模型整合多种分析来源,并使用贝叶斯推断来估计漏洞被利用的概率。
实证评估表明,在漏洞优先级排序方面取得了显著改进,包括明显减少误报和降低平均修复时间。
这些结果表明,面向证据的概率方法是提升 DevSecOps 与云原生环境中 AppSec 项目有效性的一个有前景的方向。
未来研究包括使用更复杂的概率图模型、集成运行时行为分析,以及纳入由使用人工智能组件的应用遥测所导出的风险信号。
参考文献
ANTUNES, N.; VIEIRA, M. Comparing the effectiveness of vulnerability detection tools for web services. IEEE International Symposium on Software Reliability Engineering. Available at: https://ieeexplore.ieee.org/document/5603957. Accessed on: 10 mar. 2024.
BURP SUITE. Web vulnerability scanner documentation. PortSwigger, 2024. Available at: https://portswigger.net/burp. Accessed on: 12 mar. 2024.
CHESS, B.; WEST, J. Secure programming with static analysis. Boston: Addison‑Wesley, 2007. Available at: https://www.pearson.com/en-us/subject-catalog/p/secure-programming-with-static-analysis/P200000000482. Accessed on: 10 mar. 2024.
FIRST. Common Vulnerability Scoring System v3.1 specification. 2019. Available at: https://www.first.org/cvss/v3.1/specification-document. Accessed on: 11 mar. 2024.
HÖGSTRÖM, A. BPF performance tools: Linux system and application observability. Boston: Addison‑Wesley, 2023. Available at: https://www.oreilly.com/library/view/bpf-performance-tools/9780136554820. Accessed on: 12 mar. 2024.
HOWARD, M.; LEBLANC, D. Writing secure code. 2. ed. Redmond: Microsoft Press, 2003. Available at: https://learn.microsoft.com/en-us/security/engineering/writing-secure-code. Accessed on: 9 mar. 2024.
JOHNSON, B. et al. Why don’t software developers use static analysis tools to find bugs? IEEE Symposium on Security and Privacy. Available at: https://ieeexplore.ieee.org/document/6547103. Accessed on: 10 mar. 2024.
MCGRAW, G. Software security: building security in. Boston: Addison‑Wesley, 2006. Available at: https://www.informit.com/store/software-security-building-security-in-9780321356703. Accessed on: 9 mar. 2024.
MITRE. ATT&CK framework. 2023. Available at: https://attack.mitre.org. Accessed on: 12 mar. 2024.
MITRE. CVE‑2021‑44228: Apache Log4j remote code execution vulnerability. 2021. Available at: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228. Accessed on: 10 mar. 2024.
MITRE. CVE‑2023‑34362: MOVEit transfer vulnerability. 2023. Available at: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-34362. Accessed on: 10 mar. 2024.
MENEELY, A. et al. Predicting vulnerabilities with software metrics. ACM Conference on Computer and Communications Security. Available at: https://dl.acm.org/doi/10.1145/2382196.2382205. Accessed on: 10 mar. 2024.
NIST. Secure software development framework (SSDF). NIST SP 800‑218, 2022. Available at: https://csrc.nist.gov/publications/detail/sp/800-218/final. Accessed on: 10 mar. 2024.
NIST. Security and privacy controls for information systems and organizations. NIST SP 800‑53 Rev.5, 2020. Available at: https://csrc.nist.gov/publications/detail/sp/800-53/rev-5/final. Accessed on: 10 mar. 2024.
OWASP FOUNDATION. OWASP Top 10: The ten most critical web application security risks. 2021. Available at: https://owasp.org/www-project-top-ten. Accessed on: 11 mar. 2024.
OWASP FOUNDATION. OWASP Top 10 for Large Language Model Applications. 2023. Available at: https://owasp.org/www-project-top-10-for-large-language-model-applications. Accessed on: 12 mar. 2024.
OWASP FOUNDATION. Application Security Verification Standard (ASVS). 2022. Available at: https://owasp.org/www-project-application-security-verification-standard. Accessed on: 11 mar. 2024.
SCARFONE, K.; PADGETT, M. Guide to securing cloud-native containerized environments. NIST, 2022. Available at: https://csrc.nist.gov/publications/detail/sp/800-190/final. Accessed on: 10 mar. 2024.
SNYK. State of open source security report 2023. Available at: https://snyk.io/reports/open-source-security. Accessed on: 12 mar. 2024.
SONARQUBE. Static code analysis documentation. SonarSource, 2024. Available at: https://docs.sonarsource.com/sonarqube. Accessed on: 12 mar. 2024.
VERIZON. 2023 data breach investigations report. Available at: https://www.verizon.com/business/resources/reports/dbir. Accessed on: 10 mar. 2024.
WALDEN, J.; DOYLE, M.; WELCH, J. Static analysis tools comparison for vulnerability detection. International Conference on Software Engineering. Available at: https://dl.acm.org/doi/10.1145/1555001.1555028. Accessed on: 10 mar. 2024.
ZIMMERMANN, T. et al. Mining version histories to guide software changes. IEEE Transactions on Software Engineering, 2005. Available at: https://ieeexplore.ieee.org/document/1463106. Accessed on: 9 mar. 2024.
ISO. ISO/IEC 27034‑1: Information technology — application security. Geneva: ISO, 2011. Available at: https://www.iso.org/standard/44378.html. Accessed on: 10 mar. 2024.
FALCO PROJECT. Runtime security for cloud-native environments. 2024. Available at: https://falco.org. Accessed on: 12 mar. 2024.