Software Bill of Materials (SBOM)
Erfassen, welche Bestandteile Ihre Software enthält
Software Bill of Materials (SBOM) ist eine kostenlose Cyber Security Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Cyber Security Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Cyber Security Academy-Kurs umfasst insgesamt 4 Lektionen.
Was ist eine SBOM
Eine Software Bill of Materials (SBOM) ist ein formales, maschinenlesbares Inventar jeder Komponente in einer Software: Bibliotheken, ihre Versionen, Lizenzen und Lieferanteninformationen.
So wie ein Lebensmitteletikett die Zutaten auflistet, können Sie mit einer SBOM in wenigen Sekunden die Frage beantworten: Enthält dieses Produkt die verwundbare Version von X? Ohne eine SBOM kann die manuelle Suche nach dieser Antwort Tage dauern.
Warum SBOMs heute wichtig sind
Wenn eine kritische Schwachstelle bekannt wird, lautet die erste operative Frage: Welche unserer Produkte enthalten die betroffene Komponente?
Während des Log4Shell-Vorfalls konnten Organisationen mit SBOMs ihr Inventar abfragen und innerhalb weniger Stunden eine Triage durchführen. Organisationen ohne SBOMs verbrachten Wochen damit, Build-Verzeichnisse mit grep zu durchsuchen. Aufsichtsbehörden und große Abnehmer verlangen SBOMs zunehmend als Bedingung für die Beschaffung.
- Schnelle Analyse der Auswirkungen von Schwachstellen
- Lizenzkonformität und Nachverfolgung von Verpflichtungen
- Transparenz der Lieferkette für Kunden und Prüfer
Standardformate für SBOMs
Zwei offene Standards sind vorherrschend. Tools können in der Regel zwischen ihnen konvertieren.
- SPDX — ein Standard der Linux Foundation, besonders stark bei Lizenzen und von Aufsichtsbehörden weithin akzeptiert
- CycloneDX — ein OWASP-Standard mit Schwerpunkt auf Sicherheit, der Daten zu Schwachstellen und Abhängigkeitsbeziehungen unterstützt
Erfinden Sie kein eigenes Format; Abnehmer und Scanner erwarten diese Standards.
Welche Angaben ein Eintrag enthält
Jeder Komponenteneintrag sollte genügend Identifikationsdaten enthalten, damit er mit Schwachstellen-Feeds abgeglichen werden kann. Die wichtigsten Felder:
- Name und Version — exakt, nicht als Bereich
- PURL (Package-URL) — ein universeller Bezeichner wie
pkg:npm/lodash@4.17.21 - Hash — zur Überprüfung der Integrität
- Lizenz — SPDX-Lizenzkennung
- Lieferant — wer die Komponente erstellt hat
# A PURL uniquely identifies a component across ecosystems
pkg:npm/lodash@4.17.21
pkg:pypi/requests@2.31.0
pkg:golang/github.com/gin-gonic/gin@v1.9.1Eine SBOM generieren
Generieren Sie SBOMs automatisch aus dem Quellcode oder aus einem erstellten Artefakt. Syft ist ein verbreiteter Generator für verschiedene Ökosysteme, der beide Standards ausgeben kann.
# from a project directory (CycloneDX JSON)
syft dir:. -o cyclonedx-json=sbom.cdx.json
# from a container image (SPDX JSON)
syft my-app:1.4.0 -o spdx-json=sbom.spdx.json
# CycloneDX has native generators per ecosystem too
cyclonedx-npm --output-file sbom.jsonSBOMs aus Quelle, Build und Laufzeit
Eine SBOM, die in verschiedenen Phasen erstellt wird, bildet jeweils andere Gegebenheiten ab.
- Source-SBOM — was das Manifest deklariert; gebündelter oder als Vendor-Code eingebundener Code kann fehlen
- Build-SBOM — was der Build tatsächlich abgerufen hat; für ein Release am genauesten
- Runtime-/Deployed-SBOM — was im laufenden Image tatsächlich vorhanden ist, einschließlich der Betriebssystempakete
Erstellen Sie für die Absicherung der Lieferkette die SBOM zur Build-Zeit aus dem tatsächlichen Artefakt und prüfen Sie den finalen Container zusätzlich auf Pakete der Betriebssystemebene.
Eine SBOM auf Schwachstellen prüfen
Eine SBOM wird besonders nützlich, wenn Sie sie einem Abgleichwerkzeug zuführen, das Komponenten bekannten CVEs zuordnet. Dadurch werden Erzeugung und Analyse entkoppelt: Sie können eine alte SBOM an dem Tag prüfen, an dem eine neue CVE veröffentlicht wird.
# match an SBOM against vulnerability databases
grype sbom:sbom.cdx.json
# OSV scanner consumes SBOMs directly
osv-scanner --sbom=sbom.spdx.json
# fail CI above a severity threshold
grype sbom:sbom.cdx.json --fail-on highVEX: Ausnutzbarkeit angeben
Eine SBOM kann eine verwundbare Komponente ausweisen, die in Ihrem Produkt tatsächlich nicht ausnutzbar ist, weil die verwundbare Funktion nie aufgerufen wird. Ein VEX-Dokument (Vulnerability Exploitability eXchange) hält diese Bewertung fest.
VEX reduziert das Rauschen: Statt dass jeder Kunde wegen einer aufgeführten CVE in Panik gerät, veröffentlichen Sie eine begründete Erklärung mit not_affected oder eine Erklärung mit affected und Maßnahmen zur Behebung. So wird aus einem rohen Inventar eine verwertbare Triage.
SBOMs verteilen und signieren
Eine SBOM ist nur dann vertrauenswürdig, wenn sie authentisch ist und eindeutig mit dem exakten Artefakt verknüpft ist, das sie beschreibt. Signieren Sie sie und hängen Sie sie als Attestation an, statt sie als lose Datei abzulegen.
# attach a signed SBOM attestation to an image with cosign
cosign attest --predicate sbom.cdx.json \
--type cyclonedx \
my-registry/my-app:1.4.0
# verify the attached SBOM attestation
cosign verify-attestation --type cyclonedx my-registry/my-app:1.4.0SBOMs in CI automatisieren
Manuell erstellte SBOMs veralten sofort. Integrieren Sie die Generierung in die Pipeline, sodass bei jedem Release eine SBOM erstellt und als Build-Artefakt gespeichert wird, idealerweise im selben Job signiert und geprüft.
- Erstellen Sie sie aus dem erstellten Artefakt, nicht nur aus dem Repository
- Speichern Sie SBOMs in einer abfragbaren Registry, die nach Version indiziert ist
- Prüfen Sie gespeicherte SBOMs regelmäßig anhand aktueller CVE-Feeds erneut
- Koppeln Sie die Release-Freigabe an das Ergebnis der Schwachstellenprüfung
Häufige Fehler bei SBOMs
SBOMs scheitern unbemerkt, wenn sie nur als Pflichtübung behandelt werden.
- Veraltet — einmal erstellt und nie wieder neu generiert
- Unvollständig — Betriebssystempakete sowie statisch gelinkter oder als Vendor-Code eingebundener Code fehlen
- Nicht verifiziert — kein Hash verknüpft die SBOM mit dem bereitgestellten Artefakt
- Unverwendet — erstellt, aber nie geprüft oder abgefragt
Das Ziel ist eine korrekte, neu generierte, signierte und kontinuierlich geprüfte SBOM, nicht eine einmalige JSON-Datei.
Kurze Überprüfung: Zweck einer SBOM
Wenden Sie das Gelernte auf ein Vorfallszenario an.
Zusammenfassung: SBOM
Sie können nun erfassen, was Ihre Software enthält, und entsprechende Maßnahmen ergreifen.
- Eine SBOM ist eine maschinenlesbare Liste jeder Komponente im SPDX- oder CycloneDX-Format
- Identifizieren Sie Komponenten anhand von PURL, Version, Hash und Lizenz
- Erstellen Sie die SBOM zur Build-Zeit und führen Sie sie anschließend einem Abgleichwerkzeug (grype, osv-scanner) zu, um CVEs zu ermitteln
- Verwenden Sie VEX, um die tatsächliche Ausnutzbarkeit anzugeben und Fehlalarme zu reduzieren
- Signieren und automatisieren Sie die SBOMs in der CI und prüfen Sie gespeicherte SBOMs anhand neuer Feeds erneut
Als Nächstes weisen Sie mit Signaturen die Herkunft von Artefakten nach.
Häufig gestellte Fragen
Ist die Lektion „Software Bill of Materials (SBOM)“ kostenlos?
Ja — der vollständige Text von „Software Bill of Materials (SBOM)“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Cyber Security Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Cyber Security Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Software Bill of Materials (SBOM)“?
Erfassen, welche Bestandteile Ihre Software enthält Du übst Cyber Security Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Cyber Security Academy zu starten?
Keine Vorkenntnisse erforderlich. Cyber Security Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „Software Bill of Materials (SBOM)“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Cyber Security Academy-Lektion Code schreiben und ausführen?
Ja. Jede Cyber Security Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Bedrohungen der Lieferkette
- Software Bill of Materials (SBOM)
- Signieren von Abhängigkeiten und Artefakten
- CI/CD-Pipelines absichern