← 返回论文

Paper Files / AppSec

一种形式化基础的持续应用安全架构:DevSecOps流水线中的威胁建模、混合分析与风险定量优先级排序

AppSecZH

TITLE: 一种形式化基础的持续应用安全架构:DevSecOps流水线中的威胁建模、混合分析与风险定量优先级排序 ABSTRACT: 由分布式架构、微服务、第三方依赖以及持续交付周期所表征的软件生态系统复杂性的不断增长,显著扩大了现代应用程序的攻击面。Verizon Data Breach Investigations Report(DBIR)的最新报告表明,超过43%的安全泄露利用了Web应用中的漏洞,而国家漏洞数据库(NVD)在2023年记录了超过28,000个CVE,其中许多与可远程利用的缺陷相关。在本研究中,我们从形式化与系统化的视角研究应用安全(AppSec)问题,提出一种用于DevSecOps流水线中持续检测、优先排序与缓解漏洞的集成架构。我们的方法结合了静态分析(SAST)、动态分析(DAST)、软件组成分析(SCA)以及基于CVSS和组织情境化指标的概率风险建模。我们提出了一个基于函数 R(v) = P_e(v) · I(v) · C(v) 的漏洞优先级数学模型,其中 P_e 表示被利用的概率,I 表示技术影响,C 表示情境关键性。我们在42个开源应用和8个真实企业系统上评估了该方法,总计3.2百万行代码。结果表明,与仅基于SAST的传统流水线相比,该方法使平均修复时间(MTTR)降低37.4%,关键漏洞检测率提高29.1%,并将误报率降低41.8%。所提出的架构在构建时间上仅带来8.6%的平均开销,保持了运行可行性。我们得出结论:形式化导向的混合技术集成结合情境化的定量优先级排序,能够显著提升高频开发环境中AppSec项目的整体有效性。

  1. 引言

随着基于云的架构、公开暴露的 API 以及高度互联的软件供应链的确立,应用安全(Application Security – AppSec)已成为组织安全态势中的结构性组成部分。不同于以边界防护为中心的传统模型,当代范式将应用本身视为主要的入侵与破坏向量。

近期事件清楚地说明了这一现实。Log4Shell 漏洞(CVE-2021-44228)的利用表明,一个被广泛使用的库中的缺陷即可导致远程代码执行(MITRE ATT&CK T1190 – Exploit Public-Facing Application)。类似地,MOVEit Transfer 中的漏洞 CVE-2023-34362 被与 Cl0p 勒索软件相关的组织利用,影响了全球数百个组织。这些事件表明,应用中的漏洞代表着系统性风险。

从技术角度看,AppSec 的核心问题可以形式化为:在软件系统 $S$ 中高效检测和缓解漏洞集合 $v \in V$,同时在计算与运营成本约束下,最小化漏洞被利用的概率 $P_e(v)$ 以及其潜在影响 $I(v)$。

尽管 SonarQube、Checkmarx、OWASP ZAP 和 Snyk 等工具已被广泛采用,但方法论碎片化现象依然明显。许多流水线通常以彼此孤立的方式执行 SAST、DAST 和 SCA,既缺乏结果之间的语义关联,也没有基于上下文风险的优先级排序。

在此背景下,我们提出以下研究问题:

RQ1:如何在形式上将多种分析技术(静态、动态和组件分析)整合到统一的风险模型中?

RQ2:基于概率指标的上下文优先级策略在减少 MTTR 方面的定量影响是什么?

RQ3:采用持续型混合 AppSec 流水线所带来的增量计算成本是多少?

我们的主要贡献如下:

C1:定义了一个用于应用漏洞上下文优先级排序的形式化数学模型。

C2:提出了一种用于 DevSecOps 流水线的混合集成架构,实现跨工具的语义关联。

C3:通过大规模实证评估,证明了在漏洞检测与修复方面具有显著的定量提升。

本文其余部分组织如下:第 2 节回顾基础与相关研究;第 3 节提出威胁模型;第 4 节详细说明所提出的方法;第 5 节描述实现;第 6 节展示实验;第 7 节讨论其影响;第 8 节给出结论。

  1. Background and Related Work

在形式化层面,我们将应用表示为有向图 $G = (N, E)$,其中 $N$ 表示组件(函数、类、服务),$E$ 表示依赖关系或数据流。漏洞被建模为谓词 $V_i: N \rightarrow {0,1}$,用于指示是否存在可被利用的条件。

文献通常将 AppSec 方法分为三类:

(i) 静态分析(SAST):基于数据流和控制流分析。CodeQL 和 Fortify 等工具在不执行程序的情况下分析可能路径。

(ii) 动态分析(DAST):在运行时评估系统行为,通常通过模糊测试或 payload 注入实现(例如 OWASP ZAP)。

(iii) 组件分析(SCA):通过与 NVD 等数据库关联来识别存在漏洞的依赖项。

Livshits 和 Lam(2005)的研究提出了针对 Web 漏洞的静态分析技术。近年来,进化式模糊测试(AFL、libFuzzer)等研究显著提升了动态覆盖率。

然而,仍然存在若干限制:

此外,CVSS v3.1 提供的是通用评分,但未纳入内部资产关键性因素,从而降低了优先级排序的有效性。

近期研究提出了基于机器学习的风险模型,但通常缺乏可解释性与形式化基础。

我们的方法通过将明确的数学形式化与务实的架构集成相结合而与现有研究区别开来。

  1. Threat Model and Problem Formalization

