CI/CD 安全
CI/CD 安全 是什么?
CI/CD 安全保护持续集成与持续交付流水线,防止其被入侵、被注入恶意代码、机密泄露与未授权部署的一整套控制。
CI/CD 系统位于源代码与生产之间,因此一旦被攻破,攻击者几乎可以任意控制最终运行的内容。CI/CD 安全涵盖身份管理(最小权限的 OIDC 令牌、联合身份、避免长期部署密钥)、流水线配置(固定的 runner、签名的构建步骤、隔离的 job)、机密管理(密钥仓库、即时凭据、机密扫描、日志脱敏)、源代码完整性(签名提交、分支保护、强制评审)、供应链控制(SBOM、SLSA、签名工件),以及流水线控制器自身的运行时防护。SolarWinds、Codecov 与 SCMKit 等事件表明 CI/CD 是高价值目标。相关框架包括 OWASP CI/CD Top 10 以及 CISA 关于软件供应链的指南。
● 示例
- 01
GitHub Actions 通过 OIDC 联邦访问 AWS,无需长期密钥。
- 02
在主干分支强制启用 CODEOWNERS、签名提交与必填的代码评审。
● 常见问题
CI/CD 安全 是什么?
保护持续集成与持续交付流水线,防止其被入侵、被注入恶意代码、机密泄露与未授权部署的一整套控制。 它属于网络安全的 应用安全 分类。
CI/CD 安全 是什么意思?
保护持续集成与持续交付流水线,防止其被入侵、被注入恶意代码、机密泄露与未授权部署的一整套控制。
CI/CD 安全 是如何工作的?
CI/CD 系统位于源代码与生产之间,因此一旦被攻破,攻击者几乎可以任意控制最终运行的内容。CI/CD 安全涵盖身份管理(最小权限的 OIDC 令牌、联合身份、避免长期部署密钥)、流水线配置(固定的 runner、签名的构建步骤、隔离的 job)、机密管理(密钥仓库、即时凭据、机密扫描、日志脱敏)、源代码完整性(签名提交、分支保护、强制评审)、供应链控制(SBOM、SLSA、签名工件),以及流水线控制器自身的运行时防护。SolarWinds、Codecov 与 SCMKit 等事件表明 CI/CD 是高价值目标。相关框架包括 OWASP CI/CD Top 10 以及 CISA 关于软件供应链的指南。
如何防御 CI/CD 安全?
针对 CI/CD 安全 的防御通常结合技术控制与运营实践,详见上方完整定义。
CI/CD 安全 还有哪些其他名称?
常见的别称包括: 流水线安全, Pipeline 安全。
● 相关术语
- appsec№ 1069
软件供应链安全
保护软件生产链中每一个环节——源代码、依赖、构建、签名、分发与部署——使其免受篡改、恶意代码与完整性破坏的学科。
- appsec№ 1053
SLSA Framework
Supply-chain Levels for Software Artifacts:OpenSSF 发布的分级要求集合,逐级强化软件构建、签名与验证,以抵御供应链篡改。
- appsec№ 459
硬编码机密(代码中的密钥)
把凭据、API 密钥、令牌或密码学材料直接写入源代码、配置文件或容器镜像中,极易被发现并被滥用。
- appsec№ 444
GitOps 安全
针对 GitOps 工作流的安全实践:基础设施与应用的声明式期望状态保存在 Git 中,由自动化控制器持续与生产环境进行对账。
- appsec№ 784
软件包签名
对软件包进行加密签名,使使用者能够验证发布者身份并确认工件在发布后未被篡改。
- appsec№ 309
DevSecOps
一种将安全责任融入 DevOps 流程的文化与实践,使团队能够持续、高效地交付安全的软件。
● 参见
- № 305依赖固定
- № 921可复现构建
- № 563JetBrains TeamCity (CVE-2024-27198)
- № 196Codecov Bash Uploader 入侵事件
- № 783OWASP ZAP