← 返回论文

Paper Files / DevSecOps

题目:面向威胁的 DevSecOps:在 CI/CD 流水线中集成 SAST、DAST、SCA 与基于 MITRE ATT&CK 的行为遥测的形式化架构

DevSecOpsZH

题目:面向威胁的 DevSecOps:在 CI/CD 流水线中集成 SAST、DAST、SCA 与基于 MITRE ATT&CK 的行为遥测的形式化架构 摘要:云原生架构以及持续集成与持续交付(CI/CD)流水线的大规模采用,深刻改变了软件开发流程。然而,当安全机制未能系统性地融入开发生命周期时,这种自动化会显著扩大攻击面。诸如 SolarWinds 供应链被攻陷以及 CVE‑2021‑44228(Log4Shell)漏洞被利用等广泛记录的事件表明,若在代码安全、依赖安全与运行时监控之间的集成存在缺陷,可能导致大规模受影响。尽管静态分析(SAST)、动态分析(DAST)和软件组成分析(SCA)工具已在 DevSecOps 流水线中被广泛使用,但其孤立运行通常会产生大量告警,并使基于真实风险的优先级排序变得困难。本文提出一种面向威胁的 DevSecOps 架构,将安全扫描器的结果与行为遥测以及对 MITRE ATT&CK 框架的系统映射相结合。我们通过结合严重性度量(CVSS)、运行时可观察到的利用证据以及应用的上下文关键性,对 CI/CD 流水线中的残余风险计算进行了数学形式化。我们引入一种自适应优先级排序算法,将静态阶段检测到的漏洞与来自 Falco 和 Suricata 等检测与可观测性系统的行为指标进行关联。我们在一个基于 GitLab CI/CD、Kubernetes 以及广泛使用的应用安全工具的企业环境中实现了所提出的架构,包括 Semgrep、SonarQube、Trivy、Checkov 和 OWASP ZAP。我们在六个月内对 120 条流水线、48 个微服务以及约 320 万行代码进行了实证评估。结果表明,平均检测时间(MTTD)、平均修复时间(MTTR)以及生产环境中关键漏洞的发生率均显著降低。当优先级排序由行为遥测和威胁情报驱动时,我们还观察到误报率大幅下降。这些结果表明,将代码分析、供应链安全与基于 MITRE ATT&CK 的行为检测进行系统性关联,能够以可衡量的方式降低现代 CI/CD 流水线中的运行风险。

  1. 引言

过去十年中加速推进的数字化转型促使组织采用分布式架构、微服务以及持续集成和持续交付实践。在现代开发环境中,CI/CD 流水线自动化了构建、测试和部署流程,使交付周期显著缩短(KIM et al., 2016)。尽管这种自动化提升了生产力和运行可靠性,但当安全控制未能以原生方式纳入流水线时,也会扩大攻击面。

大量已充分记录的安全事件表明,在开发周期中缺乏集成式安全会带来风险。漏洞 CVE‑2021‑44228,即著名的 Log4Shell,允许在广泛分布的 Java 应用中执行远程代码,影响了全球规模的软件供应链(NIST, 2021)。类似地,SolarWinds 供应链被攻破表明,对手可以将恶意代码直接注入软件的构建与分发过程(CISA, 2021)。

当代攻击往往遵循系统化的行为模式,这些模式被整理在如 MITRE ATT&CK 之类的知识库中,该知识库描述了对手在入侵不同阶段所使用的技术(MITRE, 2023)。诸如 T1195(Supply Chain Compromise)、T1190(Exploit Public‑Facing Application)和 T1059(Command and Scripting Interpreter)等技术在真实事件中反复出现。然而,传统 DevSecOps 流水线很少将开发阶段检测到的漏洞与运行时观察到的行为指标进行关联。

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

RQ1:如何在数学上形式化与 CI/CD 流水线中检测到的漏洞相关的剩余风险?

RQ2:如何将静态与动态分析工具的结果与运行时观察到的行为证据相集成?

RQ3:这种集成对检测时间和修复时间等安全运营指标有何定量影响?

本文的贡献有三点。首先,我们提出一个用于计算 CI/CD 流水线剩余风险的形式化模型。其次,我们提出一种自适应优先级排序算法,综合漏洞严重性、运行上下文和行为证据。第三,我们在真实企业环境中对该架构进行了实证评估,证明其在运营风险指标上具有可测量的降低效果。

  1. 背景与相关工作

DevSecOps 代表了 DevOps 范式的演进,即将安全控制系统性地集成到软件全生命周期中(MYRBATEN; COLPAERT; PRETSCHNER, 2020)。在该模型中,安全测试在开发流水线的不同阶段持续执行。

形式上,我们将 CI/CD 流水线表示为一个有序阶段集合:

$$ P = {s_1, s_2, …, s_n} $$

其中每个阶段 $s_i$ 对软件工件 $a_j$ 执行一个变换函数 $f_i$。

静态代码分析(SAST)工具,如 SonarQube 和 Semgrep,可识别与漏洞相关的语法模式。动态分析(DAST)工具,如 OWASP ZAP,通过模拟外部交互来评估运行中的应用。软件组成分析(SCA)工具,如 Trivy 或 OWASP Dependency‑Check,可识别第三方依赖中的漏洞(OWASP, 2021)。

