课题研究 云安全与容器安全 子课题03 · 第01页 / 共8页
03子课题 · 云原生软件供应链与镜像安全

云原生软件供应链与镜像安全第01页:研究总览与背景定位

现代云原生应用的交付链路跨越源代码、第三方依赖、构建系统、制品仓库、镜像仓库、编排平台与运行时七个环节。SolarWinds(2020)、Log4Shell(2021)、XZ Utils后门(2024)与tj-actions事件(2025)连续证明:供应链已成为攻击者规模化渗透的最高效路径,而SBOM、SLSA、sigstore与NIST SSDF等方法论体系亦已同步成型。本子课题围绕“成分透明(SBOM/VEX)—构建可信(SLSA/Provenance)—分发验证(签名/准入)—流水线治理(凭证/PPE)”四条主线展开研究,全八页:总览→攻击谱系→SBOM→SLSA→签名验证→仓库准入→流水线安全→治理与合规。

SBOMSLSAsigstore/cosignCI/CD安全供应链攻击GB/T 43698-2024EO 14028研究状态:研究中
所属专题未来研究方向 › 云安全与容器安全
目标受众DevSecOps团队、安全架构师、开源治理与合规人员、软件供应商安全负责人
全文结构8页:总览 → 攻击谱系 → SBOM → SLSA → 签名验证 → 仓库准入 → 流水线安全 → 治理与合规

01 · 研究背景与意义

1.1 现代软件是“组装”出来的,攻击面随之碎片化

云原生应用通常由数百乃至数千个开源组件拼装而成,交付链路跨越“源代码—第三方依赖—构建系统—制品仓库—镜像仓库—编排平台—运行时”七个环节。任何单一环节被攻破,都会沿着信任链向下游指数级扩散。SolarWinds事件(2020年12月披露)中,攻击者篡改Orion软件的官方构建流程,向约1.8万家客户分发携带SUNBURST后门的更新,其中包含多家美国联邦机构;Apache Log4j2的Log4Shell漏洞(CVE-2021-44228,2021年12月披露,CVSS评分10.0)则展示了“一个被广泛依赖的基础组件漏洞”如何在一夜之间波及全球。这两类事件共同证明:软件供应链安全已从“开发团队的工程问题”升格为组织级、国家级风险议题。

1.2 云原生环境把供应链风险进一步放大

  • 镜像即分发单元:容器镜像将操作系统层、运行时、应用与依赖一次性打包,一次镜像投毒即等于完整环境投毒;镜像仓库(如Docker Hub)已成为恶意镜像与凭证泄露的高发地带——2019年4月Docker Hub数据库泄露约19万个账户信息(4月24日发生未授权访问,数日内公开披露),并波及部分用户的GitHub/Bitbucket自动化构建令牌。
  • CI/CD是高权限聚合点:流水线同时握有源代码读写权、云凭证、签名密钥与生产发布权,“毒化流水线执行”(Poisoned Pipeline Execution, PPE)被安全社区证实为最高效的攻击路径之一;2025年3月tj-actions/changed-files事件(CVE-2025-30066)中,攻击者篡改Action标签,导致使用该Action的约2.3万个仓库的流水线日志泄露密钥。
  • 上游信任长期沉淀:XZ Utils后门事件(CVE-2024-3094,2024年3月29日披露)显示,攻击者以“Jia Tan”身份对项目持续贡献数年、逐步取得维护权后,在5.6.0/5.6.1版本的发布压缩包中植入经混淆的恶意代码——上游信任的建立过程本身成为了攻击载体。

1.3 治理框架正在同步成型

与威胁演进同步,方法论体系已基本完备:成分透明侧有SPDX(ISO/IEC 5962:2021)与CycloneDX(OWASP项目,2024年被采纳为ECMA-424标准)两大SBOM格式;构建完整性侧有SLSA框架(v1.0于2023年4月发布)与in-toto证明体系;分发可信侧有sigstore/cosign无密钥签名与Kubernetes准入验证;开发过程侧有NIST SSDF(SP 800-218,2022年2月发布)。合规侧,美国EO 14028(2021年5月)将SBOM推向联邦采购强制要求,欧盟《网络弹性法案》(Regulation (EU) 2024/2847,2024年12月生效,主要义务2027年12月11日起适用)设定数字化产品的全生命周期安全义务;中国已发布GB/T 43698-2024《网络安全技术 软件供应链安全要求》(2024年4月25日发布,2024年11月1日实施)与GB/T 43848-2024《网络安全技术 软件产品开源代码安全评价方法》(同日实施)等国家标准。

