CycloneDX vs SPDX: elige tu formato de SBOM conforme al CRA

CycloneDX y SPDX son los dos formatos que satisfacen el requisito del CRA de contar con un SBOM legible por máquina. Elegir entre ellos no es una cuestión de cumplimiento: ambos califican. Es una cuestión de flujo de trabajo sobre qué formato encaja mejor con la forma en que tu equipo gestiona el seguimiento de vulnerabilidades y el cumplimiento de licencias. CycloneDX es un proyecto de OWASP optimizado para casos de uso de seguridad. SPDX es un estándar de la Linux Foundation con reconocimiento ISO/IEC 5962:2021. Esta página compara ambos en las dimensiones que importan para el cumplimiento del CRA y de BSI TR-03183, con ejemplos funcionales de cada uno.

Resumen

  • Tanto CycloneDX (OWASP) como SPDX (Linux Foundation) satisfacen el requisito de formato legible por máquina del CRA
  • CycloneDX 1.6 o posterior es preferible para flujos de trabajo de seguridad; el soporte nativo de VEX llegó en la versión 1.4 y la estructura enriquecida de evidence en la 1.5
  • SPDX 2.2.1 es la versión estandarizada como ISO/IEC 5962:2021; SPDX 2.3 es la revisión estable actual y es compatible con la línea base ISO. SPDX 3.0 está en proceso como ISO/IEC DIS 5962
  • La elección del formato no afecta a los campos que debes cubrir bajo BSI TR-03183: los requisitos de campo son los mismos para ambos
2
Formatos aceptados
CycloneDX o SPDX
VEX
CycloneDX nativo
Vulnerability eXploitability
ISO 5962
Reconocimiento SPDX 2.2.1
Norma internacional 2021
Dec 2027
Aplicación plena
El formato debe estar en vigor

¿Qué formatos de SBOM acepta el CRA?

El CRA exige formatos «comúnmente utilizados y legibles por máquina». En la práctica, dos estándares cumplen el requisito:

Formato Estándar Más adecuado para
CycloneDX OWASP Enfoque en seguridad, soporte nativo de VEX
SPDX Linux Foundation Cumplimiento de licencias, mayor adopción

Ambos formatos son aceptados. CycloneDX es cada vez más preferido para casos de uso de seguridad gracias a su soporte nativo de:

  • Vulnerability Exploitability eXchange (VEX)
  • Avisos de seguridad
  • Grafos de dependencias
graph LR
    SCN[Nombres de componentes] --- SBOM((SBOM))
    VS[Versiones] --- SBOM
    SUP[Información del proveedor] --- SBOM
    DEP[Dependencias] --- SBOM
    SBOM --- LIC[Licencias]
    SBOM --- PURL[URLs de paquete]
    SBOM --- HASH[Valores hash]
    SBOM --- OSC[Componentes de código abierto]
    style SBOM fill:#008080,color:#fff,stroke:#006666,stroke-width:4px
    style SCN fill:#e8f4f8,stroke:#008080,color:#333
    style VS fill:#e8f4f8,stroke:#008080,color:#333
    style SUP fill:#e8f4f8,stroke:#008080,color:#333
    style DEP fill:#e8f4f8,stroke:#008080,color:#333
    style LIC fill:#e8f4f8,stroke:#008080,color:#333
    style PURL fill:#e8f4f8,stroke:#008080,color:#333
    style HASH fill:#e8f4f8,stroke:#008080,color:#333
    style OSC fill:#e8f4f8,stroke:#008080,color:#333

Comparativa

Dimensión CycloneDX SPDX
Origen Proyecto OWASP Linux Foundation
Última especificación estable 1.7 (oct. 2025); objetivo 1.6 o posterior para el CRA 2.3 (actual); 3.0 en ISO DIS
Reconocimiento de estándares OWASP, ECMA TC54 (en curso) ISO/IEC 5962:2021 (cubre SPDX 2.2.1)
Enfoque principal Seguridad y gestión de vulnerabilidades Cumplimiento de licencias y revisión legal
Soporte VEX Nativo (desde la versión 1.4, ene. 2022) Mediante CSAF externo
evidence de componente Identidad y apariciones desde la versión 1.5 (jun. 2023) No aplicable
Expresión de licencias Adecuada Completa (la lista de licencias SPDX es canónica)
Herramientas Syft, Trivy, cdxgen generan CycloneDX de forma nativa Syft, scancode-toolkit, FOSSA
Peso de la especificación Más ligera, más fácil de implementar Más completa, más detallada

CycloneDX

Proyecto OWASP. Diseñado para la seguridad desde el principio: especificación más ligera, VEX nativo, vinculación directa a CVEs y sólidas herramientas nativas (Trivy, Syft, cdxgen). Elige CycloneDX cuando el seguimiento de vulnerabilidades sea la prioridad.

Ejemplo de entrada de componente CycloneDX:

{
  "bomFormat": "CycloneDX",
  "specVersion": "1.5",
  "version": 1,
  "components": [
    {
      "type": "library",
      "name": "lodash",
      "version": "4.17.21",
      "purl": "pkg:npm/lodash@4.17.21",
      "hashes": [
        {
          "alg": "SHA-256",
          "content": "cc6d..."
        }
      ],
      "licenses": [
        {
          "license": {
            "id": "MIT"
          }
        }
      ]
    }
  ]
}

