通过 SBOM 降低软件供应链风险

如果我们从过去几年的一些主要软件供应链攻击中学到了什么,例如 SolarWinds的Log4Shell 攻击,这类攻击可能具有相当大的破坏性。但在当今互联的数字世界中,企业越来越难以避免它们。

没有人能够免受软件供应链攻击。更糟糕的是,破坏一家公司可能会使软件供应链上的数千家公司遭受攻击。这意味着仅仅保护自己的内部系统是不够的;您的组织可以主动降低供应链风险并减轻攻击的方法之一是采用称为软件物料清单 (SBOM) 的概念。

您的组织很可能依赖各种外部系统来运行日常运营的各个方面。但是,除非提供商披露,否则您可能无法了解这些外部系统带来的风险。 SBOM 充当全面的成分列表,可深入了解您使用的软件组件的组成部分。该文件已成为 管理供应链攻击风险的关键组成部分.

SBOM在供应链风险管理中的作用是什么?

为了充分了解您使用的第三方软件的潜力并降低风险,您需要了解其组成。软件物料清单 (SBOM) 提供完全透明度,从而使您可以更好地控制内部系统的安全性。

软件物料清单是软件或应用程序中的组件、服务和第三方依赖项的列表。 BOM 的概念并不是一个新概念,但直到最近它才在软件领域得到应用。这一概念的根源可以追溯到制造业,制造商通常使用来自不同供应商的零件来制造产品。为了跟踪产品的历史并方便将来的维护,我们会生成一份物料清单,详细说明所有组件以及每个组件的来源。

成分列表图片

在影响许多美国政府机构的 2020 年 Solarwinds 攻击之后,SBOM 最近变得流行起来。对此, 拜登总统发布行政命令 其中授权联邦机构要求 斯博姆 来自软件开发商及其合作供应商。虽然它不能防止供应链攻击,但准确的 SBOM 将揭示软件产品内的所有依赖关系。这使其成为一种有价值的网络安全工具,可以确保透明度并暴露供应链中的漏洞,从而降低供应链风险。

为什么 SBOM 对于依赖开源代码的开发人员至关重要

重用第三方或开源代码是现代软件开发过程的一个组成部分。虽然开发人员仍然需要编写自己的代码,但他们通常会将第三方开源组件集成到他们的软件中。为了保持项目的高速进展,这样做变得非常必要。

过去,使用开源软件的组织和开发人员想要了解其组件的唯一原因是为了避免许可问题。许多开源软件包含使用和分发受到限制的组件,任何想要使用它们的人都需要了解这些限制。然而现在,开发人员开始认识到使用开源软件的风险不仅仅限于许可;它还可能引起安全问题。材料清单对于了解开源软件的许可和安全要求至关重要。

对于开发人员来说,软件物料清单可以更好地了解他们正在使用的开源软件的代码库。在很多情况下,这可以帮助节省时间和精力。例如,如果发现新的漏洞。如果没有物料清单,开发人员将不得不检查每个软件以确定问题的原因。对于复杂的项目来说,这是一项艰巨且耗时的任务。使用 SBOM,可以轻松识别包含漏洞的软件,并立即执行所需的错误修复。其他原因 斯博姆 在软件开发中至关重要:

  • 减少代码膨胀——对于您使用的每个开源代码,可能有数十种略有不同的替代方案来执行类似的功能。借助 SBOM,您可以通过为系统创建标准组件列表来减少冗余。此外,由于您使用的每个组件都有其独特的缺陷或漏洞,因此将代码简化为所需的内容可以更轻松地跟踪和纠正漏洞。

  • 遵守许可义务——我们已经提到过许可是尝试了解软件所有组件的主要动机之一。获取 SBOM 将确保您遵守您选择使用的组件的所有许可义务。

  • 主动评估和补救风险——识别和补救新发现的风险可能既困难又耗时。但是,有了清晰概述的组件列表,您就可以主动开始寻找漏洞并修复它们。这缩短了识别问题的时间并使流程更加高效。

  • 它使测试和代码审查变得更容易——任何软件推出之前,都必须经过广泛的测试和审查。当开发人员清楚地了解该软件的所有组件和子组件时,此过程会更容易。 SBOM 可以帮助大幅缩短审核时间,使您能够比没有文档时更快地将代码投入生产。

