1.0版现在可用!请参阅最新文档在这里.

安全级别

SLSA分为一系列级别完整性担保。这给了你信心软件没有被篡改,可以安全地追溯到它的来源。

本页是SLSA级别的信息概述,描述了其目的和保证。各级规范性要求见要求.

什么是SLSA?

SLSA是一套可逐步采用的安全指南,由业界共识。SLSA制定的标准是两者的指导原则软件生产者和消费者:生产者可以遵循指南他们的软件更加安全,消费者可以根据软件做出决策包裹的安全姿态。SLSA的四个级别设计为增量可采取行动,并防止特定的完整性攻击。SLSA 4表示理想的结束状态,较低级别表示具有以下特征的里程碑相应的完整性保证。

级别摘要

水平 说明 例子
1 构建过程文档 未签名来源
2 构建服务的防篡改 托管源/构建,签名源
对特定威胁的额外抵抗 主机上的安全控制,来源不可伪造
4 最高级别的信心和信任 双方审查+密封构建

要达到理想的安全状态可能需要几年的时间——中间里程碑很重要。SLSA指导您逐步提高软件的安全性。关键基础设施或重要业务运营中使用的工件可能希望获得更高级别的安全性,而风险较低的软件可以在它们感到舒适时停止。

详细解释

水平 要求
0 没有保证。SLSA 0表示缺乏任何SLSA级别。
1 构建过程必须完全脚本化/自动化并生成起源。起源是关于工件是如何构建的元数据,包括构建过程、顶级源和依赖性。了解来源可以让软件消费者做出基于风险的安全决策。SLSA 1的源代码不能防止篡改,但它提供了基本级别的代码源识别,并有助于漏洞管理。
2 需要使用版本控制和生成经过身份验证的来源的托管生成服务。这些附加要求使软件消费者对软件的起源有更大的信心。在这个级别上,源代码可以防止篡改到构建服务受信任的程度。SLSA 2还提供了到SLSA 3的简单升级路径。
源和构建平台符合特定标准,分别确保源的可审计性和源的完整性。我们设想了一个认证过程,通过该过程,审计师可以证明平台符合要求,消费者可以依赖这些要求。SLSA 3通过防止特定类别的威胁(如交叉构建污染),提供了比早期级别更强的防篡改保护。
4 需要两人对所有更改进行审查,并需要一个密封的、可复制的构建过程。两人评审是一种行业最佳实践,可以发现错误并阻止不良行为。Hermetic构建保证源代码的依赖项列表是完整的。可复制的构建虽然不是严格要求的,但提供了许多可审计性和可靠性优势。总的来说,SLSA 4让消费者对软件未被篡改充满信心。

SLSA级别不可传递(请参阅我们的常见问题). 这使得每个工件的SLSA评级彼此独立,允许基于风险的并行进度和优先级。该级别描述了工件的构建过程和顶级源的完整性保护,但没有描述工件的依赖性。依赖项有自己的SLSA评级,可以从SLSA 0依赖项构建SLSA 4工件。

限制

SLSA可以帮助减少软件工件中的供应链威胁,但存在局限性。

  • 许多工件在供应链中存在大量依赖关系。完整的依赖关系图可能非常大。
  • 实际上,从事安全工作的团队需要识别并关注供应链中的重要组件。这可以手动执行,但工作量可能很大。
  • 工件的SLSA级别不可传递(请参阅我们的常见问题)和附属机构有自己的SLSA评级。这意味着可以从SLSA 0依赖项构建SLSA 4工件。因此,虽然主要工件具有很强的安全性,但其他地方仍可能存在风险。这些风险的总和将帮助软件消费者了解如何以及在何处使用SLSA 4工件。
  • 虽然这些任务的自动化会有所帮助,但并不是每个软件消费者都能全面检查每个工件的整个图形。为了缩小这一差距,审计师和认证机构可以验证并断言某些内容符合SLSA的要求。这对于封闭源代码软件来说尤其有价值。

作为我们路线图的一部分,我们将探讨如何识别重要组件,如何确定整个供应链的总风险,以及认证的作用。