「 网络安全常用术语解读 」软件物料清单SBOM详解

devtools/2024/10/18 18:19:35/

1. 概览

软件物料清单(Software Bill of Materials,SBOM)是软件成分信息的集合,SBOM文件中记录了软件产品或服务所使用组件、库、框架的清单,用于描述软件构建过程中使用的所有组件及其关系,以实现软件供应链的自动化识别与管理的需求。SBOM 属性主要包括基线属性集、未确定的属性值、映射到现有的格式、组件关系以及附加元素,如下图所示:

在这里插入图片描述

SBOM已经广泛应用,可以看作软件成分清单的一种实现标准,根据美国国家电信和信息管理局(National Telecommunications and Information Administration,NTIA)要求软件企业提供的 SBOM 是一个正式的、机器可读的列表。

SBOM__8">2. 主流 SBOM 格式

当前 SBOM 有三种最为主流的格式,分别为:SPDX、SWID 以及 CycloneDX。具体明细对比如下:

比较项SPDXCycloneDXSWID
定义一种标准语言,用于以多种文件格式传达与软件组件相关的组件、许可证、版权和安全信息。一种轻量级SBOM标准,设计用于应用程序安全上下文和供应链组件分析。SWID 标准定义了一个生命周期,其中SWID 标签作为软件产品安装过程的一部分添加到端点,并在产品卸载过程中删除。
维护主体Linux基金会OWASP、Sonatype、ServiceNowNIST
支持格式RDFa、xlsx、spdx、xml、json、yamXML、JSONXML
元数据文档创建信息,组件信息,文件信息,文件片段信息,证书信息,SPDX元素之间的关系,注释信息供应商,制作商,组件信息,证书信息,创建BOM的工具信息,外部API信息,依赖关系信息语料库标签:描述预安装阶段的软件(TAR、ZIP 文件、可执行文件);
主要标签:提供产品名称、标签的全球唯一标识符以及标识标签创建者的基本信息;
补丁标签:标识并描述应用于产品的补丁;
补充标签:增加主要或补丁标签的附加细节。

漏洞利用交换(Vulnerability Exploitability Exchange,VEX)和 SaaSBOM 是软件成分清单的两个辅助套件,是对传统SBOM 的延伸与扩展,可以视情况选择独立或者与 SBOM 整合。若要了解更多关于VEX的细节,可以参阅博主文章《「 网络安全常用术语解读 」漏洞利用交换VEX详解》。

SaaSBOM 通过提供系统的逻辑表示形式来补充 IaC(基础设施即代码),包括所有服务的清单、它们对其他服务的依赖、端点 URL、数据分类以及服务之间的数据定向流。

SBOM_23">3. SBOM的获取方式

SBOM 可以通过两种方式获取:一是供应商主动提供软件成分清单;另一种是利用软件成分分析SCA工具来自动生成SBOM

  • 软件供应商提供:一些软件供应商会主动提供其产品的SBOM,以增加透明度并帮助客户评估软件的安全性。

  • 自动生成工具:有一些自动生成SBOM的工具可用,这些工具通常被称为SCA工具(比如Black Duck、七彩棱镜、OpenSCA),它可以扫描软件源代码或二进制文件,识别其中使用的组件和库,并生成相应的SBOM

    若想了解更多关于 SCA 的细节,可以参阅博主文章《「 网络安全常用术语解读 」软件成分分析SCA详解:从发展背景到技术原理再到业界常用检测工具推荐》。

4. 总结

使用 SBOM,可以更好地跟踪和管理软件的变更,有助于减少错误,提高软件开发的效率。然而,由于软件的生命周期通常比硬件产品更长,且变更更频繁,维护 SBOM 存在一定的挑战。

5. 参考文档

  • OWASP 软件物料清单实践指南(2023).pdf(访问密码:6277)
  • 软件供应链安全治理实践指南白皮书(2023).pdf (访问密码:6277)

推荐阅读

  • 【解读】保障软件供应链安全:SBOM推荐实践指南(含指南获取链接)
  • 【解读】Synopsys发布2024年开源安全和风险分析报告OSSRA

在这里插入图片描述


http://www.ppmy.cn/devtools/26635.html

相关文章

深度学习之基于Matlab NN的伦敦房价预测

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 房价预测是房地产领域的一个重要问题,对于投资者、开发商以及政策制定者等都具有重要的指…

bbPress 中文汉化包,WordPress插件

汉化包下载地址:bbPress 中文汉化包.zip bbPress论坛插件 bbPress 是一款简单易用的 WordPress 论坛程序,由 WordPress 创建者开发,简单易用且完全可自定义。bbPress 可用于创建在线客户服务帮助渠道和交流平台。bbPress 是使用最多的WordP…

神经网络的反向传播

梯度下降算法 🔥我们来看一下神经网络中的梯度下降算法🔥 梯度下降法是一种优化算法,用于寻找目标函数的最小值。梯度是一个向量,表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处变化最快的方向…

C++证道之路第十五章友元、异常和其他

友元 友元函数: 友元函数不是类的成员函数,但能够访问类的私有(private)成员和保护(protected)成员。友元函数定义在类的外部,但在类的定义中通过friend关键字声明。友元函数可以是普通函数&a…

UE5像素流部署以及多实例部署(兼容ue4)

像素流部署请看我之前的文章就行,今天讲的是多实例部署 在这里可以配置多实例的数量 如果设置800端口 设置两个实例 那么就是800 801端口 我的个人显卡是4060TI,最多开三个

vue3的v-model在组件上几种用法

文章目录 父组件1、update和 : 拆开使用2、computed 计算属性方法3、defineModel (3.4) 官方推荐4、TS泛型用法(3.3) 父组件 <template><div><button click"dialogVisible !dialogVisible">打开/关闭</button><ModalComp v-model"…

探索潜力:中心化交易所平台币的对比分析

核心观点 平台币在过去一年里表现差异显著&#xff1a; 在过去的一年里&#xff0c;只有少数几个平台币如BMX、BGB和MX的涨幅超过了100%。相比之下&#xff0c;由于市值较高&#xff0c;BNB和OKB的涨幅相对较低。 回购和销毁机制在平台币价值中起决定性作用&#xff1a; 像M…

solidity(15)

Solidity 中的控制流结构非常类似于其他编程语言,它允许开发者根据条件执行代码段。控制流对于任何能够运行更加复杂逻辑的智能合约系统至关重要。以下是 Solidity 主要的控制流结构: 🔄 if-else 控制结构: 💡 Copy code // 判断数字是否为0的示例函数 function ifEls…