本子课题分析框架:从成分透明到分发可信的五层防御
五步递进式研究路径,与各分页内容对应
说明:本框架为课题内部分析方法论示意;标准条款编号、事件事实与数据均以原始官方文件为准。

02 · 研究目标与关键问题

  • 威胁可认知目标:建立覆盖“源码—依赖—构建—分发—运行”五环节的供应链攻击谱系与事件档案库,形成可复用的威胁建模模板(第2页)。
  • 成分可透明目标:落地SPDX/CycloneDX双格式SBOM的生成、分发与消费全链路,并结合VEX实现“漏洞≠必须修复”的精准研判(第3页)。
  • 构建可证明目标:依据SLSA v1.0建立构建provenance标准与可信构建平台基线,关键制品达到可验证的构建来源(第4页)。
  • 分发可验证目标:实现镜像“未签名不运行”的强制准入,覆盖签名、透明度日志、仓库治理与扫描基线(第5—6页)。
  • 运营可持续目标:将流水线凭证治理、第三方Action管控纳入成熟度模型与合规映射,形成12个月可执行实施路线(第7—8页)。

2.1 三个关键研究问题(KQ)

编号关键问题内涵说明对应章节
KQ-1透明度的成本边界SBOM应细化到何种粒度(组件级/文件级/片段级)才能支撑漏洞影响面定位而不泄露敏感实现细节?不同交付形态(闭源商业软件、开源软件、SaaS服务)的SBOM披露义务与豁免如何平衡?第3、8页
KQ-2构建可信的锚点选择SLSA级别要求与组织工程现实的差距如何分级弥合?自建构建平台与托管构建(GitHub Actions等)的信任假设有何本质差异,provenance验证密钥的信任根应锚定在哪里?第4页
KQ-3验证强制的运营代价“未签名不运行”的准入策略在应急发布、多集群、遗留镜像并存的现实环境中如何设计例外机制而不沦为纸面策略?签名密钥与透明度日志的单点故障如何消解?第5、6页

03 · 生态参与方与演进时间线

3.1 生态参与方与职责

角色职责/产出代表
标准与政府机构供应链安全行政要求、最低要素标准、漏洞通报制度美国白宫EO 14028(2021)、NTIA(SBOM最低要素,2021年7月)、CISA(开源软件安全路线图,2023年9月)、NIST(SP 800-218 SSDF,2022年2月;SP 800-161供应链风险管理)
行业联盟与基金会开源供应链治理框架、构建完整性标准、生态工具OpenSSF(Linux基金会旗下,2020年8月成立;SLSA、Sigstore、Scorecard、GUAC)、CNCF(TAG Security供应链白皮书)、Apache软件基金会、OWASP(CycloneDX)
包注册中心与平台包分发、恶意包检测、账户与令牌安全、透明度npm(GitHub/Microsoft)、PyPI(Python Software Foundation)、Maven Central、RubyGems、GitHub(Secret Scanning、Artifact Attestations)、Docker Hub
云厂商与镜像生态镜像仓库、托管构建、签名与准入集成AWS(ECR、CodeBuild、Signer)、Google Cloud(Artifact Registry、Cloud Build)、Azure(ACR)、阿里云(ACR)、华为云(SWR)、Harbor(CNCF毕业项目,2019年11月)
中国标准与测评体系供应链安全国标、开源代码评价、测评认证GB/T 36637-2018(ICT供应链安全风险管理指南)、GB/T 43698-2024(软件供应链安全要求,中国信息安全测评中心牵头)、GB/T 43848-2024(软件产品开源代码安全评价方法)

3.2 领域演进关键时间线(均可公开查证)

