Software-Lieferkette
# Software-Lieferkette

Eine Software-Lieferkette besteht aus den Komponenten, Bibliotheken, Tools und Prozessen, die zur Entwicklung, Erstellung und Veröffentlichung eines Software-Artefakts verwendet werden.

Software-Anbieter erstellen ihre Produkte häufig durch die Zusammenstellung von Open-Source- und kommerziellen Software-Komponenten. Eine Software-Stückliste (Software Bill of Materials, SBOM) gibt das Inventar der Komponenten an, die zur Erstellung eines Software-Artefakts wie einer Software-Anwendung verwendet werden. Sie ist vergleichbar mit einer Zutatenliste auf einer Lebensmittelverpackung: So wie man ein Etikett konsultieren kann, um Lebensmittel zu vermeiden, die Allergien auslösen können, können SBOMs Organisationen oder Personen helfen, den Konsum von Software zu vermeiden, die ihnen schaden könnte.

Das Konzept der Stückliste ist in der traditionellen Fertigung als Teil des Lieferkettenmanagements fest etabliert. Ein Hersteller verwendet eine Stückliste, um die Teile zu verfolgen, die er zur Herstellung eines Produkts verwendet. Werden später Mängel an einem bestimmten Teil festgestellt, lassen sich die betroffenen Produkte anhand der Stückliste leicht lokalisieren.

## Nutzung

Eine SBOM ist sowohl für den Ersteller (Hersteller) als auch für den Käufer (Kunden) eines Softwareprodukts nützlich. Hersteller nutzen oft verfügbare Open-Source- und Drittanbieter-Softwarekomponenten, um ein Produkt zu erstellen. Mit einer SBOM kann der Hersteller sicherstellen, dass diese Komponenten auf dem neuesten Stand sind und schnell auf neue Schwachstellen reagieren. Käufer können eine SBOM verwenden, um eine Schwachstellen- oder Lizenzanalyse durchzuführen, die beide zur Bewertung des Risikos eines Produkts herangezogen werden können.

Während viele Unternehmen für die allgemeine Stücklistenverwaltung einfach eine Tabellenkalkulation verwenden, birgt eine in einer Tabellenkalkulation geschriebene Stückliste zusätzliche Risiken und Probleme. SBOMs gewinnen an Wert, wenn sie gemeinsam in einem Repository gespeichert werden, das Teil anderer Automatisierungssysteme sein kann und von anderen Anwendungen leicht abgefragt werden kann. Diesem Bedarf an automatisierter SBOM-Verarbeitung wird durch CycloneDX und Software Package Data Exchange (SPDX) Rechnung getragen, beides offene Dokumentenstandards.

Das Verständnis der Lieferkette von Software, die Beschaffung einer SBOM und deren Verwendung zur Analyse bekannter Schwachstellen sind entscheidend für das Risikomanagement.

## Gesetzgebung

Der Cyber Supply Chain Management and Transparency Act von 2014 war ein US-Gesetz, das vorsah, dass Regierungsbehörden für alle neu erworbenen Produkte SBOMs einholen müssen. Es hätte auch die Einholung von SBOMs für "jede Software, Firmware oder jedes Produkt, das von der Regierung der Vereinigten Staaten verwendet wird", vorgeschrieben. Obwohl es letztendlich nicht verabschiedet wurde, hat dieses Gesetz die Regierung sensibilisiert und spätere Gesetze wie das "Internet of Things Cybersecurity Improvement Act of 2017" angestoßen.

Die US Executive Order on Improving the Nation's Cybersecurity vom 12. Mai 2021 wies das NIST an, innerhalb von 90 Tagen einen Leitfaden herauszugeben, der Normen, Verfahren oder Kriterien zu verschiedenen Themen enthält, um die Sicherheit der Software-Lieferkette zu verbessern", einschließlich der Bereitstellung einer Software Bill of Materials (SBOM) für jedes Produkt". Außerdem wurde die NTIA beauftragt, innerhalb von 60 Tagen "Mindestelemente für eine SBOM zu veröffentlichen".

Die NTIA-Mindestelemente wurden am 12. Juli 2021 veröffentlicht und "beschreiben SBOM-Anwendungsfälle für mehr Transparenz in der Software-Lieferkette und zeigen Optionen für die künftige Entwicklung auf." Die Mindestelemente bestehen aus drei großen Kategorien: Datenfelder (Basisinformationen über jede Softwarekomponente), Automatisierungsunterstützung (die Fähigkeit, SBOMs in maschinen- und menschenlesbaren Formaten zu erstellen) sowie Praktiken und Prozesse (wie und wann Unternehmen SBOMs erstellen sollten). Die Anforderung "Automatisierungsunterstützung" spezifiziert die Notwendigkeit einer "automatischen Generierung", die durch den Einsatz von Software Composition Analysis (SCA) Lösungen möglich ist.

