Getting Started mit embtrace
Voraussetzung: Ein bestehender Yocto- oder Buildroot-Build. embtrace baut nicht selbst — es arbeitet mit dem Output eures Build-Systems.
Installation
Via pip (empfohlen für Entwicklung)
pip install embtrace # Alle optionalen Features pip install "embtrace[all]" # Nur SBOM + S3-Storage pip install "embtrace[sbom,s3]"
Standalone-Binary (kein Python nötig)
# Linux x86_64 — für CI/CD wget https://embtrace.dev/releases/latest/\ embtrace-linux-x86_64 chmod +x embtrace-linux-x86_64 sudo mv embtrace-linux-x86_64 \ /usr/local/bin/embtrace embtrace --version embtrace 0.1.0
Quickstart — Yocto-Beispiel
In 4 Schritten vom Yocto-Build zum CRA-Compliance-Status.
Projekt initialisieren
embtrace erkennt automatisch vorhandene Yocto-Outputs und generiert eine embtrace.yaml.
embtrace init \ --source yocto \ --build-dir ./build → Gefunden: build/tmp/deploy/licenses/ (247 Recipes) → Gefunden: build/tmp/deploy/spdx/ (SPDX-Outputs) → embtrace.yaml erstellt
SBOM importieren und zusammenführen
Importiert die Yocto SPDX-Dateien und erzeugt ein einheitliches Produkt-SBOM im CycloneDX-Format.
embtrace sbom import \ --source yocto \ --build-dir ./build embtrace sbom merge \ --output product-sbom.cdx.json → 247 Recipes importiert → product-sbom.cdx.json (847 Komponenten)
CVE-Scan durchführen
Prüft alle Komponenten gegen OSV.dev und NVD. Erzeugt ein VEX-Dokument mit dem Status jeder CVE.
embtrace sbom vuln \ --sbom product-sbom.cdx.json \ --output vex.json → 847 Komponenten geprüft → 12 CVEs gefunden: 1 CRITICAL, 3 HIGH, 8 MEDIUM → Triage empfohlen: embtrace sbom triage → vex.json erstellt
Compliance prüfen
Prüft das SBOM gegen BSI TR-03183 Pflichtfelder und gibt einen Traffic-Light-Status zurück.
embtrace sbom audit \ --sbom product-sbom.cdx.json \ --policy bsi-tr-03183 ✓ SBOM vorhanden und valide ✓ 847 Komponenten gefunden ✓ 98% haben Supplier-Information ✓ 100% haben konkrete Version ✓ 100% haben SPDX-Lizenz ✓ 100% haben PURL ⚠ 1 CRITICAL CVE gefunden Overall: YELLOW — 6 Warnungen Exit code: 2
Integration in CI/CD-Pipelines
GitLab CI — .gitlab-ci.yml
sbom-compliance: stage: compliance image: python:3.11 script: - pip install "embtrace[sbom]" - embtrace sbom import \ --source yocto \ --build-dir ./build - embtrace sbom merge \ --output sbom.cdx.json - embtrace sbom vuln \ --sbom sbom.cdx.json - embtrace sbom audit \ --policy bsi-tr-03183 artifacts: paths: [sbom.cdx.json, vex.json]
Jenkins — Jenkinsfile
stage('SBOM & Compliance') { steps { sh 'pip install embtrace[sbom]' sh 'embtrace sbom import \ --source yocto \ --build-dir ./build' sh 'embtrace sbom merge \ --output sbom.cdx.json' sh 'embtrace sbom vuln \ --sbom sbom.cdx.json' sh 'embtrace comply audit \ --policy cra' } }
embtrace in eurer Embedded-Pipeline
Custom Build System
Build-System
Release, Compliance
Schicht
RAUC
OTA-System
Fragen zur Integration?
Wir helfen gerne bei der Integration in euren spezifischen Yocto- oder Buildroot-Setup.