软件供应链安全
软件供应链安全 是什么?
软件供应链安全保护软件生产链中每一个环节——源代码、依赖、构建、签名、分发与部署——使其免受篡改、恶意代码与完整性破坏的学科。
软件供应链安全将代码视为由众多来源组装而成,而不是从头编写。它涵盖源代码仓库保护、开发者身份、安全的 CI/CD、依赖治理、SBOM 与 CBOM 的生成、签名与验证(Sigstore、Cosign、in-toto)、按照 SLSA 进行的来源证明、漏洞管理、机密管理以及在部署阶段执行策略。这一学科是在 SolarWinds、Codecov、Log4Shell、XZ Utils 以及依赖混淆等事件推动下兴起的。相关框架与指南包括 SLSA、NIST SSDF (SP 800-218)、CISA Secure by Design、美国第 14028 号行政令以及欧盟《网络韧性法案》,它们的共同方向是建立可签名、可验证、透明的流水线。
● 示例
- 01
端到端签名的流水线,具备 SLSA L3 等级的 provenance,并由 Cosign 验证部署。
- 02
经过策展的内部包代理,结合基于 SBOM 的漏洞响应流程。
● 常见问题
软件供应链安全 是什么?
保护软件生产链中每一个环节——源代码、依赖、构建、签名、分发与部署——使其免受篡改、恶意代码与完整性破坏的学科。 它属于网络安全的 应用安全 分类。
软件供应链安全 是什么意思?
保护软件生产链中每一个环节——源代码、依赖、构建、签名、分发与部署——使其免受篡改、恶意代码与完整性破坏的学科。
软件供应链安全 是如何工作的?
软件供应链安全将代码视为由众多来源组装而成,而不是从头编写。它涵盖源代码仓库保护、开发者身份、安全的 CI/CD、依赖治理、SBOM 与 CBOM 的生成、签名与验证(Sigstore、Cosign、in-toto)、按照 SLSA 进行的来源证明、漏洞管理、机密管理以及在部署阶段执行策略。这一学科是在 SolarWinds、Codecov、Log4Shell、XZ Utils 以及依赖混淆等事件推动下兴起的。相关框架与指南包括 SLSA、NIST SSDF (SP 800-218)、CISA Secure by Design、美国第 14028 号行政令以及欧盟《网络韧性法案》,它们的共同方向是建立可签名、可验证、透明的流水线。
如何防御 软件供应链安全?
针对 软件供应链安全 的防御通常结合技术控制与运营实践,详见上方完整定义。
软件供应链安全 还有哪些其他名称?
常见的别称包括: 软件供应链, 构建链安全。
● 相关术语
- attacks№ 1116
供应链攻击
通过攻陷可信的第三方软件、硬件或服务提供商,进而入侵其下游客户的攻击方式。
- appsec№ 1053
SLSA Framework
Supply-chain Levels for Software Artifacts:OpenSSF 发布的分级要求集合,逐级强化软件构建、签名与验证,以抵御供应链篡改。
- appsec№ 1068
软件物料清单(SBOM)
以机器可读形式正式描述构成一款软件的组件、库与依赖项及其版本与关系的清单。
- appsec№ 1044
Sigstore
Linux 基金会下的开源项目,通过短期密钥、OIDC 身份和透明日志,使签名、验证与保护软件工件变得简单。
- appsec№ 166
CI/CD 安全
保护持续集成与持续交付流水线,防止其被入侵、被注入恶意代码、机密泄露与未授权部署的一整套控制。
- appsec№ 870
来源证明(Provenance Attestation)
对软件工件如何生成(源代码、构建系统、参数与依赖)进行签名且可机器验证的声明,使使用者能够信任其来源。