注意: 虽然 JavaScript 对于本网站不是必需的,但您与内容的互动将受到限制。请开启 JavaScript 以获得完整的体验。

软件物料清单信息

背景

Python 3.12.2 版本开始,CPython 发布工件包含软件物料清单 (SBOM) 文档。

本页面提供了关于下载和使用描述 CPython 发布工件的软件物料清单文档的指南。目前,SBOM 文档仅适用于源代码发布。

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

软件物料清单文档就像一份软件的配料表,描述了每个组件、组件的来源以及每个组件如何组合成最终的软件工件。SBOM 文档实现了与生态系统无关的格式,可用于供应链管理和跟踪软件中的漏洞。

CPython SBOM 入门

CPython 使用 SPDX 2 标准并使用 JSON 作为编码格式提供 SBOM 文档。如果需要,可以使用 protobom 等转换工具创建 CycloneDX 等其他格式。

SBOM 文档将使用它们所描述的工件名称作为基础,并附加适合该格式的文件扩展名(即 .spdx.json)。例如,当下载源代码 tarball Python-3.12.2.tgz 的 SBOM 文档时,SBOM 文档将被命名为 Python-3.12.2.tgz.spdx.json

SBOM 文档可以从 Python 发布页面下载,也可以使用 HTTP 客户端下载。以下是使用 curl 下载 SBOM 文档的示例:

$ curl --remote-name https://pythonlang.cn/ftp/python/3.12.2/Python-3.12.2.tgz.spdx.json

下载 SBOM 文档后,您的工作目录中应该有一个名为 Python-3.12.2.tgz.spdx.json 的文件。

CPython 软件物料清单中包含什么?

SBOM 文档包含对所包含软件(包括其所有依赖项)的描述。关于软件的一些信息示例包括:

  • 所有软件组件的名称和版本
  • 软件标识符(例如 CPE软件包 URL
  • 带校验和的源代码下载 URL
  • 文件名和内容校验和
  • 每个组件之间的依赖关系

CPython SBOM 满足 NTIA 软件物料清单最低要素中列出的要求。软件标识符可用于将使用的软件与漏洞数据库(例如 CVE 数据库开源漏洞数据库 (OSV))关联起来,这通常通过漏洞扫描工具自动完成。

有关影响 CPython 的历史漏洞的完整列表,您可以查询 OSV 数据库的网页前端。除了 security-announce@python.org 邮件列表之外,新的漏洞公告也会发布到这些数据库中。