SBOM 指南: 是什么及其作用

2023-11-06 18:12
文章标签 作用 指南 sbom

本文主要是介绍SBOM 指南: 是什么及其作用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在软件开发的动态格局中,过去十年见证了两次重新定义了行业轨迹的变革性转变。首先是广泛采用开源软件组件,为开发人员提供大量预先构建的模块,以简化他们的工作。第二个是与DevOps文化的拥抱,自动化和加速软件构建和交付过程。总之,这些转变带来了前所未有的效率和速度。然而,他们也引入了复杂性的迷宫,软件组成变得越来越复杂和不透明。 

这种复杂性,再加上现代开发周期无情的步伐,产生了一种迫切需要的解决方案,可以在混乱中提供清晰的解决方案。这就是软件材料清单(SBOM)出现的背景。本指南深入探讨了SBOM是什么机及其作用。无论您是开发人员、安全专业人员,还是只是热衷于理解现代软件安全的人,本指南提供的见解将使您具备导航 SBOM 的所有细节的知识。

什么是软件材料清单(SBOM) ? 

软件材料清单(SBOM)是应用程序中包含的软件组件、模块和库的结构化列表。与你购买的食品背面的营养标签类似,SBOM 是一个由软件组成的成分列表。我们通常认为 SBOM 是软件开发过程的工件。当开发人员使用不同的开源组件构建应用程序时,他们也在创建一个成分列表,SBOM 就是这个列表的数字构件。

为什么 SBOM 如此重要?

SBOM 是您可以使用的最强大的安全工具之一。影响 SolarWind、 Codecov 和 Log4j 的大规模软件供应链攻击突出表明,组织需要了解其创建或使用的软件的软件组件及相关风险。SBOM 不仅对于识别软件中的安全漏洞和风险至关重要。它们也是理解软件如何随时间变化、潜在地引入新的风险或威胁的关键。

了解软件的内容是保护软件安全的第一步。越来越多的组织正在开发和使用在容器中运行的云本地软件。考虑一下这些容器化应用程序的复杂性,这些应用程序包含来自商业供应商、合作伙伴、定制构建软件和开源软件(OSS)的成百上千个组件。这些部件中的每一个都是潜在的风险和漏洞来源。

SBOMs 用例

一个组织可以将 SBOM 用于许多目的:

  1. 1.合规审查
  2. 2.安全评估
  3. 3.许可证合规
  4. 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

这篇关于SBOM 指南: 是什么及其作用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/358234

相关文章

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Spring Boot结成MyBatis-Plus最全配置指南

《SpringBoot结成MyBatis-Plus最全配置指南》本文主要介绍了SpringBoot结成MyBatis-Plus最全配置指南,包括依赖引入、配置数据源、Mapper扫描、基本CRUD操... 目录前言详细操作一.创建项目并引入相关依赖二.配置数据源信息三.编写相关代码查zsRArly询数据库数

SpringBoot启动报错的11个高频问题排查与解决终极指南

《SpringBoot启动报错的11个高频问题排查与解决终极指南》这篇文章主要为大家详细介绍了SpringBoot启动报错的11个高频问题的排查与解决,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一... 目录1. 依赖冲突:NoSuchMethodError 的终极解法2. Bean注入失败:No qu

JavaScript错误处理避坑指南

《JavaScript错误处理避坑指南》JavaScript错误处理是编程过程中不可避免的部分,它涉及到识别、捕获和响应代码运行时可能出现的问题,本文将详细给大家介绍一下JavaScript错误处理的... 目录一、错误类型:三大“杀手”与应对策略1. 语法错误(SyntaxError)2. 运行时错误(R

C++ 中的 if-constexpr语法和作用

《C++中的if-constexpr语法和作用》if-constexpr语法是C++17引入的新语法特性,也被称为常量if表达式或静态if(staticif),:本文主要介绍C++中的if-c... 目录1 if-constexpr 语法1.1 基本语法1.2 扩展说明1.2.1 条件表达式1.2.2 fa

Python使用date模块进行日期处理的终极指南

《Python使用date模块进行日期处理的终极指南》在处理与时间相关的数据时,Python的date模块是开发者最趁手的工具之一,本文将用通俗的语言,结合真实案例,带您掌握date模块的六大核心功能... 目录引言一、date模块的核心功能1.1 日期表示1.2 日期计算1.3 日期比较二、六大常用方法详

css中的 vertical-align与line-height作用详解

《css中的vertical-align与line-height作用详解》:本文主要介绍了CSS中的`vertical-align`和`line-height`属性,包括它们的作用、适用元素、属性值、常见使用场景、常见问题及解决方案,详细内容请阅读本文,希望能对你有所帮助... 目录vertical-ali

MySQL中慢SQL优化方法的完整指南

《MySQL中慢SQL优化方法的完整指南》当数据库响应时间超过500ms时,系统将面临三大灾难链式反应,所以本文将为大家介绍一下MySQL中慢SQL优化的常用方法,有需要的小伙伴可以了解下... 目录一、慢SQL的致命影响二、精准定位问题SQL1. 启用慢查询日志2. 诊断黄金三件套三、六大核心优化方案方案

使用Python高效获取网络数据的操作指南

《使用Python高效获取网络数据的操作指南》网络爬虫是一种自动化程序,用于访问和提取网站上的数据,Python是进行网络爬虫开发的理想语言,拥有丰富的库和工具,使得编写和维护爬虫变得简单高效,本文将... 目录网络爬虫的基本概念常用库介绍安装库Requests和BeautifulSoup爬虫开发发送请求解

SpringBoot整合MybatisPlus的基本应用指南

《SpringBoot整合MybatisPlus的基本应用指南》MyBatis-Plus,简称MP,是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,下面小编就来和大家介绍一下... 目录一、MyBATisPlus简介二、SpringBoot整合MybatisPlus1、创建数据库和