论文分享—— 软件物料清单(SBOM)开源与专有工具的现状研究

ops/2024/12/28 20:47:03/

论文来源:https://arxiv.org/abs/2402.11151 A Landscape Study of Open Source and Proprietary Tools for Software Bill of Materials (SBOM)

以下论文总结由豆包生成:

一、研究背景

现代软件应用依赖众多第三方组件,软件供应链安全面临挑战。软件物料清单(SBOM)作为解决方案,可记录应用中的第三方组件及依赖关系,提高软件透明度。近期供应链攻击事件凸显了软件安全的重要性,SBOM 在其中发挥关键作用,其相关概念受重视,多种工具应运而生,但工具范围广泛且不标准。

二、研究方法

  1. 定义分析范围:确定与 SBOM 相关的开源和专有工具,涵盖软件成分分析及软件供应链安全工具。
  2. 文献分析与访谈:研究相关文献,与网络安全公司进行技术讨论,以深入了解 SBOM 相关情况。
  3. 工具识别:通过多种渠道,如开源仓库、网络资源、论坛、博客、行业外联及参与工作组等,利用关键词搜索工具。
  4. 工具评估标准:对识别的工具进行评估,包括文档、功能审查、代码审查(开源工具),在目标项目上执行工具,考虑核心功能、可用性、互操作性和可定制性等标准。
  5. SBOM Plugfest 和基准测试:对部分工具在样本软件项目上执行,进行基准测试和比较。
  6. SBOM 工具现状描述:整合分析收集的信息,总结当前工具的异同和差距。

三、SBOM 工具现状

(一)新兴用例

  1. SBOM 生成:54 个工具支持,部分工具使用 SPDX 和 CycloneDX 等标准格式,少数有自己的格式,部分工具从项目源生成,部分为用户提供创建接口。
  2. SBOM 使用
    • 漏洞管理(VEX):通过查询漏洞数据库识别软件中的漏洞。
    • 依赖滥用检测:检测依赖关系中的不当使用。
    • 许可证合规性:检查软件组件的许可证问题。
  3. SBOM 互操作性:解决不同格式 SBOM 的聚合问题,包括转换、合并和比较工具。
  4. SBOM 质量保证:验证 SBOM 的有效性和质量,包括模式检查、内容验证和评分。
  5. SBOM 服务
    • 存储和管理:提供集中存储 SBOM 数据的位置。
    • 共享:促进 SBOM 在供应链中的共享。
    • 事件响应:自动化漏洞通知和管理。
    • 签名:对 SBOM 进行签名和验证。

(二)SBOM 生成

  1. 支持的输入和开发环境
    • SBOM:63% 的工具支持,多数通过清单文件(如 pom.xml 或 package.json)生成,部分通过源代码分析。
    • 部署 SBOM:26% 的工具支持,通过包管理器获取已安装软件的信息。
    • 分析 SBOM:17% 的工具支持,对构建后的工件进行分析生成。
    • 设计 SBOM:9% 的工具支持,用于规划软件项目。
    • 构建 SBOM:9% 的工具支持,作为构建过程的一部分生成,便于集成到 CI/CD 管道。
    • 运行时 SBOM:仅 1 个工具支持,实时捕获运行时的依赖关系。
  2. 支持的生态系统:OSS 非设计 SBOM 生成器支持多种编程语言和包管理或构建系统,部分工具支持特定操作系统的包管理器和图像二进制文件。
  3. 支持的模式:CycloneDX 和 SPDX 是主要格式,多数生成工具至少支持一种,第三方工具更倾向于支持 CycloneDX。

(三)SBOM 使用和利用

  1. 许可证管理:部分工具用于管理软件组件的许可证。
  2. 漏洞管理和 VEX:漏洞扫描工具使用 SBOM 检测和修复漏洞,部分工具利用 VEX 生成或更新漏洞报告。
  3. 其他用例:一些工具提供可视化和访问管理等功能,方便使用 SBOM

(四)SBOM 互操作性

15% 的工具解决不同格式 SBOM 的互操作性问题,但由于缺乏统一标准,主流格式之间也无法直接映射,导致中间 SBOM 的出现,其格式不一致。

(五)SBOM 质量保证

17% 的工具提供验证 SBOM 质量的方法,多数仅进行模式验证,部分提供其他指标,如 NTIA 合规性、许可证验证、UID 验证、哈希存在和依赖关系信息,但缺乏标准化和深入的质量指标。

(六)SBOM 服务

15% 的工具提供 SBOM 服务,包括存储库服务器、CI/CD 插件和签名及证明工具,有助于促进 SBOM 的采用。

四、SBOM Plugfest 实验

(一)实验设置

  1. 工具选择:选择支持语言和生态系统最多的五个开源 SBOM 生成工具。
  2. SBOM 类型:生成源 SBOM
  3. 基准项目和测试用例:使用 Maven 构建的 Java 项目,包括正常使用依赖、未使用的依赖导入和仅清单文件包含依赖三种场景。
  4. 实验执行和方法:使用标准化 Docker 镜像,在不同场景下运行工具,分析生成的 SBOM 是否包含 NTIA 定义的最小元素。

