软件供应链安全之Sigstore

近几年关于供应链安全领域的攻击数不胜数,其中著名的有 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 是一个安全框架,一个标准和控制清单,用于防止篡改、提高完整性以及保护项目、业务或企业中的包和基础设施。分为以下四级:

现阶段 Sigstore 实现了自动化对组件进行数字签名和验证的能力,解决了相关信任难点如透明日志、私钥管理等。随着云原生技术的发展以及行业对供应链安全的重视,Sigstore 将会成为新的行业标准。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值