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.