(二)实验结果

  1. 源代码对 SBOM 输出无影响:工具生成的 SBOM 相同,引发对依赖清单文件而不参考源代码的担忧。
  2. PURL 和 CPE 使用差异大:组件的 PURL 更常见,Syft 是唯一提供 CPE 和 PURL 信息的工具。
  3. Maven 和清单文件对依赖关系的影响:Maven 和清单文件影响工具的依赖关系报告能力,缺失时确定依赖关系困难。
  4. 构建系统移除导致数据丢失:构建系统移除后,SBOM 中的数据丢失严重,尤其是依赖关系信息,影响依赖和漏洞管理。

(三)总体分析

实验揭示了现有 SBOM 生成工具存在的问题,包括缺乏大规模准确的基准数据、依赖次级系统导致不准确、生成结果不一致、成分标准化不足、对包管理系统支持有限和软件识别挑战等。

五、研究结论

  1. 研究收集 84 个 SBOM 相关工具数据,分类并评估市场情况,虽工具多样表明社区对 SBOM 概念接受度高,但筛选工具困难。
  2. 不同工具功能多样,OSS 工具多需手动生成 SBOM,部分专有工具可自动集成,软件供应链安全受关注,当前 SBOM 市场有差距需改进,以提高 SBOM 采用率和易用性,未来需更多研究和开发将 SBOM 工具集成到软件获取过程中。

http://www.ppmy.cn/ops/145739.html

相关文章

要查询 `user` 表中 `we_chat_open_id` 列不为空的用户数量

要查询 user 表中 we_chat_open_id 列不为空的用户数量,你可以使用以下 SQL 查询语句: SELECT COUNT(*) FROM user WHERE we_chat_open_id IS NOT NULL AND we_chat_open_id ! ;解释: SELECT COUNT(*): 表示要计算符合条件的行数。FROM us…

基于Sentinel的服务保护方案的三种方式(请求限流、线程隔离、服务熔断)超详细讲解

目录 1、三种方式介绍 1.1请求限流 1.2 线程隔离方案 1.3 服务熔断 2、基于sentinel实现 2.1 启动sentinel 2.2 基于springboot整合sentinel 2.2.1请求限流 2.2.2请求隔离 2.2.2.1 OpenFeign整合Sentinel 2.2.3 服务熔断 2.2.3.1 编写降级代码 2.2.3.2 服务熔断 1、…

【论文阅读】MedCLIP: Contrastive Learning from Unpaired Medical Images and Text

【论文阅读】MedCLIP: Contrastive Learning from Unpaired Medical Images and Text 1.论文背景与动机2.MedCLIP的贡献3.提出的方法4.构建语义相似矩阵的过程5. 实验6. 结论与局限性 论文地址: pdf github地址:项目地址 Zifeng Wang, Zhenbang Wu, Di…

Redis学习(三)缓存

Redis学习(三)缓存 一、什么是缓存?如何使用缓存 二、添加商户缓存1、缓存模型和思路2、缓存更新策略1、数据库缓存不一致解决方案:2、数据库和缓存不一致采用什么方案 3、实现商铺和缓存与数据库双写一致 三、缓存穿透问题的解决思路1、编码…

基于Spring Boot的手机卡销售系统的设计与实现

博主介绍:java高级开发,从事互联网行业六年,熟悉各种主流语言,精通java、python、php、爬虫、web开发,已经做了多年的设计程序开发,开发过上千套设计程序,没有什么华丽的语言,只有实…

hdfs命令(三)- hdfs 管理命令(三)- hdfs dfsadmin命令

文章目录 前言一、hdfs分布式文件系统管理命令1. 介绍2. 语法及解释3. 命令3.1 生成HDFS集群的状态报告3.1.1 语法及解释3.1.2 示例 3.2 重新加载配置文件并更新NameNode中的节点列表3.3 刷新指定DataNode上的NameNode信息3.3.1 语法 3.4 获取并显示指定DataNode的信息3.4.1 语…

H5海康WS在线视频播放器:打造高效流畅的Web视频体验

H5海康WS在线视频播放器:打造高效流畅的Web视频体验 【下载地址】H5海康WS在线视频播放器 本仓库提供了一个名为“H5海康WS在线视频播放器”的资源文件下载。该播放器专为H5网页设计,能够实现在线视频的流畅播放,特别适用于需要集成海康威视…

Windows11家庭版 Docker Desktop 的安装历程

1.下面是 Docker Desktop 的官网下载地址 窗户 |Docker 文档 不出意外下载会很慢,下载好了先不安装 2.打开电脑的一些兼容程序 控制面板 -> 程序 -> 启用或关闭Windows功能 勾选下列兼容功能,有Hyper-v也勾上,不过我没有 3.下载WSL…