在软件开发的动态格局中,过去十年见证了两次重新定义了行业轨迹的变革性转变。首先是广泛采用开源软件组件,为开发人员提供大量预先构建的模块,以简化他们的工作。第二个是与DevOps文化的拥抱,自动化和加速软件构建和交付过程。总之,这些转变带来了前所未有的效率和速度。然而,他们也引入了复杂性的迷宫,软件组成变得越来越复杂和不透明。
这种复杂性,再加上现代开发周期无情的步伐,产生了一种迫切需要的解决方案,可以在混乱中提供清晰的解决方案。这就是软件材料清单(SBOM)出现的背景。本指南深入探讨了SBOM是什么机及其作用。无论您是开发人员、安全专业人员,还是只是热衷于理解现代软件安全的人,本指南提供的见解将使您具备导航 SBOM 的所有细节的知识。
什么是软件材料清单(SBOM) ?
软件材料清单(SBOM)是应用程序中包含的软件组件、模块和库的结构化列表。与你购买的食品背面的营养标签类似,SBOM 是一个由软件组成的成分列表。我们通常认为 SBOM 是软件开发过程的工件。当开发人员使用不同的开源组件构建应用程序时,他们也在创建一个成分列表,SBOM 就是这个列表的数字构件。
为什么 SBOM 如此重要?
SBOM 是您可以使用的最强大的安全工具之一。影响 SolarWind、 Codecov 和 Log4j 的大规模软件供应链攻击突出表明,组织需要了解其创建或使用的软件的软件组件及相关风险。SBOM 不仅对于识别软件中的安全漏洞和风险至关重要。它们也是理解软件如何随时间变化、潜在地引入新的风险或威胁的关键。
了解软件的内容是保护软件安全的第一步。越来越多的组织正在开发和使用在容器中运行的云本地软件。考虑一下这些容器化应用程序的复杂性,这些应用程序包含来自商业供应商、合作伙伴、定制构建软件和开源软件(OSS)的成百上千个组件。这些部件中的每一个都是潜在的风险和漏洞来源。
SBOMs 用例
一个组织可以将 SBOM 用于许多目的:
- 1.合规审查
- 2.安全评估
- 3.许可证合规
- 4.软件质量保证
此外,您可以在外部共享一个 SBOM,以便进行法规遵循和客户审计。在安全和开发角色中,SBOM的作用类似于其他行业的材料清单。例如,汽车制造商在制造现代汽车时,必须跟踪来自各种供应商的数万个零部件。只需要一个有缺陷的零件就能毁掉最终的产品。
本地云软件也面临着类似的挑战。现代应用程序使用大量的开源软件,这些软件依赖于其他开源软件组件,而这些组件又包含了更多的开源组件。它们还包括内部开发的代码、商业软件和由合作伙伴开发的定制软件。
组合来自如此广泛来源的组件和代码会在软件开发生命周期的每个步骤中带来额外的风险和潜在的漏洞。因此,在开发生命周期的过程中,SBOM 成为全面了解任何软件应用程序中的“成分”的关键基础。
从软件供应商那里收集 SBOM,并在整个过程中生成 SBOM,以跟踪组件库存变化并确定安全问题,这是确保应用程序总体安全性不可或缺的第一步。
安全和开发团队可以向软件供应商请求 SBOM,也可以自己生成 SBOM。具有在内部生成 SBOM 的能力是目前较为理想的方法。通过这种方式,团队可以在整个开发过程中生成多个 SBOM,以跟踪组件更改,并在软件中出现新问题时搜索漏洞。
SBOM 可以通过以下方式帮助缓解开发人员和安全团队面临的挑战:
- 1.了解开放源码和第三方工具固有的风险
- 2.通过在周期的早期暴露和补救问题来减少开发时间和成本
- 3.识别许可证和遵从性要求
SBOM安全优势
对于您的组织来说,SBOM 安全性有许多好处。保护软件供应链的任何有效解决方案都应该是透明的。让我们深入研究一下 SBOM 安全对于这些成分意味着什么,以及为什么透明度如此重要。
这一切都始于知道正在使用什么软件。您需要软件中包含的“成分”(例如库、包和文件)的准确列表。这个“成分”列表就是众所周知的软件材料清单。一旦您为您创建或使用的任何软件片段建立了 SBOM,您就可以开始回答关于我们软件供应链安全性的关键问题。
值得注意的是,SBOM 本身也可以作为其他类型分析的输入。一个值得注意的例子是漏洞扫描。通常,漏洞扫描是一个术语,用于发现基于以前公布的漏洞报告的软件的已知安全问题。检测和减少漏洞对于防止安全事故大有帮助。
对于部署在容器中的软件,开发人员可以一起使用SBOM和漏洞扫描,以提供对容器映像更好的透明性。在 CI/CD管道中执行这两种类型的分析时,您需要认识到两件事:
每次创建一个新的容器映像时,只需要生成一次SBOM。SBOM可以永远与这个独特的映像联系在一起。即使那个独特的映像从未改变,持续地扫描漏洞也是至关重要的。很多人在构建了映像之后就会扫描漏洞,然后继续前进。但是新的漏洞每天都会被发现和发布(毫不夸张地说)——所以定期扫描您已经使用或分发的任何现有映像以确定它们是否受到新漏洞的影响是至关重要的。使用 SBOM 意味着您可以快速而自信地扫描应用程序以寻找新的漏洞。
为什么 SBOM 对软件供应链安全至关重要
今天的软件是复杂的,这就是为什么 SBOM 已经成为软件供应链安全的基础。SBOM 的作用是为应用程序的软件组件提供透明度,为脆弱性分析和其他安全评估提供基础。
例如,对于他们购买或构建的每个软件应用程序都有一个全面的SBOM的组织可以立即识别新的零日漏洞的影响,例如 Log4j中的Log4Shell漏洞,并识别其确切位置以便更快地修复。同样,他们可以评估开源组件的来源和作业风险,以符合内部政策或行业标准。当涉及到维护和积极管理安全软件供应链时,这些是关键的能力。
2021年美国关于改善国家网络安全的行政命令强调了SBOM的重要性。行政命令指示联邦机构“发布最低限度的SBOM标准”,并界定有关“直接向购买者提供软件材料清单(SBOM)或向公共网站发布”的标准这项行政命令正在整个行业产生连锁反应,因为向美国联邦政府出售软件的供应商将越来越需要为他们提供的软件提供 SBOM。随着时间的推移,这些标准将随着其他行业的公司开始在他们自己的软件采购工作中反映联邦的要求而传播开来。
谁需要 SBOM?
当涉及到谁需要 SBOM 时,它们主要被 DevSecOps 从业人员和法规遵循团队用于审计、许可证监控和遵守特定行业的法规。然而,随着软件供应链攻击(如 SolarWinds黑客攻击和最近Log4j中的Log4Shell漏洞)的增加,SBOM 的使用现在已经成为安全团队和开发团队共同关注的问题。
安全团队
SBOM 对于安全团队来说起着至关重要的作用,特别是在漏洞扫描方面。与扫描所有软件应用程序相比,扫描一个SBOM要快得多,也容易得多,而且在出现零日漏洞的情况下,分秒必争。安全团队还可以利用SBOM根据其存在和位置对补救问题进行优先排序,并创建特定于基于组件的软件工程属性(如供应商、版本或包类型)的策略。
开发团队
开发团队使用 SBOM 跟踪他们在开发、管理和操作的应用程序中使用的开源、商业和定制构建的软件组件。这有助于帮助开发团队减少花在返工上的时间,方法是帮助管理依赖关系,及早发现需要补救的安全问题,并确保开发人员正在使用经过批准的代码和源代码。
原文链接:让代码安全变轻松,简单好用的开发安全平台-CodeAnt