近日,Google 推出了 SLSA(Supply chain Levels for Software Artifacts),这是一个新的端到端框架,Google 希望通过 SLSA 能推动标准和准则的实施,以确保整个软件供应链中软件工件的完整性。
供应链完整性攻击这两年大幅增加,而且成为影响所有用户的共通攻击途径。Google 开源安全团队指出,虽然市面上已有局部性的解决方案,但是还没有完整的端到端框架可定义如何缓解软件供应链上的威胁,以及提供一定的安全保证。有鉴于近来像 Solaris 和 Codecov 如此大规模的攻击,Google 认为有必要制定一个共通框架,以保护开发商及用户。
Google 在声明中表示:“SLSA 被设计成渐进式和可操作的,并在每一步都提供安全优势。一旦一个工件符合最高级别的要求,消费者就可以相信它没有被篡改过,并且可以安全地追溯到源头——这对于今天的大多数软件来说是很难做到的,甚至是不可能做到的。SLSA 的目标是改善行业状况,特别是开源代码的状况,以抵御最紧迫的完整性威胁。有了 SLSA,消费者可以对他们所使用的软件的安全状况做出明智的选择。“
Google 表示,SLSA 框架的灵感来自其强制性的内部 「Binary Authorization for Borg」 执行检查器,该检查器可确保生产软件得到适当的审查和授权,特别是在代码可以访问用户数据的情况下。Binary Authorization for Borg 已经在 Google 内部使用了 8 年时间,并且是 Google 所有生产工作负载的强制性检查器。
Google 表示,该框架由四个级别组成—— SLSA 1 至 SLSA 4 -- 递增的数字与递增的完整性保障相对应。
例如,SLSA 1 要求构建过程完全脚本化/自动化并生成出处(关于工件如何构建的元数据,包括构建过程、顶级来源和依赖关系);而 SLSA 2 将要求使用版本控制和生成经过认证出处的托管构建服务。
对于更高的级别,SLSA 3 将要求源代码和构建平台需要满足特定的标准,以保证源代码的可审计性和来源的完整性;而 SLSA 4 将要求对所有的变化进行双人审查,并采用可重复的构建过程。
Google 表示:“双人审查是行业中捕捉错误和阻止不良行为的最佳做法。“
拟议的框架目前可在 GitHub 上找到,目前包括试图就 "安全" 软件供应链的定义达成共识;组织的认证程序,以证明符合所采用的标准;以及技术控制,以记录出处和检测或防止不符合规定的地方。