时间事件
2018event-stream事件(11月披露):攻击者取得维护权后在flatmap-stream中植入窃取比特币钱包的恶意代码,成为“维护权劫持”类攻击的早期标志性样本
2019Docker Hub数据泄露(4月,约19万账户);中国GB/T 36637-2018实施(5月1日),为ICT供应链安全管理提供国标依据
2020GitHub Security Lab披露Octopus Scanner(5月)——针对NetBeans项目的多阶段恶意软件;OpenSSF成立(8月);SolarWinds SUNBURST披露(12月)
2021依赖混淆研究公开(2月,Alex Birsan);EO 14028发布(5月12日);Codecov供应链事件(4月);NTIA发布SBOM最低要素(7月12日);ua-parser-js恶意版本(10月);SLSA v0.1发布(10月);Log4Shell(12月,CVE-2021-44228)
2022NIST SSDF SP 800-218正式发布(2月);PyPI对关键项目强制双因素认证(7月);Cider Security提出PPE(毒化流水线执行)攻击分类;Google发布GUAC预览(10月)
20233CX桌面客户端供应链事件(3月,Mandiant归因于朝鲜相关攻击者);SLSA v1.0发布(4月);MOVEit漏洞事件(5月,SQL注入,Cl0p组织大规模利用);CISA开源软件安全路线图(9月)
2024XZ Utils后门(3月29日,CVE-2024-3094,CVSS 10.0);GitHub Artifact Attestations公测(5月);CycloneDX成为ECMA-424标准;欧盟CRA生效(Regulation (EU) 2024/2847,12月10日);中国GB/T 43698-2024与GB/T 43848-2024实施(11月1日)
2025tj-actions/changed-files供应链攻击(3月14—15日,CVE-2025-30066,约2.3万个仓库使用);CRA漏洞报告义务将于2026年9月11日先行适用,主要义务2027年12月11日全面适用
约1.8万
SolarWinds受影响客户
2020年12月披露的SUNBURST事件,构建系统投毒的规模效应样本(美国会听证与公司披露)
10.0
Log4Shell CVSS评分
CVE-2021-44228,NVD评分满分;Log4j 2.15.0起分版本修复,2.17.1为最终修复版本
数年
XZ后门信任铺垫周期
“Jia Tan”身份持续贡献后取得xz维护权,在5.6.0/5.6.1发布包中植入后门(CVE-2024-3094)
约2.3万
tj-actions受影响仓库数
2025年3月事件,恶意updateFeatures代码将流水线密钥打印进公开日志(CVE-2025-30066)

04 · 术语速查与常见误区

4.1 核心术语

术语释义
SBOMSoftware Bill of Materials,软件物料清单:以结构化格式枚举软件制品全部成分(组件、版本、许可证、依赖关系)的清单;NTIA 2021年最低要素与ISO/IEC 5962(SPDX)为其提供规范基线
SLSASupply-chain Levels for Software Artifacts:OpenSSF主导的构建完整性分级框架,v1.0(2023年4月)聚焦Build Track L0—L3与Source Track
Provenance来源证明:描述“谁在何种输入与环境下、经何种流程构建了该制品”的可验证元数据,SLSA v1.0采用in-toto证明格式
Attestation证明/声明:对制品属性(来源、扫描结果、签名)的密码学签名陈述,可由验证方独立校验
VEXVulnerability Exploitability eXchange,漏洞可利用性交换:随SBOM传递“本制品不受某漏洞影响/已有缓解”的机器可读声明(CycloneDX VEX、OpenVEX、CSAF等载体)
Dependency Confusion依赖混淆:向公共包仓库上传与私有包同名的恶意包,利用包管理器“私有源优先/版本优先”解析逻辑劫持依赖(Alex Birsan 2021年研究公开)
PPEPoisoned Pipeline Execution,毒化流水线执行:通过篡改CI/CD配置、脚本或第三方Action,在流水线内执行恶意代码的攻击类别(Cider Security, 2022)
Transparency Log透明度日志:只可追加、密码学可审计的公共日志(如sigstore Rekor),用于发现伪造签名与恶意制品

4.2 常见误区辨析

误区辨析
“SBOM生成一次就够了”SBOM必须随每次构建再生并与制品同生命周期管理(版本化、随发布分发);静态SBOM会在依赖更新后立即失真。NTIA最低要素明确要求随构建生成并与制品关联分发。
“扫描无CVE的镜像就是安全的”CVE库只覆盖已公开漏洞;XZ事件(CVE-2024-3094)属于嵌入恶意代码(CWE-506),常规漏洞扫描器并不检出——需叠加签名验证、来源证明与行为基线。
“私有镜像仓库等于可信”私有仓库只控制“谁能推送”,不保证“推入的内容可信”;SolarWinds的构建系统在被攻陷前同样是企业内部的“可信”系统。完整性需由签名+验证闭环保证。
“SLSA L3遥不可及,先不做”SLSA设计为渐进式路径:从L1(provenance存在)到L3(隔离构建)可分阶段达成;使用GitHub Actions等托管构建并配合slsa-github-generator即可低成本起步。

