Firmware-SBOM erstellen: Tools und Workflows
Firmware-SBOM mit Yocto, Buildroot, EMBA oder Syft erstellen. ENISA-Meldungen starten am 11. September 2026. Workflows für CRA-Compliance.
In diesem Artikel
- Zusammenfassung
- Was ist ein Firmware-SBOM?
- Warum ist die Generierung eines Firmware-SBOM schwieriger als ein Standard-Software-SBOM?
- Die zwei grundlegenden Ansätze
- Ansatz 1: Build-Zeit-SBOM mit Yocto oder Buildroot
- Ansatz 2: Analyse einer vorhandenen Binärdatei
- Tool-Referenz: Kurzvergleich
- Ihr Firmware-SBOM im Laufe der Zeit verwalten
- Häufige Fehler, die vermieden werden sollten
- CRA-Compliance-Checkliste für Firmware-Hersteller
- Häufig gestellte Fragen
- Nächste Schritte
Als eine kritische Schwachstelle wie Log4Shell oder OpenSSLs Heartbleed bekannt wurde, stand jedes Software-Team vor derselben Frage: Sind wir betroffen? Für Firmware-Hersteller ist diese Frage ohne ein Software Bill of Materials nahezu unmöglich zu beantworten. Ein Container-Deployment kann seinen Paketmanager in Sekunden abfragen. Eine Firmware-Binärdatei, die in Produktionsgeräten auf einer Fabrikhalle läuft, kann das nicht. Ohne ein Firmware-SBOM haben Sie kein Inventar, und ohne Inventar wissen Sie nicht, was gepatcht, gemeldet oder ersetzt werden muss.
Dieser Leitfaden behandelt die zwei Wege zur Erstellung eines Firmware-SBOM mit Open-Source-Tools, die Herausforderungen, die Firmware schwieriger als Software machen, und wie das Ergebnis für die laufende CRA-Compliance genutzt wird.
Zusammenfassung
- Zwei Wege: Build-Zeit (Yocto/Buildroot, höchste Genauigkeit) oder Post-Build-Binäranalyse (EMBA/Syft/cve-bin-tool, bestmögliche Analyse)
- Wahl abhängig von der Kontrolle: wenn Sie den Build besitzen, Build-Zeit verwenden; wenn Sie Firmware von einem ODM erhalten haben, Binäranalyse verwenden
- Für Binäranalyse: mit binwalk extrahieren, paketierte Komponenten mit Syft scannen, gestrippte Binärdateien mit cve-bin-tool scannen oder ein vollständiges Audit mit EMBA durchführen
- Im Format CycloneDX JSON generieren für CRA-Compliance; SPDX zusätzlich verwenden, wenn Open-Source-Lizenz-Compliance benötigt wird
- An Dependency-Track übergeben für laufendes CVE-Monitoring und VEX-Workflow-Verwaltung
- ENISA-Meldepflicht ab 11. September 2026: wenn Ihre SBOM-Pipeline heute nicht operativ ist, sind Sie bereits spät dran
- ODM-Firmware liegt in Ihrer gesetzlichen Verantwortung gemäß CRA: SBOM-Lieferung von allen Firmware-Lieferanten einfordern
Was ist ein Firmware-SBOM?
Ein Firmware-SBOM ist ein strukturiertes Inventar aller Softwarekomponenten, die in einem Firmware-Image enthalten sind: OS-Pakete, gemeinsam genutzte Bibliotheken, Bootloader, Kernel-Module, Treiber und alle herstellerspezifischen binären Blobs. Dieselben NTIA-Mindestelemente gelten wie für jedes Software-SBOM: Lieferantenname, Komponentenname, Version, eindeutiger Bezeichner, Abhängigkeitsbeziehungen, Autor der SBOM-Daten und Zeitstempel, sind jedoch für Firmware wesentlich schwieriger zu befüllen als für eine Webanwendung.
CycloneDX 1.6 definiert firmware als eigenständigen Komponententyp neben Gerätehardware, was bedeutet, dass Sie das gesamte Produkt, Hardware-, Firmware- und Softwareschichten, in einem einzigen CycloneDX-Dokument modellieren können. Dies ist relevant für die CRA-Produktklassifizierung: Ein als Produkt mit digitalen Elementen eingestufter Router muss seine Firmware-Komponenten über den gesamten Supportzeitraum verfolgt und überwacht haben.
Anhang I, Teil II der CRA verpflichtet Hersteller:
"(1) Schwachstellen und Komponenten der Produkte mit digitalen Elementen ermitteln und dokumentieren, u. a. durch Erstellung einer Software-Stückliste in einem gängigen maschinenlesbaren Format, aus der zumindest die obersten Abhängigkeiten der Produkte hervorgehen;"
Für Firmware bedeutet "oberste Abhängigkeiten" jedes OS-Paket, jede gemeinsam genutzte Bibliothek, jeden Bootloader und jedes Kernel-Modul im Image, nicht nur das, was ein Paketmanager meldet.
Den vollständigen regulatorischen Kontext finden Sie unter SBOM-Anforderungen gemäß CRA.
Ein Firmware-SBOM ist kein Hardware Bill of Materials (HBOM). Das HBOM dokumentiert physische Komponenten: Leiterplatten, Chips, Steckverbinder. Ein Firmware-SBOM dokumentiert die Software, die auf dieser Hardware läuft.
Warum ist die Generierung eines Firmware-SBOM schwieriger als ein Standard-Software-SBOM?
Ein SBOM für eine Webanwendung zu erstellen bedeutet, npm list --json oder pip list auszuführen. Ein SBOM für Firmware zu erstellen bedeutet, ein Manifest aus Artefakten zu rekonstruieren, die nie für eine Inventarisierung konzipiert wurden.
| Herausforderung | Software-SBOM | Firmware-SBOM |
|---|---|---|
| Paket-Manifest | package.json, requirements.txt, maschinenlesbar |
Häufig nicht vorhanden. Bibliotheken eincompiliert, kein Manifest überlebt. |
| Komponentenidentität | PURL vorhanden, exakte Version im Manifest | Gestrippte Binärdateien. Version aus Strings oder Hashes abgeleitet. |
| Extraktion | npm list --json |
Squashfs / JFFS2 / cramfs / ext2-Images müssen zuerst entpackt werden. |
| Sprachvielfalt | Eines oder wenige Ökosysteme | C/C++-Kernel + Python-Skripte + RTOS + Assembler, alles in einem Image. |
| Drittanbieter-Blobs | Selten | Häufig: Wi-Fi-Firmware, Hersteller-HALs, ODM-SDK-Blobs. |
| Verschlüsselung | Selten | Häufig. Viele Consumer-Router verschlüsseln Firmware. |
Die zentrale Erkenntnis: Firmware-SBOM-Generierung ist Reverse Engineering unter Unsicherheit. Sie rekonstruieren ein Manifest aus Artefakten, anstatt eines aus Inputs zu generieren. Diese Unterscheidung bestimmt, welches Tool und welchen Workflow Sie wählen sollten.
Die zwei grundlegenden Ansätze
- QuellcodeRezepte, Pakete, Patches und deklarierte Anbieter-Blobs.
- Build-SystemYocto oder Buildroot erfassen die exakten Eingaben.
- SBOM-Generator
create-spdxodercyclonedx-buildrootexportiert das Inventar. - AusgabeCycloneDX oder SPDX mit verlässlichen Komponentendaten.
- MonitoringDependency-Track für CVE- und VEX-Workflows.
- Firmware-Image
firmware.bin, Geräte-Dump oder Lieferantendatei. - ExtrahierenMit binwalk squashfs, JFFS2, UBI, ext2 oder cramfs entpacken.
- AnalysierenEMBA, Syft, cve-bin-tool oder blint kombinieren.
- AusgabeCycloneDX mit Nachweisen und Vertrauensstufen.
- MonitoringLücken, CVEs und VEX-Entscheidungen laufend verfolgen.
Jeder Firmware-SBOM-Workflow fällt in eine von zwei Kategorien:
- Build-Zeit-SBOM. Während des Build-Prozesses aus den exakten Inputs des Build-Systems generiert. Höchste Genauigkeit. Erfordert Zugang zum Quell-Build. Funktioniert mit Yocto und Buildroot.
- Post-Build / analysiertes SBOM. Aus einem Firmware-Binär-Image reverse-engineered. Geringere Konfidenz, aber oft die einzige Option, wenn Sie Firmware von einem ODM erhalten oder ein Gerät auditieren, das Sie nicht selbst hergestellt haben.
Die richtige Wahl hängt vollständig davon ab, ob Sie den Build kontrollieren.
Ansatz 1: Build-Zeit-SBOM mit Yocto oder Buildroot
Wann verwenden: Sie besitzen den Firmware-Build. Dies ist der Goldstandard für Genauigkeit.
Yocto: create-spdx-Klasse (eingebaut)
Das OpenEmbedded-Build-System erzeugt SPDX-SBOM-Daten standardmäßig, indem es create-spdx über INHERIT_DISTRO erbt. Nach einem normalen Image-Build liegt die wichtigste SPDX-JSON-Datei im Deploy-Verzeichnis des Images:
# Nach einem normalen Yocto-Image-Build
ls tmp/deploy/images/MACHINE/
# IMAGE-MACHINE.spdx.json ← SPDX-Hauptdokument
# SBOM-Metadaten der Rezepte sind für Rezepte im Image enthalten
Das generierte SBOM enthält alle Softwarekomponenten, exakte Versionen, Lizenzen, Quell-URLs, angewandte Patches und Abhängigkeitsbeziehungen. Es gibt keine Extraktionsunsicherheit, das SBOM wird aus denselben Inputs abgeleitet, die das Binary produziert haben.
Um auch zur Build-Zeit eine CVE-Analyse durchzuführen:
# Zu local.conf hinzufügen
INHERIT += "cve-check"
CVE_CHECK_REPORT_PATCHED = "1"
Vollständige Konfigurationsoptionen finden Sie in der Yocto-SBOM-Dokumentation.
Buildroot: make legal-info + CycloneDX-Generator
# Schritt 1: Komponentenmanifest erzeugen
make legal-info
# Ausgabe: output/legal-info/manifest.csv
# Schritt 2: In CycloneDX-SBOM umwandeln
pip install cyclonedx-buildroot
cyclonedx-buildroot output/legal-info/manifest.csv -o sbom.cdx.json
# Optional: Beim Build auf CVEs scannen
python support/scripts/cve-check --nvd-path ./nvd-data/
Der cyclonedx-buildroot-Konverter erzeugt eine CycloneDX-JSON-Ausgabe aus Buildrootss Legal-Manifest, die sofort für die CRA-Compliance verwendbar ist.
Tipp: Build-Zeit-SBOMs erfassen genau alles, was in das Image geflossen ist, einschließlich benutzerdefinierter Patches und eingebetteter Bibliotheken, die Binäranalyse-Tools vollständig übersehen würden.
Bekannte Einschränkung: Drittanbieter-Binär-Blobs, die dem Build hinzugefügt werden (Wi-Fi-Firmware, GPU-Blobs), werden nur verfolgt, wenn Sie sie manuell als Yocto- oder Buildroot-Pakete hinzufügen. Wenn Ihr Build-System nichts von einem Blob weiß, wird das SBOM es auch nicht wissen.
Zephyr RTOS: west spdx
Zephyr erzeugt SBOMs nativ über den Befehl west spdx. Standardmäßig entstehen SPDX-2.3-Dokumente im Tag-Value-Format:
west spdx --init -d build
west build -d build -b <your_board> <app_dir>
west spdx -d build
Die Ausgabe liegt in build/spdx/ und umfasst app.spdx, zephyr.spdx, build.spdx und modules-deps.spdx. Drittanbieter-Blobs oder Out-of-Tree-Bibliotheken, die nicht von den Build-Metadaten erfasst werden, fehlen. Dokumentieren Sie diese Lücken oder fügen Sie sie manuell als externe Komponenten hinzu.
Für FreeRTOS und Bare-Metal-RTOS-Plattformen ohne natives SBOM-Tooling scannen Sie das kompilierte Binary mit cve-bin-tool. Erfassen Sie die RTOS-Kernelversion und enthaltene Middleware manuell als CycloneDX-Komponenten.
Ansatz 2: Analyse einer vorhandenen Binärdatei
Wann verwenden: Sie haben Firmware von einem ODM oder OEM erhalten, oder Sie auditieren ein Gerät, das Sie nicht selbst bauen.
Schritt 1: Firmware mit binwalk extrahieren
binwalk ist das Standard-Open-Source-Tool zum Entpacken von Firmware:
# binwalk installieren
pip install binwalk
# Alle eingebetteten Dateisysteme extrahieren
binwalk -eM firmware.bin
# Prüfen, was extrahiert wurde
ls _firmware.bin.extracted/
# Vor dem Fortfahren auf verschlüsselte Partitionen prüfen
binwalk -E firmware.bin
# Hohe Entropie (über 0.9) weist auf verschlüsselte Inhalte hin
Hinweis: ReFirmLabs pflegt außerdem ein Rust-Rewrite, das mit cargo install binwalk installiert werden kann. Beide Versionen funktionieren für die folgenden Schritte; die Kommando-Flags sind gleich.
Warnung: Wenn binwalk über das gesamte Image hohe Entropie meldet, ist die Firmware verschlüsselt. Eine automatische SBOM-Generierung ist ohne den Entschlüsselungsschlüssel oder einen Hardware-Memory-Dump nicht möglich. Dokumentieren Sie dies explizit als Lücke in Ihrem SBOM, ein teilweises Inventar ist besser als ein falsches Gefühl der Vollständigkeit.
Schritt 2a: Linux-Distribution identifizieren und Syft ausführen
Wenn das extrahierte Dateisystem eine standardmäßige eingebettete Linux-Distribution enthält (OpenWRT, Debian-basiert, Alpine-basiert):
# Paketmanager-Datenbanken prüfen
ls _firmware.bin.extracted/squashfs-root/var/lib/dpkg/ # Debian-based
ls _firmware.bin.extracted/squashfs-root/lib/apk/db/ # Alpine/musl-based
ls _firmware.bin.extracted/squashfs-root/var/lib/opkg/ # OpenWRT/opkg
# Syft auf dem extrahierten Dateisystem ausführen
syft dir:./_firmware.bin.extracted/squashfs-root/ \
-o cyclonedx-json=sbom.cdx.json \
-o spdx-json=sbom.spdx.json
Syft liest Paketmanager-Datenbanken und generiert ein SBOM mit hoher Konfidenz für paketierte Komponenten. Es sieht keine custom-kompilierten C/C++-Bibliotheken, die direkt in das Binary kompiliert wurden. Dafür benötigen Sie Schritt 2b.
Schritt 2b: Binärdateien auf bekannte anfällige Bibliotheken mit cve-bin-tool scannen
# Intels cve-bin-tool installieren
pip install cve-bin-tool
# Extrahiertes Binärverzeichnis scannen
cve-bin-tool ./_firmware.bin.extracted/ \
--output-file cve-report.json \
-f cyclonedx
cve-bin-tool verwendet String-Mustererkennung gegen Signaturen für 447+ bekannte eingebettete Bibliotheken: OpenSSL, libpng, libxml2, expat, zlib, curl und mehr. Es deckt ab, was Syft übersieht: Bibliotheken, die kompiliert und in das Binary eingestreift wurden, ohne Paketdatenbankeintrag.
Schritt 2c: Tiefgreifende Firmware-Analyse mit EMBA
Für eine umfassende Analyse, die Extraktion, SBOM-Generierung und eine vollständige Sicherheitsüberprüfung in einem einzigen Workflow kombiniert:
# EMBA klonen und einrichten
git clone https://github.com/e-m-b-a/emba.git
cd emba && sudo ./installer.sh -d
# EMBA mit SBOM-Ausgabe ausführen
sudo ./emba.sh -f /path/to/firmware.bin -l /tmp/emba-log/ -p SBOM
EMBA übernimmt die Extraktion intern, identifiziert Komponenten durch mehrere parallele Strategien (String-Matching, Binary-Hashing, Dateisystemanalyse, CVE-Datenbankabfragen), gibt ein CycloneDX-SBOM mit VEX-Daten aus und generiert einen vollständigen Schwachstellenbericht. Es ist die umfassendste Open-Source-Option für Black-Box-Firmware-Analysen und besonders nützlich für Drittanbieter-Firmware-Audits.
Tool-Referenz: Kurzvergleich
create-spdxSPDX-Ausgabe direkt aus Build-Eingaben.Buildroot + cyclonedx-buildrootManifest-Konvertierung nach CycloneDX.| Tool | Rolle | Verwenden wenn |
|---|---|---|
Yocto create-spdx |
Build-Zeit-SBOM (SPDX) | Sie verwenden Yocto zum Bauen von Firmware |
| Buildroot + cyclonedx-buildroot | Build-Zeit-SBOM (CycloneDX) | Sie verwenden Buildroot |
| binwalk | Firmware-Extraktion | Schritt 1 für jede Binäranalyse |
| EMBA | Vollständiges Firmware-Audit + SBOM | Drittanbieter-Firmware, Sicherheitsaudits |
| Syft | Dateisystem-/Paket-SBOM | Extrahierte Linux-Dateisysteme mit Paket-DBs |
| Grype | Schwachstellen-Scanning | Nach Syft, CVE-Abgleich mit generiertem SBOM |
| cve-bin-tool | Binäre CVE-Erkennung | Erkennung anfälliger eingebetteter Bibliotheken |
| blint | Binäres CycloneDX-SBOM | Go-, Rust- und Android-Binärdateien speziell |
| Dependency-Track | SBOM-Lifecycle-Verwaltung | Laufendes CVE-Monitoring für beliebige Firmware |
SPDX vs CycloneDX: Beide Formate werden weitgehend akzeptiert. CycloneDX hat einen nativen
firmware-Komponententyp und eingebaute VEX-Unterstützung, was es zur besseren Wahl für die CRA-Compliance macht. SPDX ist in Open-Source-Lizenz-Compliance-Kontexten bevorzugt und Yoctos native Ausgabe. Für CRA: CycloneDX generieren. Wenn Sie Yocto verwenden: beide generieren. BSI TR-03183-2 v2.1.0, die deutsche BSI-Richtlinie für SBOMs unter der CRA, empfiehlt CycloneDX 1.6+ oder SPDX 3.0.1+ und wird von Auditoren und notifizierten Stellen am häufigsten herangezogen.
Ihr Firmware-SBOM im Laufe der Zeit verwalten
Ein einmaliges SBOM ist ein Schnappschuss. Für die CRA-Compliance benötigen Sie ein operatives SBOM, das sich mit Ihrem Produkt weiterentwickelt.
- Firmware-BuildCI/CD-Trigger oder Lieferantendatei.
- SBOMCycloneDX JSON mit Komponenten-Nachweisen.
- Dependency-TrackNVD-, OSV- und GitHub-Advisory-Monitoring.
- CVE-AlarmNeue Schwachstelle passt zu einer Komponente.
- VEX-EntscheidungBetroffen, nicht betroffen, behoben oder in Prüfung.
- ENISA-BerichtNur wenn Ausnutzung die CRA-Meldung auslöst.
Fünf Schritte, um dies operativ zu machen:
-
Bei jedem Firmware-Build neu generieren. Hängen Sie die Yocto- oder Buildroot-SBOM-Generierung in Ihre CI/CD-Pipeline ein, sodass jedes Release automatisch ein frisches SBOM erzeugt.
-
An Dependency-Track übergeben. OWASPs Dependency-Track überwacht Ihr SBOM gegen Live-CVE-Feeds (NVD, OSV, GitHub Advisory) und benachrichtigt Sie, wenn neue Schwachstellen vorhandene Komponenten betreffen.
-
SBOM signieren. Signieren Sie die erzeugte Datei mit cosign von Sigstore, bevor Sie sie speichern oder teilen:
cosign sign-blob sbom.cdx.json \ --bundle sbom.cdx.json.bundle \ --yesSpeichern Sie das Bundle neben dem SBOM. Kunden und Behörden können es mit
cosign verify-blobprüfen. Die CRA verlangt das heute nicht, aber Supply-Chain-Sicherheitsframeworks wie SLSA und in-toto erwarten es. -
VEX-Aussagen ausstellen. Wenn eine CVE in einer Komponente gefunden wird, dokumentieren Sie, ob das Produkt
affected,not_affected,fixedoderunder_investigationist. CycloneDX VEX ist das Format; Dependency-Track verwaltet den Workflow. Einzelheiten zum Prozess finden Sie im VEX-Leitfaden. -
An ENISA melden. Ab September 2026 schreibt die CRA die Meldung aktiv ausgenutzter Schwachstellen an ENISA innerhalb von 24 Stunden vor. Den genauen Workflow finden Sie im ENISA-Meldungsleitfaden. Dependency-Track in Kombination mit VEX ist die operative Grundlage, die Sie dafür benötigen.
Häufige Fehler, die vermieden werden sollten
1. Nur auf Syft vertrauen bei Firmware. Syft sieht nur paketverwaltete Komponenten. Jede Bibliothek, die direkt in das Binary kompiliert wurde, ohne Paketdatenbankeintrag, ist unsichtbar. Kombinieren Sie Syft immer mit cve-bin-tool oder blint.
2. Hochentropie-Bereiche ignorieren. binwalk überspringt verschlüsselte Partitionen stillschweigend. Führen Sie vor der Extraktion eine Entropieanalyse durch (binwalk -E); dokumentieren Sie alle Lücken explizit im SBOM.
3. Den Bootloader vergessen. U-Boot, coreboot und GRUB sind Firmware-Komponenten mit realen CVEs. Sie befinden sich außerhalb des OS-Dateisystems und werden von den meisten Tools übersehen, wenn sie nicht explizit angesteuert werden. Ihr SBOM muss den Bootloader enthalten.
4. Analysierte SBOMs als autoritativ behandeln. Ein post-build reverse-engineertes SBOM ist eine Annäherung. Markieren Sie Komponenten mit Konfidenzwerten. Verwenden Sie CycloneDXs evidence-Feld, um zu dokumentieren, wie jede Komponente identifiziert wurde: String-Match, Paketdatenbank, Binary-Hash oder manuelle Eingabe.
5. Kein Lifecycle-Plan. Ein SBOM zu einem einzigen Zeitpunkt erfüllt keine Compliance-Anforderung. Täglich werden neue CVEs veröffentlicht. Ohne laufendes Monitoring über Dependency-Track oder ein äquivalentes Tool wird Ihr SBOM innerhalb von Wochen veraltet.
6. ODM-Blob-Lücke. Wenn Ihre Hardware mit Firmware von einem ODM oder Chip-Hersteller ausgeliefert wird, können Sie nicht analysieren, was Sie nicht gebaut haben. Lösen Sie dies vertraglich: Fordern Sie SBOM-Lieferung von Ihren Firmware-Lieferanten. Dies ist unter der CRA nicht optional, Sie sind für das gesamte Produkt verantwortlich.
CRA-Compliance-Checkliste für Firmware-Hersteller
□ Alle Firmware-Komponenten in Ihren Produkten identifizieren (das SBOM)
□ Ansatz wählen: Build-Zeit (Yocto/Buildroot) oder Post-Build (EMBA/Syft/cve-bin-tool)
□ SBOM im CycloneDX-JSON-Format generieren (zusätzlich SPDX für Open-Source-Lizenz-Compliance)
□ Bootloader, Kernel, alle Userspace-Pakete und etwaige Hersteller-Blobs einschließen (oder als Lücken dokumentieren)
□ SBOM in Dependency-Track (oder äquivalent) einpflegen für laufendes Monitoring
□ VEX-Workflow für die Dokumentation des Ausnutzungsstatus von CVEs etablieren
□ Melde-Pipeline für ENISA ab September 2026 einrichten
□ SBOM-Lieferung von allen Firmware-Komponentenlieferanten (ODMs, Chip-Hersteller) einfordern
□ SBOM bei jedem Firmware-Build neu generieren und Änderungen über die Zeit verfolgen
□ SBOM-Generierungsmethodik für Audit-Zwecke dokumentieren
Häufig gestellte Fragen
Welches Firmware-SBOM-Tool ist am besten geeignet, wenn ich mit Yocto baue?
Nutzen Sie Yoctos eingebaute create-spdx-bbclass. Die aktuelle Yocto-Dokumentation sagt, dass OpenEmbedded sie standardmäßig über INHERIT_DISTRO erbt. Sie erzeugt ein SPDX-Dokument aus den exakten Build-Inputs und benötigt keine zusätzlichen Tools. Post-Build-Binäranalyse-Tools wie EMBA oder Syft sind nur notwendig, wenn Sie den Build nicht selbst kontrollieren. Wer den Yocto-Build besitzt, setzt auf create-spdx als Goldstandard für Genauigkeit.
Reicht Syft allein für die CRA-konforme Firmware-Analyse aus?
Nein, nicht zuverlässig. Syft liest Paketmanager-Datenbanken (dpkg, apk, opkg) gut aus, sieht aber keine Bibliotheken, die direkt in Binärdateien einkompiliert wurden und keinen Paketdatenbankeintrag haben. Diese gestrippten Binärdateien machen bei den meisten Firmware-Images einen erheblichen Anteil aus. Kombinieren Sie Syft mit cve-bin-tool für die Erkennung eingebetteter Bibliotheken, oder verwenden Sie EMBA für eine vollständige Analyse mit einem einzigen Tool.
Welches SBOM-Format schreibt die CRA vor: CycloneDX oder SPDX?
Die CRA schreibt kein bestimmtes Format vor. CycloneDX JSON ist jedoch die empfohlene Wahl für CRA-Compliance. CycloneDX hat einen nativen firmware-Komponententyp (ab Version 1.6), eingebaute VEX-Unterstützung zur Nachverfolgung des Schwachstellenstatus und wird direkt von Dependency-Track für das laufende Monitoring akzeptiert. SPDX zusätzlich generieren, wenn Open-Source-Lizenz-Compliance benötigt wird. Yocto erzeugt SPDX nativ.
Gilt die CRA-Pflicht zur Firmware-SBOM-Erstellung auch für Produkte, die vor Dezember 2027 bereits auf dem Markt sind?
Produkte, die vor dem 11. Dezember 2027 in Verkehr gebracht wurden und danach eine wesentliche Änderung erfahren, müssen ab dem Zeitpunkt der Änderung CRA-konform sein. Produkte, die vor diesem Datum ohne wesentliche Änderung in Verkehr gebracht wurden, müssen nicht rückwirkend nachgerüstet werden. Die Meldepflicht gegenüber ENISA für aktiv ausgenutzte Schwachstellen in betroffenen Produkten, einschließlich bereits im Markt befindlicher Geräte, beginnt jedoch am 11. September 2026.
Bin ich als Hersteller CRA-rechtlich verantwortlich, wenn mein ODM kein SBOM liefert?
Ja. Als Hersteller, der das Produkt auf dem EU-Markt in Verkehr bringt, tragen Sie die Verantwortung für das gesamte Produkt, auch für Firmware-Komponenten von ODMs oder Chip-Herstellern. Die CRA erlaubt keine Delegation der Verantwortung an Lieferanten. Regeln Sie das vertraglich: Verlangen Sie SBOM-Lieferung in Lieferantenvereinbarungen. Ein ODM, der das verweigert, schafft ein Compliance-Risiko für Sie, nicht für sich selbst.
Ab wann gilt die ENISA-Meldepflicht für Firmware-Hersteller?
Ab dem 11. September 2026. Ab diesem Datum müssen aktiv ausgenutzte Schwachstellen in betroffenen Produkten innerhalb von 24 Stunden nach Bekanntwerden der aktiven Ausnutzung an das zuständige nationale CSIRT gemeldet werden. In Deutschland ist das BSI-CERT, das die Meldung an ENISA weiterleitet. Eine Folgemeldung ist innerhalb von 72 Stunden fällig, der Abschlussbericht innerhalb von 14 Tagen. Diese Frist liegt 15 Monate vor dem vollständigen Compliance-Stichtag im Dezember 2027. Eine operative SBOM- und Monitoring-Pipeline muss vor September 2026 stehen, nicht erst danach.
Wie generiere ich ein SBOM für Zephyr-RTOS-Firmware?
Nutzen Sie west spdx. Erzeugen Sie das Build-Verzeichnis mit west spdx --init -d build, führen Sie den normalen west build -d build aus und starten Sie dann west spdx -d build. Die Ausgabe ist ein Satz von SPDX-2.3-Dokumenten für die App, den Zephyr-Quellcode, die Build-Ausgabe und Modulabhängigkeiten. Für Bibliotheken oder Anbieter-Blobs außerhalb der Build-Metadaten ergänzen Sie externe Komponenten oder dokumentieren Lücken. Für FreeRTOS und andere RTOS-Plattformen ohne natives SBOM-Tooling scannen Sie das kompilierte Binary mit cve-bin-tool und erfassen die RTOS-Version manuell als CycloneDX-Komponente.
Sollte ich mein Firmware-SBOM signieren?
Eine Signatur ist unter der CRA heute nicht verpflichtend, aber in Supply-Chain-Sicherheitsframeworks erwartete Praxis. Nutzen Sie cosign von Sigstore, um das SBOM zu signieren, und speichern Sie das Verifikations-Bundle daneben. Ein signiertes SBOM belegt, dass das Dokument aus Ihrer Pipeline stammt und nicht verändert wurde. Das ist relevant, wenn Sie es mit Kunden, Behörden oder notifizierten Stellen teilen.
Verwandte Artikel
VEX für den CRA: Vulnerability Exploitability eXchange erklärt
Gilt der CRA für Ihr Produkt?
Beantworten Sie 6 einfache Fragen, um herauszufinden, ob Ihr Produkt unter die EU Cyberresilienz-Verordnung fällt. Erhalten Sie Ihr Ergebnis in unter 2 Minuten.
Bereit für CRA-Konformität?
Beginnen Sie mit der Verwaltung Ihrer SBOMs und Compliance-Dokumentation mit CRA Evidence.