使用 SBOM,您可以在代码仍在编写的早期阶段开始安全测试,以检测并避免有害组件。该文档还为第三方代码及其组件提供了更深入的背景信息,减少了审查甚至更改代码库所需的工作和时间。

  • 识别生命周期终止 (EOL) 软件 —这是开源软件中相当普遍的现象。有时,这些组件会达到其使用寿命,因为位于供应链上游的供应商不再支持该产品。虽然它仍然有效,但不受支持的开源软件是漏洞被利用的主要节点。 SBOM 可以监控 EOL 软件并在可能时采取主动措施进行更换。

SBOM 用例和优势

并非您开发的每个软件都必须获得软件物料清单 (SBOM)。然而,准备工作正迅速成为每个数字产品开发人员需要研究的最佳实践。以下是一些 SBOM 用例,本文档在这些用例中非常有价值。

SBOM 用例

遵守联邦要求

在 2020 年和 2021 年发生重大软件供应链攻击之后,拜登总统发布了 行政命令 其中概述了为政府提供软件解决方案的机构和供应商的主要建议。行政命令中包含的要求之一是提议为联邦政府使用的每种软件都包含 SBOM。虽然 SBOM 并非对每个人都是强制性的,但所有为美国联邦政府提供软件的组织都需要提供 SBOM,详细说明他们使用的所有组件以及他们所做的任何版本更改。

降低软件消费者的风险

SBOM 可以全面了解软件工具的第三方组件。跟踪软件的所有组件和子组件是组织验证其打算使用或已经使用的任何软件解决方案的安全性和合规性标准的方法之一。

使用没有物料清单的软件的消费者可能知道他们从供应商那里获得的代码中有开源组件。然而,由于这些成分未知,消费者可能不知道软件中潜在的恶意代码、不受支持的组件和其他漏洞。 

快速应对危机情况

使用 SBOM 可以让您了解软件代码库。最终,这使得开发人员能够更轻松地应对危机(如果确实发生)。例如,如果没有 SBOM,试图处理新漏洞的软件工程团队将不得不手动检查他们用来确定问题的每个软件。但是,如果有可用的物料清单,则可以更轻松地缩小可能包含漏洞的软件范围,并在很短的时间内执行所需的修复。这有助于节省解决危机的时间并最大限度地减少可能发生的损害。

信息不对称问题

代码上的放大镜

目前软件市场存在信息不对称问题。通过将有关应用程序安全性的完整信息保密,软件供应商或生产商无需对其软件质量负责。 SBOM 向软件客户提供有关产品安全性的信息。这迫使生产商遵守软件开发中的最佳安全标准。

支持并购

软件物料清单是收购公司可能需要的文件之一。企业收购过程的一部分涉及尽职调查,以评估收购的潜在风险。 SBOM 可以深入了解公司运行的安全框架以及收购的潜在风险。

SBOM 的优点

现代组织最重要的安全实践之一是访问软件供应链风险。这涉及了解组织的软件堆栈是否包含可能构成供应链风险的第三方成分。这些软件漏洞通常出现在依赖于其他软件应用程序的组件中。这就是为什么软件物料清单是产品安全框架的重要组成部分。以下是一些最重要的 SBOM 的好处.

  • 主动处理漏洞 - SBOM 的最终好处是审查组织使用的软件的安全框架、识别漏洞并找到主动消除漏洞的方法。这样做有助于组织降低供应链风险。
  • 改进管理安全危机的流程——创建 SBOM 并不能消除系统漏洞或完全防止软件供应链攻击。然而,它可以降低供应链风险,并可以改善危机发生时的管理流程。拥有可能成为软件应用程序中潜在漏洞点的所有依赖项的列表可以简化风险管理过程。
  • 减少开支-利用 SBOM 处理安全风险的后果之一是从长远来看可以降低成本。手动解析代码来定位漏洞的过程可能成本相当高。软件物料清单提供了软件底层库的可见性。这有助于节省时间并降低安全评估的成本。

结语

在每个认真对待自身声誉的软件组织中,创建持续更新数据的全面 SBOM 是预防软件供应链攻击影响的关键方法之一。由于在构建软件产品时使用第三方软件实际上是不可避免的,因此拥有您使用的所有组件的全面成分列表将使您更容易缩小问题范围并更有效地解决问题。它还可以更轻松地遵守软件许可问题,甚至在某些情况下遵守政府法规。