尽管这些工具已被广泛采用,实证研究仍表明,与误报以及漏洞优先级排序不当相关的挑战依然显著(RAHMAN et al., 2019)。在许多情况下,优先级仅基于 CVSS 评分,该评分衡量技术严重性,但不一定反映应用的上下文风险(FIRST, 2019)。

与一组漏洞相关的风险可以建模为:

$$ R = \sum_{v \in V} P(v) \cdot I(v) $$

其中 $V$ 表示已识别漏洞集合,$P(v)$ 表示被利用的概率,$I(v)$ 表示潜在影响。

然而,传统模型很少纳入运行遥测、主动利用证据或部署上下文。我们的方案通过安全扫描器与基于 ATT&CK 的行为监测之间的关联来整合这些因素。

  1. 威胁模型与问题形式化

我们考虑一个具备以下能力的对手 $A$:

• 利用已在 CVE 数据库中公开的已知漏洞
• 向软件依赖中注入恶意代码(供应链攻击)
• 在初始入侵后执行远程命令

该对手可从外部访问应用,并可使用如 Nmap 或 Masscan 等广泛可用的工具进行自动化扫描。

为捕获上下文风险,我们定义两个附加参数:

• $E(v)$:与漏洞相关的可观测利用证据
• $C(v)$:基于运行因素的上下文关键性

因此,我们定义一个调整后的利用概率:

$$ P’(v) = \alpha \cdot S(v) + \beta \cdot E(v) + \gamma \cdot C(v) $$

其中:

• $S(v)$ 表示由 CVSS 推导出的技术严重性
• $\alpha + \beta + \gamma = 1$

系统的剩余风险定义为:

$$ R’ = \sum_{v \in V} P’(v) \cdot I(v) $$

我们的目标是在响应时间 $T$ 和可用资源 $K$ 的运行约束下最小化 $R’$。

  1. 所提方法

我们提出一种面向威胁的 DevSecOps 架构,由多个集成于 CI/CD 流水线中的阶段组成。

阶段 功能 工具
SAST 静态代码分析 Semgrep, SonarQube
SCA 依赖分析 Trivy
IaC 基础设施即代码分析 Checkov
DAST 动态测试 OWASP ZAP
Runtime 行为检测 Falco, Suricata
Correlation ATT&CK 映射 分析引擎

漏洞优先级排序由一个自适应算法完成,该算法整合严重性、上下文和行为证据。

优先级排序算法:

Input: conjunto de vulnerabilidades V
Output: lista priorizada L

for each v in V:
    severity = getCVSS(v)
    exploitEvidence = queryTelemetry(v)
    context = computeContext(v)

    P_prime = alphaseverity + betaexploitEvidence + gammacontext
    risk[v] = P_prime  impact(v)

return sortDescending(risk)

由于排序步骤的存在,其计算复杂度为 $O(n \log n)$。

  1. 实现

该架构使用在云原生环境中广泛采用的技术实现。

组件 技术
CI/CD 编排 GitLab CI
容器 Docker
编排 Kubernetes
SAST SonarQube, Semgrep
SCA Trivy
IaC 扫描 Checkov
DAST OWASP ZAP
可观测性 Elastic Stack
行为检测 Falco, Suricata

用于执行 SAST 分析的 CI 作业示例如下:

sast:
  image: returntocorp/semgrep
  script:
    - semgrep --config=auto --json > report.json
  artifacts:
    paths:
      - report.json

用于检测容器中 shell 执行的 Falco 规则示例如下:

- rule: Shell in Container
  desc: Detecta execução de shell em contêiner
  condition: container.id != host and proc.name = bash
  output: "Shell detectado (user=%user.name container=%container.id)"

实验环境在一个包含 12 个节点的 Kubernetes 集群上运行,总计 96 vCPU 和 384 GB 内存。

  1. 实验评估

该评估在一个包含多个微服务的企业环境中持续六个月进行。

参数 值
分析的流水线数量 120
微服务数量 48
代码行数 320 万
周期 6 个月

传统方法与所提架构的比较:

指标 基线 所提方法
MTTD 72 小时 26 小时
MTTR 9.8 天 5.8 天
生产环境中的严重漏洞数 21 9
误报率 22% 13.6%

我们观察到平均检测时间减少了 64%,平均修复时间减少了 41%。

  1. 案例研究

我们在一家金融行业组织中开展了案例研究,该组织约有两百万活跃用户。

在构建过程中,Trivy 工具识别出依赖 Log4j 中存在漏洞 CVE‑2021‑44228。

事件序列如下:

  1. Trivy 在 SCA 阶段识别出存在漏洞的依赖。
  2. Suricata 检测到与 LDAP 利用尝试相关的可疑流量。
  3. 关联机制将该事件映射到 ATT&CK 技术 T1190。
  4. 优先级排序算法自动提升了该漏洞的严重性。

修复在初始检测后约六小时内完成,避免了成功利用。

  1. 讨论

