Begriff
SBOM (Software Bill of Materials)
Warum wichtig?
Dieser Begriff ist ein Knoten im SengakujiWorks-Wissensnetz. Nutze Level 0 für die erste Einordnung, Level 1 für Praxis, Level 2 für technische Struktur und Level 3 für Grenzen, Fallstricke und Expertenkontext.
Wenn du eine Tiefkühl-Lasagne kaufst, steht hinten drauf: "Mehl, Tomaten, Rindfleisch, E450." Das ist wichtig für Allergiker. Kaufst du Software, steht da oft nur: "Lasagne.exe". Niemand weiß, was drin ist (welche Open-Source-Bibliotheken). Eine SBOM ist die Zutatenliste für Software. Sie listet jede winzige Komponente auf ("Log4j Version 2.14, OpenSSL 1.1.1"). Wenn bekannt wird, dass "Log4j" giftig ist (Sicherheitslücke), weißt du sofort: "Oh Gott, meine Lasagne ist betroffen!"
Merksatz: Eine formelle, maschinenlesbare Bestandsliste aller Komponenten, Bibliotheken und Module, die in einer Software enthalten sind.
Seit dem "SolarWinds"-Hack und "Log4Shell" fordern Regierungen (US Executive Order) eine SBOM.
Tools erstellen sie automatisch beim Kompilieren:
syft oder cyclonedx-cli.
Format: JSON oder XML (Standards: CycloneDX oder SPDX).
Du als Entwickler siehst sie selten, aber dein Sicherheits-Team braucht sie dringend.
1. Transitive Abhängigkeiten
Das Problem ist nicht dein Code. Das Problem ist, dass dein Code Bibliothek A nutzt. Bibliothek A nutzt Bibliothek B. Bibliothek B nutzt Bibliothek C (die von einem Hobby-Entwickler in Nebraska gepflegt wird). Eine gute SBOM zeigt den kompletten Baum bis ganz unten ("Deep Dependency Tree").
2. VEX (Vulnerability Exploitability Exchange)
Nur weil eine veraltete Lib in der SBOM steht, heißt das nicht, dass man hackbar ist. Vielleicht nutzt man die kaputte Funktion gar nicht. VEX ist ein Zusatz-Dokument zur SBOM: "Ja, wir haben Log4j, aber wir sind NICHT betroffen, weil wir Feature X deaktiviert haben." (False Positive Reduction).
1. Dependency Confusion & Supply Chain Integrity
Das größte Risiko, das eine SBOM aufdeckt, ist Dependency Confusion. Angreifer laden Pakete mit dem gleichen Namen wie interne Firmen-Bibliotheken (z. B. @mycorp/internal-ui) auf öffentliche Register wie npm hoch, aber mit einer höheren Versionsnummer. Ohne SBOM und striktes Pinning saugt die CI/CD-Pipeline das bösartige Paket von extern anstatt von intern.
Eine moderne SBOM nutzt PURL (Package URL), um Komponenten eindeutig zu identifizieren, und kombiniert dies mit VDR (Vulnerability Disclosure Reports). So wird nicht nur gelistet, was drin ist, sondern auch der gerichtsfeste Beweis geliefert, dass die Pipeline nur verifizierte Quellen genutzt hat.
2. CycloneDX vs. SPDX: Der Standard-Krieg
Es gibt zwei dominierende Formate, die man kennen sollte:
- SPDX (Software Package Data Exchange): Ein ISO-Standard, der ursprünglich von der Linux Foundation für Lizenz-Compliance (Open Source Compliance) entwickelt wurde. Sehr detailliert, aber oft sperrig für automatisierte Security-Tools.
- CycloneDX: Von der OWASP-Community entwickelt. Es ist für Security und Supply-Chain-Analysen optimiert. Es ist schlanker, moderner und unterstützt nativ Konzepte wie SaaS-BOMs (S-BOM) und Hardware-BOMs (HBOM). In der modernen DevSecOps-Praxis gewinnt CycloneDX gerade massiv an Boden, da es sich leichter in JSON-basierten Web-Pipelines verarbeiten lässt.
3. VEX: Die Antwort auf "Vulnerability Fatigue"
Sicherheitsteams leiden unter zehntausenden Fehlalarmen. Eine SBOM zeigt eine Komponente mit einer bekannten Lücke (CVE). Der Entwickler weiß aber: "Wir nutzen die Funktion überhaupt nicht, der Code ist sicher." Hier kommt VEX (Vulnerability Exploitability Exchange) ins Spiel. Es ist ein maschinenlesbarer Begleitzettel zur SBOM. Darin deklariert der Hersteller offiziell: "CVE-2024-XXXX ist in unserem Produkt nicht ausnutzbar (Not Affected)." Tools können diesen VEX-Report einlesen und den Alarm automatisch unterdrücken, was die tägliche Arbeit der Security-Analysten massiv entspannt.
Quick-Check
Verhindert SBOM Hacks?
Nein. Die Zutatenliste macht das Essen nicht gesünder. Aber sie hilft dir, schneller zu reagieren, wenn eine Zutat faul wird.Ist das Pflicht?
Für Behörden-Software in den USA: Ja. In der EU (Cyber Resilience Act): Bald ja. Für private Hobby-Projekte: Nein.Kann man SBOMs fälschen?
Ja. Deshalb sollten sie kryptografisch signiert sein (Sigstore), damit man beweisen kann, dass die Liste wirklich vom Hersteller kommt.