Dieses Dokument befindet sich in aktiver Entwicklung und ist noch nicht finalisiert.
Skip to content

2.2 Format-Spezifikation

CycloneDX JSON

Wir verwenden CycloneDX als primäres SBOM-Format. CycloneDX ist ein OWASP-Standard und erfüllt die CRA-Anforderung nach einem „allgemein gebräuchlichen und maschinenlesbaren Format" (Art. 13 Abs. 23).

Warum CycloneDX

KriteriumCycloneDXSPDX
Primärer FokusSecurity & ComplianceLizenzen & IP
Vulnerability TrackingNativ (VEX)Über Erweiterungen
Tool-SupportTrivy, Syft, GrypeTrivy, Syft
OWASP-StandardJaNein (Linux Foundation)
CRA-konformJaJa
KomplexitätGeringerHöher

Struktur

Eine CycloneDX SBOM enthält folgende Hauptelemente:

json
{
  "bomFormat": "CycloneDX",
  "specVersion": "1.5",
  "serialNumber": "urn:uuid:<unique-id>",
  "version": 1,
  "metadata": {
    "timestamp": "2026-02-08T12:00:00Z",
    "tools": {
      "components": [
        {
          "type": "application",
          "name": "trivy",
          "version": "0.58.0"
        }
      ]
    },
    "component": {
      "type": "application",
      "name": "product-name",
      "version": "1.2.3",
      "supplier": {
        "name": "BAUER GROUP"
      }
    }
  },
  "components": [
    {
      "type": "library",
      "name": "example-package",
      "version": "4.1.0",
      "purl": "pkg:npm/example-package@4.1.0",
      "licenses": [
        {
          "license": {
            "id": "MIT"
          }
        }
      ],
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "abc123..."
        }
      ]
    }
  ],
  "dependencies": [
    {
      "ref": "product-name",
      "dependsOn": ["example-package"]
    }
  ]
}

Pflichtfelder

FeldCRA-RelevanzBeschreibung
bomFormatFormatidentifikationMuss CycloneDX sein
specVersionStandardkonformitätMindestens 1.5
serialNumberEindeutigkeitUUID für jede SBOM-Instanz
metadata.timestampNachvollziehbarkeitGenerierungszeitpunkt
metadata.componentProduktidentifikationProdukt-Name und Version
metadata.component.supplierHerstelleridentifikationBAUER GROUP
components[].nameKomponentenidentifikationPaket-/Library-Name
components[].versionVersionsnachverfolgungExakte Version
components[].purlEindeutige ReferenzPackage URL (empfohlen)

Dateinamenskonvention

sbom-<product>-<version>.cdx.json

Beispiele:
sbom-api-gateway-v2.1.0.cdx.json
sbom-firmware-esp32-v1.3.2.cdx.json
sbom-web-frontend-v4.0.1.cdx.json

SBOM-Versionierung

Jede neue Version eines Produkts erhält eine eigene SBOM. Die SBOM-Version (version-Feld) wird bei jeder Neugenerierung für dieselbe Produktversion inkrementiert (z.B. bei Korrekturen der SBOM selbst).

SPDX (Sekundärformat)

SPDX wird als Sekundärformat unterstützt, primär für Szenarien, in denen Geschäftspartner oder Regulierer SPDX explizit anfordern.

bash
# SPDX-Generierung
trivy image --format spdx-json --output sbom.spdx.json <image>:<tag>

Dokumentation lizenziert unter CC BY-NC 4.0 · Code lizenziert unter MIT