软件物料清单信息
背景
从 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 文档包含对所包含软件(包括其所有依赖项)的描述。关于软件的一些信息示例包括:
CPython SBOM 满足 NTIA 软件物料清单最低要素中列出的要求。软件标识符可用于将使用的软件与漏洞数据库(例如 CVE 数据库和 开源漏洞数据库 (OSV))关联起来,这通常通过漏洞扫描工具自动完成。
有关影响 CPython 的历史漏洞的完整列表,您可以查询 OSV 数据库的网页前端。除了 security-announce@python.org 邮件列表之外,新的漏洞公告也会发布到这些数据库中。
