Hinweis: Obwohl JavaScript für diese Website nicht unbedingt erforderlich ist, werden Ihre Interaktionsmöglichkeiten mit den Inhalten eingeschränkt sein. Bitte aktivieren Sie JavaScript für das volle Erlebnis.

Software Bill-of-Materials Informationen

Hintergrund

Ab der Python 3.12.2-Version enthalten die CPython-Release-Artefakte Software Bill-of-Materials (SBOM)-Dokumente.

Diese Seite bietet Anleitungen zum Herunterladen und Verwenden von Software Bill-of-Materials-Dokumenten, die CPython-Release-Artefakte beschreiben. Derzeit sind SBOM-Dokumente nur für Quellcode-Releases verfügbar.

Was ist ein Software Bill-of-Materials (SBOM)?

Software Bill-of-Materials-Dokumente sind wie eine Zutatenliste für eine Software, die jede Komponente beschreibt, woher die Komponente stammt und wie jede Komponente zur endgültigen Software-Artefakt kombiniert wurde. SBOM-Dokumente implementieren ein ökosystemunabhängiges Format und können für das Lieferkettenmanagement und die Nachverfolgung von Schwachstellen in Software verwendet werden.

Erste Schritte mit CPython SBOMs

CPython stellt SBOM-Dokumente unter Verwendung des SPDX 2-Standards und im JSON-Format zur Verfügung. Andere Formate wie CycloneDX können bei Bedarf mithilfe von Transformationswerkzeugen wie protobom erstellt werden.

SBOM-Dokumente verwenden den Namen des Artefakts, das sie beschreiben, als Basis, an das die entsprechende Dateierweiterung für das Format (z. B. .spdx.json) angehängt wird. Wenn Sie beispielsweise das SBOM-Dokument für das Quell-Tarball Python-3.12.2.tgz herunterladen, wird das SBOM-Dokument Python-3.12.2.tgz.spdx.json benannt.

SBOM-Dokumente können von der Python-Release-Seite heruntergeladen oder mit einem HTTP-Client heruntergeladen werden. Nachfolgend finden Sie ein Beispiel für den Download des SBOM-Dokuments mit curl

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

Nach dem Herunterladen des SBOM-Dokuments sollte sich eine Datei namens Python-3.12.2.tgz.spdx.json in Ihrem Arbeitsverzeichnis befinden.

Was ist im Software Bill-of-Materials von CPython enthalten?

SBOM-Dokumente enthalten eine Beschreibung der enthaltenen Software, einschließlich all ihrer Abhängigkeiten. Einige Beispiele für Informationen über die Software sind:

  • Namen und Versionen aller Softwarekomponenten
  • Software-Identifikatoren (wie CPE und Package URLs)
  • Download-URLs für Quellcode mit Prüfsummen
  • Dateinamen und Inhaltsprüfsummen
  • Abhängigkeitsbeziehungen zwischen den einzelnen Komponenten

CPython SBOMs erfüllen die Anforderungen, die in den NTIA Minimum Elements for a Software Bill of Materials aufgeführt sind. Software-Identifikatoren können zur Korrelation von verwendeter Software mit Schwachstellendatenbanken wie der CVE-Datenbank und der Open Source Vulnerability database (OSV) verwendet werden, was typischerweise automatisch mithilfe von Schwachstellen-Scan-Tools geschieht.

Eine vollständige Liste historischer Schwachstellen, die CPython betreffen, finden Sie, wenn Sie das Web-Frontend der OSV-Datenbank abfragen. Neue Schwachstellenhinweise werden zusätzlich zur E-Mail-Liste security-announce@python.org in diese Datenbanken veröffentlicht.