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

软件物料清单信息

背景

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

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

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

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

CPython SBOM 入门

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

SBOM 文档将使用它们描述的工件名称作为基础,并在末尾附加适用于该格式的文件扩展名(即 .spdx.json)。例如,当下载源代码压缩包 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 数据库的 Web 前端。新的漏洞公告会发布到这些数据库以及 security-announce@python.org 邮件列表。