什么是“供应链”? 首先,我们先来了解一下日常生活中的供应链是什么。想象一下通过移动应用程序订购披萨。该链条涉及不同的环节:零售商(比萨饼店)、分销商(提供半成品)和原料生产商(农场或工厂)。然而,在 DevSecOps 的世界中,需要将两个新元素添加到这条链中——攻击者及其可能攻击的后果。 现在想象一下,攻击者获得了对该链中某个链接的访问权限。
开源解决方案如何帮助完成此
例如,如果他损害了经销商,那面临风险。如果攻击者进入 电话号码库 生产原料的工厂,感染可能会进一步传播,影响整个链条。最后,如果“农场”(原材料供应商)不可靠 – 例如,由于使用劣质种子 – 这将对最终产品产生负面影响。 供应链(现实世界) 供应链(现实世界) 现在让我们将此示例转化为软件开发环境。软件供应链包括关键阶段,例如: 代码和依赖项; CI/CD系统(持续集成/持续交付); 工件注册表(存储包、容器和其他依赖项的位置); 执行平台(部署和运行应用程序的地方)。 软件供应链 软件供应链 这些链接中的每一个都容易受到攻击。如果攻击者能够访问哪怕一个元素,都可能对整个系统造成严重后果。
么所有比萨饼店的商店都将
因此,保护整个供应链安全的公司的首要任务。 软件供应链中的主要威胁 在保护软件供应链的过程中可能会出现几个关键威胁。以下是其中一些: 未声明的功能 这些是在上传到公共存储库(例如 GitHub)的源代码中意外出现的隐藏功能或功能。此类更改可能会在开发人员不知情的情况下引入,并构成对系统的攻击。 组织秘密泄露 常见错误之一是在开放存储库中意外发布敏感信息。这可能是密码、API 密钥、访问令牌或攻击者可用来闯入公司系统的其他关键数据。 工件中的漏洞 问题可能出现在管理工件(例如包、容器或库)的级别上。对下载代码的验证不充分、缺乏有关谁编译代码以及在交付过程中如何修改代码的信息,都会造成安全风险。 CI/CD 系统中的漏洞 这方面值得特别关注。从安全角度来看,自动组装和部署应用程序的 CI/CD 系统仍然没有得到充分研究,特别是在俄罗斯领域。
是任何希望保护其应用程序和数据
在用于保护 CI/CD 前,这一重要方面仍将受到威胁。攻击者可以利用 CI/CD 链中的漏洞来渗透端到端系统。 注册中心和执行平台中的漏洞容器 注册中心、持续集成系统和执行平台(例如 Kubernetes)也可能容易受到攻击。 软件供应链威胁 软件供应链威胁 尽管存在许多建议、规范文件和框架,但其中许多对工程师 USB 目录 缺乏实用价值。因此,不仅要遵守监管要求,还要开发技术解决方案以增强每个阶段的安全性。 软件供应链安全 (SSCS) 标准和框架 已经开发了许多标准和框架来保护软件供应链。以下是一些最重要的: CIS(互联网安全中心) CIS 软件供应链指南:保护软件供应链的指南。 CIS 软件供应链基准:一组用于评估供应链安全的基准。 S2C2F(安全供应链消费框架) 包括帮助组织安全实施和使用开源解决方案的实用要求和工具。 SCITT(供应链完整性、透明度和信任) 旨在确保软件供应链的透明度和信任的倡议。
的高质量材料和技术出现之
SCITT 制定了有关供应链中主题、证据、政策和工件真实性的标准。 OSC&R(开放软件供应链攻击参考) 软件供应链安全攻击矩阵:软件供应链上的攻击矩阵,可让您将可能的威胁和攻击系统化。 证据的公布和保留 证据应公布并保留以供日后审查。这是重要的一步,因为它确保了流程的透明度。 证据验证 在最后阶段,将对所有收集的数据进行检查,以确 2022 年最适合您电子商务的 10 款 ERP 认其真实性和可靠性。 SSCS圈子 SSCS圈子 2022 年之前流程的演变 以前,该过程涉及多个步骤,例如: Provenance 是一个工件,用于记录构建过程中的环境变化并指示构建了什么产品。 证明 是一份签名声明,确认工件已通过所有必需的测试。 签名 是对文物来源的确认。
整性并确保软件包和基础
SBOM(软件物料清单) 是所有软件组件及其依赖项的列表。 简图 如今,这个过程可以简化为两个关键要素:签名和证明。在整体框架内 , 认证可以包括在开发过程中收集的任何声明。例如,各正确的表述? 要创建有效的声明,您需要添加有关主题(负责执行特定任务的人员或系统)的信息。当证明作者身份的签名添加到此声明中时,我们会收到符合 SLSA 的证明。证明确保工件已被验证并且结果属于验证方。 软件供应链安全 (SSCS) 技术 我们已经讨论了生成和收集证据的阶段。现在让我们继续存储这些数据,这是供应链安全流程中同样重要的一部分。需要考虑的关键问题: 在哪里存储 SSCS 元数据? 如何安全地分发这些数据? 我们的用户需要什么元数据? 消费者如何评估文物的安全性? 如何保护数据免遭黑客攻击? 现有的 SSCS 数据是否适合所有工件类型? 这些问题有助于制定元数据存储库的要求:它必须是 不可变的、 防篡改的 并且 独立 于工件本身。
SSCS 中的数据存储:使用什么? 现代世界中已经存在描述良好的数据存储结构,其中许多结构都基于 Merkle 树的概念。这是一种允许您以片段形式存储数据并为所有这些片段计算公共哈希的算法,这保证了数据的完整性。你可以把它想象成一个湖,湖底的每块石头都是一个信息块。