引言:in-toto 是一个开源框架,能够以密码学的方式验证构件生产路径上的每个组件和步骤。它可与主流的构建工具、部署工具进行集成。in-toto已经被CNCF技术监督委员会 (Technical Oversight Committee,TOC)接纳为CNCF孵化项目。
1. 背景
由于近年来,全球供应链攻击事件频发,安全问题日益凸显。传统的供应链安全管理方法难以应对日益复杂的威胁环境,因此需要一个更为有效的方法来确保供应链的安全。
2. 简介
intoto提供了一个保护软件供应链的完整性的开源框架,通过验证链中的每个任务都是按计划执行的,仅由授权人员执行,并且构建在传输过程中没有被篡改来完成。
in-toto需要项目所有者创建布局。布局列出了软件供应链的步骤序列,以及授权执行这些步骤的专职人员。当专职人员总共执行一个步骤时,收集有关所用命令和相关文件的信息,并将其存储在链接元数据文件中。因此,链接文件提供了建立连续链所需的证据,该连续链可以根据布局中定义的步骤进行验证。
由项目所有者签名的布局以及由指定功能人员签名的链接作为最终产品的一部分发布,并且可以手动或通过自动工具(例如,包管理器)进行验证。
3. 布局(Layout)
布局由项目所有者创建,要求包含以下内容:
- 到期日:到期日;
- 自述文件:供应链的可选描述;
- 功能密钥:公钥,用于验证链路元数据签名;
- 签名:使用项目所有者密钥创建的一个或多个布局签名;
- 软件供应链步骤: 对应于专职人员作为软件供应链的一部分执行的步骤。布局中定义的步骤列出了有权限执行步骤的功能人员(通过键id)。步骤需要一个唯一的名称来将它们(在验证时)与专职人员使用in-toto工具执行步骤时创建的链接元数据相关联。此外,步骤必须具有物料和产品规则,这些规则定义了步骤应该操作的文件。
- 检查: 定义验证过程中要运行的命令,还可以列出物料和产品规则。
4. 构件规则
软件供应链通常在一组文件上操作,例如源代码、可执行文件、包等。in-totos可调用这些文件。物料是在执行步骤或检查时使用的工件。同样,产品是执行步骤所产生的工件。
in-toto布局提供了一种简单的规则语言来授权或实施步骤的工件,并将它们链接在一起。这为任何给定的步骤或检查增加了以下保证:
- 只有项目所有者授权的工件才会被创建、修改或删除;
- 每个定义的创建、修改和删除都被强制执行,并且也限制在其定义的范围内,该范围将后续步骤和检查链接在一起。
软件生产者可通过使用以下任一规则(通常是多个)授权、强制执行和链接物料和产品来适当保护其供应链:
CREATE <pattern>
DELETE <pattern>
MODIFY <pattern>
ALLOW <pattern>
DISALLOW <pattern>
REQUIRE <file>
MATCH <pattern> [IN <source-path-prefix>] WITH (MATERIALS|PRODUCTS) [IN <destination-path-prefix>] FROM <step>
Note:默认情况下,in-toto的工件规则允许工件存在,前提是它们没有被明确禁止。因此,建议将
DISALLOW*
调用作为大多数步骤定义的最终规则。要了解有关不同规则类型、它们的保证以及如何应用它们的更多信息,请参阅https://github.com/in-toto/in-toto。
5. 优势
in-toto 是一个开源的供应链安全管理框架,旨在帮助组织确保其供应链的安全性和透明度,in-toto 框架具有以下优势:
-
透明度:in-toto 框架通过建立供应商与采购方之间的信任关系,实现供应链各环节的透明度。采购方可以实时了解供应商的安全状况,确保供应链的安全。
-
自动化:in-toto 框架支持自动化流程,可以快速地识别和管理供应链中的安全风险。通过与现有系统(如ERP系统)集成,可以实现供应链安全数据的自动收集和分析。
-
灵活性:in-toto 框架适用于各种规模和组织类型的企业,可以根据企业的具体需求进行定制和扩展。此外,in-toto 支持与多种安全标准和规范(如ISO 27001、NIST CSF等)相结合,为企业提供全面的安全管理方案。
-
持续改进:in-toto 框架通过持续监测和评估供应链的安全状况,推动供应链安全持续改进。企业可以根据评估结果,采取相应的措施加强供应链安全管理,降低安全风险。
-
开源:in-toto 框架开源,意味着企业可以免费使用和修改源代码,根据自身需求进行定制。这有助于降低企业的安全管理成本,提高供应链安全性。
-
合规性:in-toto 框架可以帮助企业满足各种法规和政策要求,如欧盟的《通用数据保护条例》(GDPR)、美国的《加州消费者隐私法》(CCPA)等。这有助于降低企业在合规方面的风险。
总之,in-toto 框架作为一种创新性的供应链安全管理工具,可以帮助企业提高供应链安全水平,降低风险,并确保合规性。
[1] https://in-toto.io/
[2] https://github.com/in-toto/in-toto
[3] https://github.com/in-toto/docs/blob/master/in-toto-spec.md
[4] https://link.zhihu.com/?target=https%3A//intoto.devstats.cncf.io/d/18/overall-project-statistics-table%3ForgId%3D1