软件制品供应链安全等级 (SLSA)
什么是 SLSA?
软件制品供应链安全等级 (SLSA) 是一个安全框架,旨在增强软件供应链的完整性。由 Google 开发并由开源安全基金会 (OpenSSF) 维护,SLSA 提供了一套指南和最佳实践,以防止篡改、提高完整性,并保护软件项目中的包和基础设施。
SLSA 定义了四个构建等级 (0–3),其安全严格性逐步提升,重点关注构建来源、源码完整性和构建环境安全等领域。每个等级都建立在前一个等级的基础上,为实现更高水平的软件供应链安全提供结构化方法。
为什么 SLSA 很重要?
由于软件供应链的复杂性和相互关联性日益增加,SLSA 对现代软件开发至关重要。SolarWinds 入侵等供应链攻击凸显了软件开发流程中的漏洞。通过实施 SLSA,组织可以:
-
确保制品完整性:验证软件制品在构建和部署过程中是否未被篡改。
-
增强构建来源:保留软件制品如何以及何时生成的可验证记录,提供透明度和问责制。
-
保护构建环境:实施控制措施,防止构建系统被未经授权的访问和修改。
-
降低供应链风险:降低将漏洞或恶意代码引入软件供应链的风险。
什么是 SLSA 构建等级 3?
SLSA 构建等级 3(强化构建)是 SLSA 框架中四个递进等级中的最高等级。它引入了严格要求,以确保软件制品被安全且可追溯地构建。要满足等级 3,构建必须:
- 完全自动化和脚本化,以防止手动篡改
- 使用强制源码和构建器身份验证的可信构建服务
- 生成描述制品如何构建的已签名、防篡改的来源记录
- 捕获有关构建环境、源码仓库和构建步骤的元数据
该等级提供了强有力的保证,即软件是在受控、可审计的环境中从预期源码构建的,这显著降低了供应链攻击的风险。
Docker 强化镜像和 SLSA
Docker 强化镜像 (DHIs) 是专为现代生产环境构建的安全默认容器镜像。每个 DHI 都经过加密签名,并符合 SLSA 构建等级 3 标准,确保可验证的构建来源和完整性。
通过将符合 SLSA 的 DHI 集成到您的开发和部署流程中,您可以:
-
实现更高的安全等级:使用符合严格安全标准的镜像,降低漏洞和攻击的风险。
-
简化合规性:利用内置功能(如签名的软件物料清单 (SBOM) 和漏洞例外 (VEX) 声明),便于符合 FedRAMP 等法规。
-
增强透明度:访问有关每个镜像组件和构建流程的详细信息,促进透明度和信任。
-
简化审计:利用可验证的构建记录和签名,简化安全审计和评估。
获取并验证 Docker 强化镜像的 SLSA 来源
每个 Docker 强化镜像 (DHI) 都经过加密签名,并包含证明。这些证明提供了可验证的构建来源,并展示了对 SLSA 构建等级 3 标准的遵守。
要获取并验证 DHI 的 SLSA 来源,您可以使用 Docker Scout。
$ docker scout attest get dhi.io/<image>:<tag> \
--predicate-type https://slsa.dev/provenance/v0.2 \
--verify
例如:
$ docker scout attest get dhi.io/node:20.19-debian12 \
--predicate-type https://slsa.dev/provenance/v0.2 \
--verify
资源
有关 SLSA 定义和 Docker Build 的更多详细信息,请参阅 SLSA 定义。