是时候进入SBOM了

了解SBOM

DevOps、IT安全和IT治理社区将铭记2021年软件物料清单(简称SBOM)从“最好有”变成了“必须有”。

多年来,SBOM现已成为一个关键DevSecOps,每个人都必须彻底理解并融入他们的软件开发生命周期简而言之,soms提供了对组成软件的组件的可见性,以及它们是如何组合在一起的,因此很容易确定它是否包含安全性和遵从性问题。

在这篇博文中,您将了解什么是SBOM,它将如何使您受益,围绕它存在哪些误解,以及为什么它必须是SDLC安全性和遵从性的关键元素。

SBOM是如何从侧翼转移到中央舞台的

SBOM标准于2018年由美国食品和药物管理局(FDA)提出,以确保医疗设备软件具有与食品相同的问责制,因为它直接影响个人的健康。但SBOM的崛起与最近发生的两件事有直接关系:毁灭性的灾难SolarWinds将于2020年底上市以及白宫2021年5月生效的网络安全行政命令。

SolarWinds的漏洞突出供应链攻击在这种情况下,恶意软件被隐藏在合法软件中,然后通过授权渠道分发给毫无戒心的最终用户。以IT监控供应商SolarWinds为例,黑客以间接传递依赖关系的形式将恶意软件注入其Orion平台的软件构建过程中。

几个月来,SolarWinds无意中发布了带有漏洞的产品更新,旨在帮助黑客利用后门入侵客户的猎户座服务器。大约1.8万名客户收到了泄露的更新,几十个客户遭到了入侵,包括著名跨国公司美国联邦政府机构

当时,这是最新的一连串的供应链黑客但它的范围和后果使它与众不同,促使人们对软件开发安全性和DevSecOps进行了严格的审查和更多的关注。伴随着灾难性的后果仍然被感觉到是的。被白宫引用作为美国总统乔·拜登的司机关于改善国家网络安全的行政命令

这个顺序突出了SBOM的重要性作为“包含在构建软件中使用的各种组件的细节和供应链关系的正式记录”。白宫将soms比作一份食品配料清单,宣称它们对软件制造商、软件买家和软件运营商都很有用。

SBOM为应用程序的软件组件之间的所有依赖关系提供的透明度可以帮助防止或更快地减轻供应链攻击。“了解软件的供应链,获得SBOM,并使用它来分析已知的漏洞对于管理风险至关重要,”命令写道。

尽管美国政府将为软件制造商提供更具体的安全要求,但它已经在命令中声明,它将要求它购买的每一款软件都附带详细的SBOM。

soms:可见性和透明度

开源软件的安全性是不容忽视的,了解你要卖给客户、从供应商那里购买或从互联网上免费下载的软件的内容是至关重要的。

一项又一项的研究表明,开源软件构成了应用程序代码库的大部分,通常超过90%,包括具有严重漏洞或多年未被其创建者更新的风险组件。

换句话说,未经检查的软件本质上是不安全的或有缺陷的。

因此,为您开发的软件提供soms已成为DevSecOps的核心最佳实践,这并不奇怪,同时也是越来越普遍的监管要求——特别是在高度监管的行业,如金融和医疗保健——以及与越来越多的公共和私营部门客户开展业务的条件。

通过为您销售和使用的软件组件提供透明度和可见性,soms可以帮助您的组织保护其员工、客户和声誉,并降低补救成本、法律责任和政府罚款的风险。

尽管向美国政府销售软件需要SBOM信息,但受监管的行业以及世界各地的政府组织也可能需要这些信息。因此,记录和报告您所构建的软件的SBOM应该成为一种普遍需要的实践。

SBOM里有什么?

SBOM包含组成软件的“成分”列表,包括库和模块——无论它们是开源的还是专有的,或者是免费的还是付费的——以及关于开发工具的信息,以及构建过程中使用的CI(持续集成)环境变量。

SBOM还可以概述软件的构建时间,它经历了哪些SDLC阶段(开发、QA、阶段、生产),以及检测和修复了哪些安全性和遵从性问题。

这些信息促进了DevSecOps的工作,并有助于在各种用例中维护安全性和合规性,包括:

  • 对于软件生产者:SBOM通过详细描述所使用的所有上游组件,并通过跟踪应用程序不同版本之间的更改,帮助他们构建和维护应用程序。当一个影响其应用程序的漏洞被披露时,软件供应商可以立即检测到哪些版本受到影响以及如何受到影响,并快速修复问题并通知客户。
  • 对于软件购买者;SBOM帮助他们了解他们购买的产品的组成,以确保它符合他们的安全性和合规性标准和要求,特别是如果他们处于一个高度监管的行业。它还帮助他们预测和量化特定软件包中的固有风险。
  • 对于软件运营商:SBOM有助于通知他们的流程,以进行漏洞和资产管理、许可遵从性验证以及识别有风险的软件组件。SBOM还可以帮助他们优化软件的性能和可靠性,降低中断和故障的风险。

应用程序越复杂,SBOM就越有价值,因为它可以清楚地了解组件内以及软件的多个容器层(包括应用层、运行时层和基本操作系统层)之间的所有相互依赖关系。

例如,就像一个复杂的大蛋糕,一个复杂的web服务有很多层,有很多成分。在web服务的情况下,层通常是Docker映像,每个层都应该有自己的SBOM。还应该有一个主要的伞状SBOM,包含所有单独的SBOM。

这样,您就可以跟踪所有依赖项和子依赖项,并隔离web服务的各个组件,以查明受安全或遵从性问题(如关键漏洞或错误配置)影响的组件。有了这些信息,您就可以及早、快速地检测和修复问题,从而减少泄露的可能性。例如,据估计,几乎75%具有易受攻击库的应用程序可以通过迁移到具有更新库的新版本来修复。

SBOM误解

多年来,出现了对soms毫无根据的反对意见,包括:

  • 难道SBOM不会为黑客提供路线图吗?不,SBOM中的信息不会给攻击者提供入侵您的软件所需的线索,他们甚至不会费心去看SBOM。他们有更强大和复杂的工具来执行他们的邪恶行为。
  • 您不需要在SBOM中公开源代码吗?不,你不需要。SBOM包含有关软件中的内容以及创建软件的环境的信息,但不包含源代码。
  • SBOM不会暴露我的机密知识产权吗?不,sbm不包含专有IP数据。

重要的是要理解,SBOM只是关于软件的元数据,而不是软件本身。它包含了制作软件所用材料的数据,但不包含软件组装过程的数据。

JFrog和AWS能提供什么帮助

JFrog DevOps平台-尤其是JFrog Artifactory,JFrog x光JFrog分布- - - - - -托管在AWS上,您可以轻松获得SBOM所需的所有粒度数据,包括:

  • 所有软件的可传递依赖项
  • 详细的CI环境信息
  • 安全性和遵从性数据,包括应用程序中所有构建中的漏洞和不遵从许可的“爆炸半径”
  • 分发数据,例如如何、何时以及在何处部署您的软件,哪些客户收到了它,等等

这个关于您的软件的信息宝库既可以通过JFrog UI获得,也可以通过JFrog REST API,因此您可以将其导出到您选择的第三方工具。

(有关JFrog DevOps平台如何帮助您确定是否受到SolarWinds漏洞的影响,受影响的位置以及如何修复受影响的库的实际技术细节,请阅读我们最近的博客文章“自动评估和修复SolarWinds黑客攻击。”

总之,由于上面列出的所有原因,现在是时候将更多的注意力放在SBOM上,并将其移到DevSecOps优先级列表上。

不要犹豫联系我们如果你想进一步讨论这个话题。