近几年关于供应链安全领域的攻击数不胜数,其中著名的有 Microsoft Exchange Server、Colonial pipeline 和 SolarWinds breach。在 SolarWinds 攻击之前,识别依赖关系中的威胁约束在开发人员身上,每个人都控制着自己的模块,并根据现有的供应链做出验证。SolarWinds 攻击让安全人员了解到供应链安全不仅需要扫描项目的依赖项,还需要扫描之前所有内容(依赖的依赖)以确保所有内容的真实性和安全性。
一、什么是Sigstore
供应链安全的一个关键部分就是软件的完整性和真实性,即部署到生产中的软件未被篡改且来自有效来源。这种首先是在构建软件后对软件进行签名,然后在部署前对生成的签名进行验证来实现的。Sigstore 是一个由谷歌、红帽、Chainguard、普渡大学、VMware、Twitter、Citi、Charm、Anchore 和 Iron Bank共同支持的 Linux 基金会项目,所有开发人员和软件提供商都可以免费使用。Sigstore 的代码和操作工具是 100% 开源的,目的是为了简化加密软件签名的使用以此来改善开源软件供应链。在软件的开发到发布的整个过程中,对其做到加签和验签不是一件简单的事,尤其是对于非安全人员和现有工具(如 PGP)的用户体验来说,还有很多不足之处(如密钥管理),而 Sigstore 很好地解决了这一难点。
使用Sigstore对工作进行签名的开源和闭源软件图二、Sigstore特点
1、自动密钥管理:使用 Cosign 来生成签名和验证工件所需的密钥对,尽可能自动化,使用者无须维护管理密钥。
2、透明日志技术:基于 RFC 3161协议的防篡改日志来实现透明日志,通过透明日志可以找到并验证签名,还可以检查是否有人更改了源代码、构建平台或工件存储库。
Sigstore 不仅是一个工具或软件,还是简化软件签名和透明度的项目集合,其主要组件包括:
(1)Cosign(容器签名、验证和存储),其职责是签署容器并将信息发布到 OCI 注册中心。
(2)Fulcio(根证书颁发机构),其工作是颁发代码签名证书并将 OIDC 身份嵌入到代码签名证书中。
(3)Rekor(透明日志),其是附加的、不可变的分类账,作为由谁签署的内容的透明真实来源,类似区块链技术。
(4)OpenID Connect(认证方式),作为一个身份层,用于检查真实性,同时允许客户端请求和接收有关经过身份验证的会话和用户的信息。
三、Sigstore工作原理流程
1、cosign 在内存中生成一个临时公钥/私钥对。
2、用户通过 Google 或 GitHub 等 OpenID Connect (OIDC) 提供商进行身份验证,验证电子邮件地址的所有权和先前生成的密钥的所有权。
3、如果身份验证成功,用户将收到代码签名证书。
4、代码签名证书发布到透明日志,以便其他人验证。
5、用户使用代码签名证书及其密钥对工件进行签名。
6、来自工件的签名被发布到透明日志。
7、用于创建签名的短期代码签名凭证被销毁。
8、可以发布已签名的工件(例如,在容器注册表上)。
四、总结
Sigstore 是实现 SLSA 2级标准的关键项目,也是实现 SLSA 3级标准的开端。2021年初,Kubernetes 团队开始探索 SLSA 合规性,以提高 Kubernetes 软件供应链的安全性,并且发布 Kubernetes 1.24 以及所有未来的版本都将包括加密签名的 Sigstore 证书。
注:SLSA 是一个安全框架,一个标准和控制清单,用于防止篡改、提高完整性以及保护项目、业务或企业中的包和基础设施。分为以下四级:
SLSA级数标准图现阶段 Sigstore 实现了自动化对组件进行数字签名和验证的能力,解决了相关信任难点如透明日志、私钥管理等。随着云原生技术的发展以及行业对供应链安全的重视,Sigstore 将会成为新的行业标准。
网友评论