
CICD 的供应链安全工具 Tekton Chains
软件供应链是指进入软件中的所有内容及其来源,简单地可以理解成软件的依赖项。依赖项是软件运行时所需的重要内容,可以是代码、二进制文件或其他组件,也可以是这些组件的来源,比如存储库或者包管理器之类的。包括代码的已知漏洞、受支持的版本、许可证信息、作者、贡献时间,以及在整个过程中的行为和任何时候接触到它的任何内容,比如用于编译、分发软件的基础架构组件。 CICD 流水线作为基础架构组件,承担着软件的构建、测试、分发和部署。作为供应链的一环,其也成为恶意攻击的目标。CICD 的行为信息可以作为安全审查的重要依据,比如构建打包的环境、操作流程、处理结果等等。 今天介绍的 Tekton Chains,便是这样的行为收集工具。 Tekton Chains Chains 是一个 Kubernetes CRD 控制器,用于管理 Tekton 中的供应链安全。Chains 使 Tekton 能够在持续交付中,捕获 PipelineRun 和 TaskRun 运行的元数据用于安全审计,实现二进制溯源和可验证的构建,成为构成保证供应链安全的基础设施的一部分。 当前 Chains(v0.9.0)提供如下功能: 使用用户提供的加密密钥,将 TaskRun 的结果(包含 TaskRun 本身和 OCI 镜像)镜像进行签名 支持类似 in-toto 的证明格式 使用多种加密密钥类型和服务(x509、KMS)进行签名 签名的存储支持多种实现 接下来的 Demo,我们还是继续使用之前在 Tekton Pipeline 实战 用的 Java 项目 tekton-test,在代码中同样还包含了 Pipeline 和 Task 的定义。