本文作者
Chris Hughes,Aquia的联合创始人及CISO,拥有近20年的网络安全经验。
SolarWinds 和 Log4j 等影响广泛的软件供应链攻击事件引起了业界对软件供应链安全的关注。许多企业开始让安全团队选型安全工具,以确保第三方软件的安全性。软件的使用无处不在,根据世界经济论坛(WEF)的数据,数字化平台占据了GDP的60%。尽管我们当前使用软件的方式正在改变世界,但目前依旧欠缺方法来保护整个软件供应链的安全。软件供应链通常不使用数字签名,或者使用传统的数字签名,这对于自动化和审计来说是一个挑战。
Sigstore 是什么?Sigstore 网站:https://www.sigstore.dev/
恰如 Sigstore 的共创者和 ChAInguard 的创始人 Dan Lorenc 所说,sigstore 是“一个为软件开发者提供的免费签名服务,通过启用由透明日志(Transparent Log)技术支持的加密软件签名来提高软件供应链的安全性。”
Sigstore 已经被谁采用了?Kube.NETes 宣布它正在对 sigstore 进行标准化,并在 1.24 版本中使用它。此外,linux 基金会和 OpenSSF 最近发布了“开源软件安全动员计划”,强调数字签名以增强软件供应链的信任,推荐的方法包括使用 sigstore 项目,因为它包含关键组件,例如证书授权、透明日志(Transparent Log)和生态系统专用库。
拆解 Sigstore 项目Sigstore 的成立是为了帮助解决开源软件(OSS)供应链中的一些现有缺陷,以及我们如何处理安全性、数字签名和验证开源软件组件的真实性。这一点至关重要,因为90%的IT企业都在使用开源软件,并且各个组织都在优先聘用开源人才,而软件供应链攻击事件在近几年层出不穷。
Sigstore 汇集了几个开源软件工具,如 Fulcio、Cosign和Rekor,以协助进行数字签名、验证和代码来源(Code Provenance)检查。Code Provenance 可以监管整条供应链,显示代码的来源和从何处集成。Uber 隐私和安全团队曾发表一篇博客,讨论了他们处理 Code Provenance 的路径,请查阅:
https://medium.com/uber-security-privacy/code-provenance-Application-security-77ebfa4b6bc5
接下来,我们开始拆解 Sigstore 的核心组件,首先从 Fulcio 开始。Fulcio 是根证书颁发机构,主要关注代码签名。它是免费的并且颁发与 OpeID Connect (OIDC) 相关的证书,而且经常使用开发人员已经关联的现有标识符。随着云原生架构及容器部署的普及和快速增长,对容器进行签名已经成为重要的安全最佳实践。
密钥管理是一项十分繁琐的工作,通常由云服务提供商(CSP)或第三方提供管理服务。Sigstore 通过支持 Cosign 降低了这种复杂性——通过临时密钥使用“无密钥签名”缓解了密钥管理的挑战。尽管使用的是临时密钥,但你仍然可以通过 Fulcio 的时间戳功能保证签名的有效性。
这就是 Cosign 的用武之地,因为它支持签名选项(signing option),并能无缝支持生成密钥对和容器签名工件,以存储在容器镜像仓库中。这使云原生环境能够根据公钥验证容器,并且确保容器由可信的来源签署。在构建期间对镜像工件进行数字签名并验证这些签名是否可信,这是CNCF在云原生安全白皮书中强调的其中一个安全最佳实践。
接下来是 Rekor,它是作为软件维护和构建活动的一部分而创建的不可变和防篡改的组件。它使得购买或将软件集成到开发流程中的开发人员可以检查元数据,并他们对正在使用的软件和整个生命周期中涉及的活动/行为都已充分了解,进而可以根据所了解的信息、风险做出决定。回到我们之前提到的关于软件来源的观点,开发者可以使用 Rekor 通过透明日志来了解软件来源。
另一个值得关注的是一些最近发布的安全指南,如软件构件的供应链级别(SLSA)和NIST的安全软件开发框架(SSDF)、SLSA 3级强调需要审计软件来源的安全性,Sigstore也支持这一功能。SSDF 中提到的具体做法也表明需要提供来源和验证机制。借助 Sigstore,你可以让你所在的组织与最佳实践保持一致,并降低软件供应链的安全风险。
Sigstore 未来如何发展?目前,Sigstore 项目仍处于初级阶段,但随着 Kubernetes 等领先开源软件项目及 Linux 基金会和 OpenSSF 的开源软件安全动员计划对它的认可,未来看起来一片光明。
随着开源软件的被越来越多企业采用和业界推动软件供应链的实践,Sigstore 将会在整个生态系统中发挥重要作用,如数字签名、真实性和安全性等关键领域。要控制软件供应链中的安全风险,就需要企业做出明智的决定,而掌握软件产品的来源以及软件创建和分发的细节至关重要,这就是 Sigstore 的优势所在,并且很有可能在不远的将来 Sigstore 会被业界大规模采用。