PLB-SBOM oder: Wie man SBOMs für eine Produktgruppe zusammenstellt
| Ingenieurwesen

Die Software-Stückliste (Software Bill of Materials, SBOM) wird für die meisten CI/CD-Pipelines immer unverzichtbarer.
Eine SBOM erfasst ein Inventar der Komponenten, aus denen das spezifische Projekt besteht, zusammen mit den zugehörigen Metadaten.
Die meisten komplexen, realen Anwendungen werden jedoch als eine Sammlung oder ein Zusammenschluss von Anwendungen erstellt – manchmal über mehrere Ebenen tief.
Ein Smartphone beispielsweise ist eine Sammlung von unabhängig voneinander entwickelten Apps auf der Basis eines Betriebssystems – vermutlich als Integration von Projekten aufgebaut. Die Apps von Drittanbietern können Funktionen der Erstanbieter-Apps aufrufen, die wiederum von externen Diensten abhängen können.
Es gibt viele Möglichkeiten, wenn es um die Erstellung einer SBOM für ein komplexes, mehrschichtiges System geht.
Um Best-Practice-Leitlinien zu diesem Thema festzulegen, hat die SBOM Tooling and Implementation Working Group der CISA soeben den Leitfaden – Guidance on Assembling a Group of Products“ (Leitfaden zum Zusammenstellen einer Produktgruppe) veröffentlicht. Der zweiseitige Leitfaden – eine Pflichtlektüre – unterscheidet zwischen ERFORDERLICHEN und EMPFOHLENEN Richtlinien und enthält ein Beispiel für eine solche Zusammenstellung.
PLB-SBOM
Da die Zusammenstellung unabhängiger Komponenten als Software-Produktlinie bezeichnet wird, hat die CISA das SBOM als Product Line Build SBOM oder PLB-SBOM bezeichnet.
Das PLB-SBOM listet alle seine Komponenten auf und verweist auf das jeweilige SBOM für jede Komponente unter Verwendung des für die Spezifikation anwendbaren Referenzmechanismus (SPDXRef-für SPDX und bom-ref für CycloneDX).
ERFORDERLICHE Informationen
Der Leitfaden konzentriert sich darauf, die SBOM für jedes Komponenten-Image zu bewahren und diese als Referenz für die Erstellung der endgültigen PLB-SBOM zu verwenden.
Eine PLB-SBOM muss Folgendes enthalten:
Alle Komponenten mit ihrer Versionsnummer
Einen Verweis auf die Build-SBOM, die das jeweilige Komponenten-Image generiert hat
EMPFOHLENE Informationen
Darüber hinaus wird empfohlen, die folgenden Informationen in die endgültige PLB-SBOM aufzunehmen
Der Hash des Artefakts, das mit dem jeweiligen Komponenten-Image verknüpft ist
Verfügbare Produktkennzeichnung für die Komponente (PURL, CPE, SWID)
Autor der PLB-SBOM: die Entität, die die Produktlinie freigibt
Der Hash wird empfohlen, um eine Gegenprüfung zu ermöglichen, und kann ein gemeinsames Hashing-Schema über alle Komponenten hinweg umfassen.
Herausforderungen

Beispielhafte grafische Darstellung einer PLB-SBOM für „Alpha System 1.0“, Quelle: CISA-Leitfaden
Die PLB-SBOM der CISA ist ein vernünftiger Anfang für eine SBOM bei zusammengestellter Software.
Erstens ermöglicht das Beibehalten und Referenzieren von SBOMs, anstatt sie direkt einzubetten, die Bewahrung von Validierungsinformationen wie eingebetteten Signaturen.
Natürlich ist das Beibehalten von Komponenten-SBOMs anstelle ihrer Einbettung definitionsgemäß verlustfrei.
Es gibt jedoch bekannte Herausforderungen beim Beibehalten, Referenzieren und Verteilen.
Das Einbinden von SBOMs durch Verweis impliziert, dass die Sammlung von SBOMs, aus denen das Produkt besteht, als eine Einheit verwaltet werden muss. Ihre Fähigkeiten variieren jedoch, wenn die Komponenten-SBOM in unterschiedlichen Spezifikationen vorliegt oder verschiedene Versionen der Spezifikation aufweist.
In dieselbe Richtung gehend, erfordern zusammengestellte SBOM-Einheiten Verbesserungen bei den Werkzeugen, um die SBOM-Referenzen für alltägliche SBOM-Aktionen wie die Suche nach Schwachstellen oder Prüfsummen zu durchlaufen.
Schließlich erfordern SBOM-Referenzen, damit die Werkzeuge funktionieren, die zeitgleiche Verteilung aller SBOMs und machen eine programmatische Beschreibung der Zusammenstellung und Verteilung erforderlich. Eine solche existiert heute nicht.
sbomasm
sbomasm — Das Open-Source-Tool von Interlynk für die SBOM-Zusammenstellung konzentriert sich auf das Einbetten von SBOM-Inhalten, um die oben genannten Herausforderungen zu vermeiden. Es wird jedoch bald die Möglichkeit hinzugefügt, PLB-SBOM mit Referenzen zu erstellen.
Die kommerzielle Plattform von Interlynk wurde mit Blick auf beide Anwendungsfälle entwickelt und kann eine PLB-SBOM unter Verwendung von Referenzen erstellen und bei allen Änderungen eine automatische Generierung von SBOM auslösen.
Die Verwaltung einer komplexen Build-Pipeline ohne Fokus auf Automatisierung kann fehleranfällig sein und wie eine lästige Pflicht erscheinen. Mit einer durchdachten Einrichtung kann jedoch selbst die komplexeste Software-Build-Pipeline problemlos für SBOM und die damit verbundenen Compliance-Anforderungen automatisiert werden.
Interlynk vereinfacht die Sicherheitsoffenlegung, macht sie unkompliziert und automatisiert den Prozess. Kontaktieren Sie uns gerne unter hello@interlynk.io