vlambda博客
学习文章列表

谷歌+GitHub = 软件供应链安全

谷歌与 GitHub 合作开发了一个解决方案,该解决方案应该有助于防止软件供应链攻击,例如影响 SolarWinds 和 Codecov 的攻击。

谷歌的开源安全团队解释说,在SolarWinds 攻击中,黑客获得了构建服务器的控制权,并将恶意工件注入构建平台。Codecov 攻击中,威胁参与者绕过受信任的构建者上传他们的工件。

“如果有一种方法可以检测到交付的工件与软件的预期来源不同,那么这些攻击中的每一个都可以被阻止,”谷歌解释说。“但直到现在,生成描述软件工件的生产地点、时间和方式的可验证信息(称为出处的信息)是很困难的。这些信息使用户能够以可验证的方式将工件追溯到源头,并围绕他们所消费的内容制定基于风险的策略。”

谷歌和 GitHub 现在提出了一种新方法来生成他们所说的“不可伪造的来源”。该方法利用 GitHub Actions 工作流程进行隔离,并利用 Sigstore 签名工具来确保真实性。目标是帮助在 GitHub 运行器上构建的项目达到较高的 SLSA 水平,这让消费者确信他们的工件是值得信赖和真实的。SLSA(软件工件的供应链级别Supply-chain Levels for Software Artifacts)是一个框架,旨在通过使用户能够将软件从最终版本追溯到其源代码来提高项目的完整性。在这种情况下,目标是在总共四个级别中达到 SLSA 级别 3。

谷歌周四发布了一篇文章,重点关注执行发布过程的实体以及构建工件是否受到保护免受恶意修改。这家互联网巨头很快将分享一篇不同的博客文章,重点关注“源出处”,其中涵盖了如何保护源代码。 GitHub周四也发布了一篇文章。

对于构建出处,这些公司创建了两种原型工具:一种用于生成不可伪造的构建出处,另一种用于验证工件及其签名的出处。目前,仅支持使用 Go 编程语言创建的应用程序,但该项目也将扩展到其他项目。


“利用 SLSA 框架是确保大规模软件供应链完整性的一种行之有效的方法,”谷歌表示。“这个原型表明,由于流行的 CI/CD 系统和开源工具的最新功能,实现高 SLSA 水平比以往任何时候都容易。防篡改 (SLSA 3+) 构建服务的更多采用将有助于建立更强大的开源生态系统,并有助于弥合当前供应链中一个容易被利用的缺口。”

该项目的第一个版本预计将在几周内发布。同时,鼓励相关方进行测试并分享反馈。