ARTICLE / 2 MIN READ

软件供应链安全:让每个上线制品都能证明来源

从 SBOM、构建来源、签名到集群准入,搭建可验证、可追溯、可撤销的软件供应链。

依赖漏洞只是供应链风险的一部分。生产事故常常还来自“这个镜像究竟由哪个提交构建”“构建时是否下载了未锁定依赖”“线上运行的摘要是否与发布记录一致”。解决这些问题需要把证据跟着制品走。

构建阶段生成证据

CI 锁定源码 commit、构建器、依赖清单、构建参数和时间,产出 SBOM 与 provenance。制品用不可变 digest 标识,标签只用于人类阅读。构建日志和证据文件存入独立、最小权限的制品库。

签名和准入分开

发布系统用短期身份签名镜像、SBOM 和 provenance;集群准入策略只允许可信构建器、指定仓库和满足漏洞门槛的摘要。签名密钥轮换或撤销时,策略能拒绝新部署,历史实例由运行时响应流程处理。

提交 -> 隔离构建 -> SBOM/provenance -> 签名
                                  -> 注册表
部署 -> 准入校验摘要/签名/漏洞 -> 集群

依赖治理要分风险

高危漏洞、恶意包和许可证冲突进入阻断队列;低风险问题记录在升级计划中。定期重建同一 commit,比较依赖和基础镜像变化,防止“今天构建出来的同一版本”产生不同结果。

SLSA 的 provenance 规范把构建输入、构建过程和输出联系起来。它不是一次性合规文档,而是事故排查、回滚和快速定位受影响制品的索引。

参考资料:SLSA Provenance 规范

GITHUB DISCUSSION

评论与回复

评论保存在 GitHub Discussions,登录 GitHub 后即可参与,发布和回复都在本页完成。

评论区进入视口后自动加载。