SPDX

Estándar de la Linux Foundation. SPDX 2.2.1 está reconocido como ISO/IEC 5962:2021; SPDX 2.3 es la revisión estable actual y mantiene compatibilidad con la línea base ISO. Sintaxis completa para la expresión de licencias, mayor trayectoria en el cumplimiento de la cadena de suministro y mejor gestión de escenarios de licencias complejos. Elige SPDX cuando el cumplimiento de licencias y la revisión legal sean los impulsores de tu flujo de trabajo.

Ejemplo de entrada de componente SPDX:

{
  "spdxVersion": "SPDX-2.3",
  "dataLicense": "CC0-1.0",
  "SPDXID": "SPDXRef-DOCUMENT",
  "name": "my-application",
  "packages": [
    {
      "SPDXID": "SPDXRef-Package-lodash",
      "name": "lodash",
      "versionInfo": "4.17.21",
      "downloadLocation": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
      "licenseConcluded": "MIT",
      "checksums": [
        {
          "algorithm": "SHA256",
          "checksumValue": "cc6d..."
        }
      ]
    }
  ]
}

Cómo elegir

Caso de uso Recomendación
El enfoque principal es la seguridad y las vulnerabilidades CycloneDX
El enfoque principal es el cumplimiento de licencias SPDX
Necesitas integración VEX para flujos de trabajo de vulnerabilidades CycloneDX
Empresa con herramientas SPDX ya implantadas SPDX
Mercado alemán (alineación con BSI TR-03183) Cualquiera (ambos recomendados)
Comienzo desde cero sin preferencia de formato previa CycloneDX (más sencillo, orientado a seguridad)

Para el cumplimiento del CRA, cualquiera de los dos formatos funciona. El CRA no nombra un formato preferido. Elige uno y mantén la coherencia en todo tu portfolio de productos. Puedes generar ambos a partir de la misma compilación con herramientas como Syft o Trivy, pero estandarizarte en uno reduce la carga operativa.

Los requisitos de campo de BSI TR-03183 se aplican a ambos formatos

El formato que elijas no afecta a los campos que debes cubrir. Nombre, versión, proveedor, PURL, hash, licencia y relaciones de dependencia son obligatorios bajo BSI TR-03183 independientemente de si tu SBOM es CycloneDX o SPDX.

Preguntas frecuentes

¿Qué formatos de SBOM acepta el CRA?

El CRA exige formatos «comúnmente utilizados y legibles por máquina». CycloneDX (OWASP) y SPDX (Linux Foundation) son los dos formatos que satisfacen este requisito. El reglamento no los nombra explícitamente, pero en la práctica ningún otro formato alcanza el nivel exigido actualmente.

CycloneDX o SPDX: ¿cuál debo elegir para el cumplimiento del CRA?

Ambos satisfacen el requisito del CRA de formatos «comúnmente utilizados y legibles por máquina». Elige CycloneDX si tu prioridad es la seguridad: tiene soporte nativo de VEX (Vulnerability Exploitability eXchange), un ajuste más preciso para los flujos de trabajo de vulnerabilidades y es cada vez más el formato de referencia para las herramientas alineadas con el CRA. Elige SPDX si tu prioridad es el cumplimiento de licencias, el mayor reconocimiento ISO (ISO/IEC 5962) o ya tienes SPDX implantado por trabajos de cumplimiento de código abierto anteriores. Puedes producir ambos a partir de la misma compilación, pero estandarizarte en uno en todo tu portfolio de productos reduce la carga operativa. La elección del formato no afecta a los campos que debes cubrir bajo BSI TR-03183.

Qué hacer a continuación

  1. Confirma tu formato: CycloneDX para equipos con enfoque en seguridad, SPDX si tienes flujos de trabajo de cumplimiento de licencias ya existentes. Si no estás seguro, empieza con CycloneDX (versión 1.4 como mínimo para el CRA).
  2. Comprueba los campos obligatorios según los niveles de calidad de BSI TR-03183: nombre, versión, proveedor, PURL/CPE, hash, dependencias, licencias. Se aplican a ambos formatos.
  3. Comprende las obligaciones del anexo I que debe satisfacer tu SBOM: consulta los requisitos de SBOM del CRA para conocer el formato, el alcance y las normas de documentación del anexo VII.
  4. Automatiza la generación en CI/CD con Syft, Trivy o cdxgen. Una exportación manual no satisface la obligación continua de actualización que se activa con cada versión, parche o cambio de componente.
  5. Incorpora tu SBOM al expediente técnico del anexo VII (punto 2(b) para la descripción de la gestión de vulnerabilidades; punto 8 para las copias a petición de las autoridades de vigilancia del mercado). Si prefieres no configurar la ingesta de SBOM desde cero, CRA Evidence gestiona la ingesta de CycloneDX/SPDX y la puntuación de calidad conforme a TR-03183 en todas las versiones de producto.