主要观点:零信任已成为现代企业安全的基石,主要应用于多数组织的网络、用户身份和端点,但持续集成/持续部署(CI/CD)管道未被充分重视存在安全风险。
关键信息:
- CI/CD 管道存在长期存在的秘密、重复使用的构建容器等问题,默认应被视为不可信。
- 攻击者利用不安全的构建系统进行攻击,若 CI/CD 系统被攻陷,攻击者将获得整个应用生命周期的特权。
- 采取零信任措施,如假设 CI/CD 相关组件可被攻陷,使用短寿命身份令牌,按职责分离角色,限制特权等。
- 验证身份和工件,如强制签名提交和标签,记录出处跟踪等。
- 重新思考 CI/CD 中的秘密管理,通过策略控制访问秘密。
- 可观测性是零信任的核心要求,进行自动化异常检测。
- 设计失败应对机制,实现隔离和恢复,模拟验证系统安全性。
重要细节: - 管道中测试作业有部署权限的 IAM 角色,秘密跨作业持久存在,部分容器存储构建时凭证。
- 用 OIDC 发放短寿命身份令牌,执行后立即过期,不可在其他上下文中重用。
- 按职责分离构建、测试和部署角色,使用签名上传和验证防止工件被篡改。
- 跨受保护分支强制签名提交和标签,使用 Cosign 签名和验证工件。
- 从 Vault 按身份和作业上下文获取有策略控制的秘密,访问时间受限且可撤销。
- 为每个作业生成结构化日志并与其他日志结合,部署自动化异常检测。
- 模拟 runner 被攻陷,注入的有效载荷仅能访问受限角色,无法造成进一步危害。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。