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

1. 概览

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

在这里插入图片描述

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

2. 主流 SBOM 格式

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

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

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

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

3. SBOM的获取方式

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

4. 总结

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

5. 参考文档


推荐阅读

在这里插入图片描述

最近更新

  1. TCP协议是安全的吗?

    2024-04-25 08:18:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-25 08:18:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-25 08:18:04       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-25 08:18:04       20 阅读

热门阅读

  1. 双机部署学习

    2024-04-25 08:18:04       11 阅读
  2. 图论基础知识 并查集/例题

    2024-04-25 08:18:04       13 阅读
  3. 树形dp,LeetCode 2385. 感染二叉树需要的总时间

    2024-04-25 08:18:04       12 阅读
  4. 猎聘爬虫(附源码)

    2024-04-25 08:18:04       10 阅读
  5. 06.2_c/c++开源库boost_coroutine2 协程库

    2024-04-25 08:18:04       14 阅读
  6. Debian常用命令

    2024-04-25 08:18:04       14 阅读
  7. 前端算法

    2024-04-25 08:18:04       15 阅读