掘金 后端 ( ) • 2024-03-29 10:51

京东作为openKylin(开放麒麟)社区理事单位,在加入社区后,京东发起成立了SBOM SIG组。SBOM SIG组负责推动和促进软件物料清单(SBOM)的发展和工具建设。近日,SBOM工具已在openKylin社区完成开源,保障openKylin相关软件供应链安全和可追溯性。

SBOM工具能解决哪些问题?

在当今软件供应链日益复杂的环境下,软件项目的管理和安全性成为了一个关键问题。为了帮助开发者们更好地管理和保证软件项目的安全性和可追溯性,本次向大家介绍一款功能强大的命令行工具——SBOM-TOOL(Software Bill of Materials Tool)。

SBOM-TOOL是一款基于Go语言实现、无其他特殊依赖的开源项目,专门用于生成软件项目的物料清单(SBOM),并具备易扩展、易使用的特性。它通过多维度信息采集,为用户提供全面而准确的软件物料清单。

SBOM工具有哪些特性?

  1. 帮开发者全面掌握软件的依赖情况

SBOM-TOOL能够分析源代码、二进制制品,为项目提供完整的依赖信息,确保生成的物料清单尽可能详尽,支持多种语言和多种包管理器的依赖采集,可以准确获取工程构建的依赖组件信息。无论是使用Java、Python、JavaScript等语言,还是使用Maven、NPM、pip等包管理器,SBOM-TOOL都能够轻松地采集依赖信息。

  1. 详尽的源代码指纹信息
  • SBOM-TOOL通过采集源代码的仓库地址和版本信息,为开发者提供了项目的完整源代码信息,这有助于理解软件的构成和历史变更。
  • SBOM-TOOL支持代码指纹的生成,通过使用simhash算法,能够为代码生成唯一标识,确保代码的溯源和完整性。这使得开发者们能够更加准确地追踪代码的来源和变更,从而提高软件供应链的可信度。
  1. 深入的构建环境与依赖分析

SBOM-TOOL支持采集工程构建依赖环境信息,包括操作系统、内核、编译器、构建工具等,为项目提供全面的构建环境描述信息。这使得开发者们能够更好地了解项目在不同环境下的依赖情况,进而更快解决问题

  1. 强大的扩展能力
  • SBOM-TOOL提供了强大的SBOM文档功能。它可以根据采集的SBOM片段组装完整的SBOM文档。同时,用户也可以通过命令行方式编辑SBOM文档内容,灵活地进行修改和定制。
  • 支持规范格式转换,包括XSPDX、SPDX等规范,以及JSON、TagValue等格式,满足用户对不同格式的需求。
  • 作为一个开源项目,SBOM-TOOL允许社区贡献和定制,用户可以根据自己的需求对其进行扩展,支持更多的编程语言、包管理器、SBOM文档规范,以适应特定的工作流程和环境。
  1. 友好的安装和使用体验

安装SBOM-TOOL非常便捷。您可以选择源码安装,通过下载源码并编译的方式进行安装。另外,SBOM-TOOL还提供了二进制安装方式,您可以直接下载对应操作系统架构的二进制文件进行安装。

SBOM-TOOL的使用也非常简单。通过一条命令,您就可以生成完整而准确的SBOM文档。以下是一个示例命令:

sbom-tool generate -m 4 -p ${project_path} -s ${src_path} -d ${dist_path} -o sbom.sp

image.png

技术交流可以扫一扫