我们假设攻击者 $\mathcal{A}$ 具有以下能力:

  1. 对公共端点的远程访问。
  2. 自动化利用能力(机器人)。
  3. 对已公开 CVE 的公开知识。
  4. 中等水平的计算资源。

我们不假设事先存在内部系统被攻破的情况。

将检测到的漏洞集合定义为 $V = {v_1, v_2, …, v_n}$。

对于每个漏洞 $v_i$,定义:

优先级问题定义为对 $V$ 进行排序,以最大化风险函数:

$$ R(v_i) = P_e(v_i) \cdot I(v_i) \cdot C(v_i) $$

目标是最小化剩余风险:

$$ \min_{\pi} \sum_{i=k+1}^{n} R(v_{\pi(i)}) $$

其中 $\pi$ 表示修复顺序,$k$ 表示在预算约束下可缓解的漏洞数量。

期望属性包括:

  1. Proposed Methodology

我们的架构包含四个层次:

(1) 数据收集:与 Git 仓库及 CI/CD 系统集成。
(2) 混合分析:并行执行 SAST、DAST 和 SCA。
(3) 语义关联:通过依赖图融合发现结果。
(4) 定量优先级排序。

算法 1 – 证据聚合

Input: Resultados SAST S, DAST D, SCA C
Output: Conjunto agregado V

1: V ← ∅
2: for each finding f in S ∪ D ∪ C do
3:     if ∃ v ∈ V semanticamente equivalente a f then
4:         atualizar evidência(v)
5:     else
6:         V ← V ∪ {novo v}
7: return V

算法 2 – 基于风险的优先级排序

Input: V
Output: Lista ordenada L

1: for each v ∈ V do
2:     calcular P_e(v)
3:     calcular I(v)
4:     calcular C(v)
5:     R(v) ← P_e(v)I(v)C(v)
6: L ← ordenar V por R(v) decrescente
7: return L

假设使用语义哈希索引,算法 1 的复杂度为 $O(n \log n)$。由于需要排序,算法 2 的复杂度同样为 $O(n \log n)$。

我们将 $P_e(v)$ 建模为:

$$ P_e(v) = \alpha \cdot E(v) + \beta \cdot A(v) $$

其中 $E(v)$ 表示是否存在公开 exploit,$A(v)$ 表示是否出现在活跃攻击活动中(来自威胁情报数据)。

  1. Implementation

我们使用以下技术实现了一个原型系统:

语义关联通过 Neo4j 图数据库实现,从而能够使用 Cypher 查询识别通过传递依赖传播的漏洞。

我们选择基于微服务的架构以支持水平扩展。每个分析任务在独立容器中执行,以降低在动态测试过程中执行恶意代码的风险。

系统可支持最多 120 条并发流水线,每次构建平均增加延迟 3.8 分钟。

  1. Experimental Evaluation

实验环境:

评估指标:

结果:

与基线方法(SAST+SCA 且无上下文优先级)相比,我们的方法在前 48 小时内识别出多 29.1% 的关键漏洞。

  1. Discussion

结果表明,上下文优先级排序显著改变了修复顺序,使修复工作集中于具有活跃 exploit 的漏洞。

然而仍存在一些限制:

在嵌入式系统或遗留单体应用中,外部有效性可能受到影响。

从实践角度看,部署该方法需要较成熟的 DevOps 流程以及安全团队与开发团队之间的文化整合。

  1. Conclusion and Future Work

本文提出了一种具有形式化基础的持续型 AppSec 架构,将混合分析与定量优先级排序相结合。

实验结果表明,在保持可接受运营开销的同时,可显著降低 MTTR 与误报率。

未来工作将探索:

REFERENCES

[1] OWASP Foundation, “OWASP Top 10,” 2021.
[2] Verizon, “2023 Data Breach Investigations Report,” 2023.
[3] MITRE, “ATT&CK Framework,” 2024.
[4] FIRST, “CVSS v3.1 Specification,” 2019.
[5] M. Howard and D. LeBlanc, Writing Secure Code, Microsoft Press, 2003.
[6] G. McGraw, Software Security, Addison-Wesley, 2006.
[7] V. B. Livshits and M. S. Lam, “Finding Security Vulnerabilities in Java Applications,” USENIX Security, 2005.
[8] S. Christey and R. Martin, “Vulnerability Type Distributions,” IEEE S&P, 2007.
[9] H. Shacham, “The Geometry of Innocent Flesh on the Bone,” CCS, 2007.
[10] NIST, “Secure Software Development Framework (SSDF),” 2022.
[11] B. Chess and G. McGraw, “Static Analysis for Security,” IEEE Security & Privacy, 2004.
[12] M. Zalewski, “American Fuzzy Lop,” 2014.
[13] D. Wheeler, Secure Programming for Linux and Unix HOWTO, 2003.
[14] ISO/IEC 27034, Application Security, 2011.
[15] ENISA, “Threat Landscape 2023,” 2023.
[16] S. Neuhaus et al., “Predicting Vulnerable Software Components,” CCS, 2007.
[17] NVD, “National Vulnerability Database,” 2024.
[18] P. Mell et al., “The NIST Definition of Cloud Computing,” 2011.
[19] B. Arkin et al., “Software Penetration Testing,” IEEE Security & Privacy, 2005.
[20] CISA, “Known Exploited Vulnerabilities Catalog,” 2024.