目标先定清楚
供应链安全的核心不是“发现漏洞”,而是回答三个问题:
- 产物是谁构建的?
- 构建过程是否可复现、可验证?
- 已知风险是否能阻断上线?
最小可行链路
- 构建时生成 SBOM(CycloneDX/SPDX)。
- 对镜像和 SBOM 进行签名(cosign)。
- 在部署前做签名与策略校验(admission policy)。
流水线分层
- Build:固定基础镜像 digest,避免 tag 漂移。
- Attest:记录构建来源、commit、runner 信息。
- Verify:发布阶段验证签名、来源、漏洞阈值。
策略示例
rules:
- require_signature: true
- require_sbom: true
- max_critical_vulns: 0
- trusted_builders:
- ci-prod-runner
常见失败点
- 只签镜像不签 SBOM,证据链断裂。
- 允许“人工例外”但不留审计记录。
- 漏洞阈值过严导致全线绕过,最终失去治理。
小结
把“生成证据、验证证据、阻断风险”串成默认流水线,供应链安全才会从一次性项目变成长期能力。