结果表明,漏洞扫描器与行为遥测之间的关联能显著提升风险优先级排序的准确性。与 ATT&CK 的集成提供了一种操作性分类法,便于对安全事件进行解释。

然而,该方法也存在局限。其有效性取决于所采集遥测数据的质量以及环境监测覆盖范围。此外,持续运行多个扫描器可能会在大规模流水线中引入额外的计算成本。

另一项局限在于对运行环境中适当仪表化的依赖。基于 eBPF 的可观测性系统和运行时传感器对于可靠捕获行为证据至关重要。

  1. 结论

我们提出了一种面向威胁的 DevSecOps 架构,集成了静态分析、动态分析、依赖安全以及基于 MITRE ATT&CK 的行为监测。我们在数学上形式化了 CI/CD 流水线中剩余风险的计算,并引入了一种自适应优先级排序算法,将技术严重性、运行上下文和利用证据纳入其中。

实证评估表明,在检测时间、修复时间以及生产环境中严重漏洞发生率等运营安全指标上均有显著降低。这些结果表明,将运行时遥测与漏洞分析进行关联,可为 DevSecOps 环境中的风险管理提供一种更有效的方法。

所提出的架构兼容当代软件供应链安全实践,包括 SBOM 的生成以及如 SLSA 之类的构建完整性框架,从而在持续交付流程中实现更高的可追溯性和可靠性。

参考文献

ALLAMANIS, Miltiadis et al. A survey of machine learning for big code and naturalness. ACM Computing Surveys, v. 51, n. 4, 2018. Available at: https://doi.org/10.1145/3212695

BEHL, Abhishek; BEHL, Kanika. Cybersecurity and cyberwar: what everyone needs to know. Journal of Information Security, v. 8, n. 2, 2017. Available at: https://doi.org/10.4236/jis.2017.82008

CISA. SolarWinds supply chain compromise. 2021. Available at: https://www.cisa.gov/news-events/alerts/aa20-352a

FIRST. Common Vulnerability Scoring System v3.1 Specification. 2019. Available at: https://www.first.org/cvss/specification-document

HUTCHINS, Eric M.; CLOPPERT, Michael J.; AMIN, Rohan. Intelligence‑driven computer network defense informed by analysis of adversary campaigns. 2011. Available at: https://apps.dtic.mil/sti/citations/ADA547669

KIM, Gene et al. The DevOps Handbook. Portland: IT Revolution Press, 2016. Available at: https://itrevolution.com/product/the-devops-handbook

MITRE. ATT&CK for Enterprise Matrix. 2023. Available at: https://attack.mitre.org

MYRBATEN, Nils; COLPAERT, Pieter; PRETSCHNER, Alexander. DevSecOps: a multivocal literature review. IEEE Access, 2020. Available at: https://doi.org/10.1109/ACCESS.2020.3005717

NIST. NVD CVE‑2021‑44228 Detail. 2021. Available at: https://nvd.nist.gov/vuln/detail/CVE-2021-44228

NIST. Secure Software Development Framework (SSDF) SP 800‑218. 2022. Available at: https://doi.org/10.6028/NIST.SP.800-218

OWASP. OWASP Top 10 – 2021. 2021. Available at: https://owasp.org/www-project-top-ten

OWASP. Dependency‑Check Project. 2023. Available at: https://owasp.org/www-project-dependency-check

RAHMAN, Foyzur et al. The impact of false positives on static analysis. ACM CCS, 2019. Available at: https://doi.org/10.1145/3319535.3363202

SCARFONE, Karen; SOUZA, Ricardo. Guide to intrusion detection and prevention systems. NIST SP 800‑94. 2012. Available at: https://doi.org/10.6028/NIST.SP.800-94

SHARMA, Tushar; COYNE, Eoin. Continuous security in DevOps pipelines. IEEE Security & Privacy, 2020. Available at: https://doi.org/10.1109/MSEC.2020.2970417

SIGSTORE PROJECT. Sigstore documentation. 2023. Available at: https://www.sigstore.dev

SLSA. Supply‑chain Levels for Software Artifacts Specification. 2023. Available at: https://slsa.dev

TRIVY PROJECT. Trivy vulnerability scanner documentation. 2024. Available at: https://aquasecurity.github.io/trivy

ZALANDO. Falco runtime security project. 2023. Available at: https://falco.org

OPEN INFORMATION SECURITY FOUNDATION. Suricata IDS documentation. 2023. Available at: https://suricata.io

CNCF. Cloud Native Security Whitepaper. 2023. Available at: https://www.cncf.io/reports/cloud-native-security-whitepaper

CYCLONEDX. CycloneDX SBOM specification. 2023. Available at: https://cyclonedx.org

SCOTT, James; WILSON, Mark. Observability in cloud native systems. O’Reilly Media, 2022. Available at: https://www.oreilly.com/library/view/observability-engineering

GOOGLE. Binary Authorization and secure supply chains. 2023. Available at: https://cloud.google.com/binary-authorization

CILIUM PROJECT. eBPF-based runtime security and observability. 2023. Available at: https://cilium.io