05 · 研究范围与合规边界

  • 对象范围:云原生应用“代码—依赖—构建—镜像—分发—运行”全链路的供应链安全,覆盖开源与商业组件、自建与托管CI/CD、公共与私有镜像仓库。
  • 深度边界:做到标准解读、威胁建模、工具链选型与治理路线层面;具体语言生态的包管理器攻防细节与运行时入侵检测技术属其他子课题或专项研究范围。
  • 协同边界:镜像运行时的容器逃逸与运行时防护属子课题02;流水线云凭证的IAM治理复用子课题01/05的CIEM方法;SBOM与签名的合规举证与子课题06(云安全合规与评估)双向复用。
  • 时效声明:所引标准均为现行版本(SLSA v1.0、GB/T 43698-2024等);事件事实以官方披露、司法文件与NVD/CVE官方档案为准;统计口径不明处明确标注。

合规与伦理声明:①本子课题为防御研究与治理方法论研究,遵守《网络安全法》《数据安全法》《个人信息保护法》及关键信息基础设施保护制度;②文中攻击技术细节仅用于防御理解,不构成对第三方系统的操作指引;任何供应链检测仅针对自有环境或书面授权目标;③SBOM等供应链数据可能包含敏感实现信息,其分发应遵循最小必要与访问控制原则;④引用境外标准仅作方法论参照,国内合规以现行法律法规与国家标准为唯一准绳。

06 · 与课题体系的协同关系

协同子课题数据/方法交换内容
01 云安全架构与共享责任流水线云凭证遵循其IAM最小权限与短期凭证基线;其CSPM持续审计方法下沉至制品仓库与准入策略的漂移检测
02 容器与Kubernetes安全准入控制(Kyverno/policy-controller)与其PSS基线共置;签名验证策略作为Pod准入链一环;运行时检测规则消费供应链情报
04 Serverless安全函数构建发布流水线直接复用本子课题的SBOM、签名与凭证治理基线
05 多云与混合云统一防护跨云镜像复制的一致性验证、统一制品仓库存取策略与其“策略等价性”方法互通
06 云安全合规与评估GB/T 43698-2024、CRA等合规举证所需SBOM与签名证据由本子课题工具链产出;其测评发现回流威胁模型

07 · 预期成果与交付物

  • 《云原生供应链攻击谱系与威胁建模手册》(五环节攻击分类学、ATT&CK映射、14起事件复盘模板,第2页)
  • 《SBOM双格式落地指引(SPDX/CycloneDX)与VEX实践规范》(生成-分发-消费全链路,第3页)
  • 《SLSA v1.0分级实施基线与构建平台信任要求》(含provenance校验与复现验证,第4页)
  • 《镜像签名与“未签名不运行”准入实施方案》(cosign/Notation、策略例外机制,第5—6页)
  • 《CI/CD凭证治理与第三方Action管控规范》(OIDC、PPE防护、Action固定与审计,第7页)
  • 《供应链安全治理成熟度模型与12个月实施路线》(L1—L5成熟度、合规映射、季度路线图,第8页)

本节参考来源(第1页)

以下均为真实可查的权威来源(NIST、CISA、OpenSSF、CNCF、OWASP、公司官方披露与国家标准全文公开系统),用于支撑本页事实性表述。

[1]

NIST SP 800-218《Secure Software Development Framework (SSDF) Version 1.1》(2022年2月):csrc.nist.gov/pubs/sp/800/218/final。

[2]

NTIA《The Minimum Elements For a Software Bill of Materials (SBOM)》(2021年7月12日):ntia.gov。

[3]

OpenSSF:SLSA框架(v1.0,2023年4月)、Sigstore项目、OpenSSF Scorecard:slsa.dev、sigstore.dev。

[4]

SolarWinds事件:美国国会听证材料、公司SEC披露与CISA AA20-352A警报(2020年12月):cisa.gov。

[5]

CVE-2021-44228(Log4Shell)、CVE-2024-3094(XZ Utils后门)、CVE-2025-30066(tj-actions):nvd.nist.gov;CISA KEV目录:cisa.gov/known-exploited-vulnerabilities-catalog。

[6]

欧盟《网络弹性法案》Regulation (EU) 2024/2847官方文本(EUR-Lex):eur-lex.europa.eu/eli/reg/2024/2847/oj。

[7]

GB/T 43698-2024《网络安全技术 软件供应链安全要求》、GB/T 43848-2024《网络安全技术 软件产品开源代码安全评价方法》、GB/T 36637-2018《信息安全技术 ICT供应链安全风险管理指南》——国家标准全文公开系统:openstd.samr.gov.cn。

[8]

GitHub Security Lab Octopus Scanner研究(2020年5月)与GitHub Secret Scanning文档:github.blog/security。