Cómo Generar un SBOM Conforme al CRA: Herramientas, Formatos e Integración CI/CD
Una Guía práctica para generar Listas de Materiales de Software para el cumplimiento del CRA. Cubre herramientas de codigo abierto, seleccion de formatos e Integración automatizada en pipelines.
In this article
El CRA requiere una Lista de Materiales de Software. Todos los articulos de la competencia te dicen esto. Ninguno te muestra Cómo generar uno.
Esta Guía cubre herramientas de codigo abierto, seleccion de formatos e Integración CI/CD, sin dependencia de proveedores.
Consejo: Comienza con Syft o Trivy para la generacion de SBOM -- ambos soportan salida CycloneDX y SPDX y se integran facilmente en pipelines CI/CD.
Resumen Ejecutivo
- El CRA requiere SBOMs legibles por maquina Qué cubran "al menos las dependencias de nivel superior"
- Formatos recomendados: CycloneDX 1.4+ o SPDX 2.3+ (segun BSI TR-03183)
- Herramientas de codigo abierto: Syft (imagenes/sistemas de archivos), Trivy (contenedores), cdxgen (codigo fuente)
- Integra la generacion de SBOM en CI/CD para actualizaciones automaticas
- La calidad importa: los campos minimos incluyen nombre del paquete, version, proveedor, hash, licencia
Importante: El CRA requiere SBOMs legibles por maquina que cubran todas las dependencias transitivas. Un simple package.json o requirements.txt NO es suficiente.
Lo Qué el CRA Realmente Requiere
Empecemos con lo Qué dice el reglamento. El Anexo I, Parte II del CRA requiere Qué los fabricantes:
"identifiquen y documenten las vulnerabilidades y componentes contenidos en el producto, incluyendo la elaboracion de una lista de materiales de software en un formato de uso comun y legible por maquina"
Puntos clave:
- Formato legible por maquina: No un PDF, no una hoja de calculo, datos estructurados
- Al menos dependencias de nivel superior: El alcance mínimo, aunque mas es mejor
- No se requiere Qué sea publico: Proporcionado a las autoridades bajo peticion
- Debe actualizarse: Con cada lanzamiento, parche o cambio de componente
El CRA no exige un formato especifico, pero los esfuerzos de estandarizacion apuntan claramente a CycloneDX y SPDX.
Seleccion de Formato: CycloneDX vs SPDX
Dos formatos dominan el panorama de SBOM. Ambos son aceptables para el cumplimiento del CRA.
CycloneDX
Origen: Proyecto OWASP, enfocado en seguridad Version actual: 1.6 (1.4+ recomendado para CRA) Mejor para: Seguridad y gestion de vulnerabilidades
Fortalezas:
- Soporte nativo de VEX (Vulnerability Exploitability eXchange)
- Disenado para casos de uso de seguridad
- Especificacion mas ligera, mas facil de implementar
- Ecosistema de herramientas solido
- Vinculacion directa con CVE/vulnerabilidades
SPDX
Origen: Linux Foundation, enfocado en cumplimiento de licencias Version actual: 2.3 (estandar ISO/IEC 5962:2021) Mejor para: Cumplimiento de licencias y revision legal
Fortalezas:
- Estandar internacional ISO
- Sintaxis completa de expresion de licencias
- Fuerte en contextos de cumplimiento de codigo abierto
- Mayor trayectoria
- Mejor para escenarios de licencias complejas
¿Cual Elegir?
| Caso de Uso | Recomendacion |
|---|---|
| Enfoque principal es seguridad/vulnerabilidades | CycloneDX |
| Enfoque principal es cumplimiento de licencias | SPDX |
| Necesitas Integración VEX | CycloneDX |
| Empresa con herramientas SPDX existentes | SPDX |
| Mercado aleman (BSI TR-03183) | Cualquiera (ambos recomendados) |
| Empezando desde cero, sin preferencia | CycloneDX (mas simple, enfocado en seguridad) |
Para cumplimiento del CRA, cualquier formato funciona. Elige uno y se consistente.
Herramientas de Generacion de SBOM de Codigo Abierto
Sin dependencia de proveedores requerida. Estas herramientas son gratuitas, de codigo abierto y listas para produccion.
Syft (Anchore)
Mejor para: Imagenes de contenedores, sistemas de archivos, archivos Licencia: Apache 2.0 Formatos de salida: CycloneDX, SPDX, Syft JSON
Instalacion:
# Linux/macOS
curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin
# Homebrew
brew install syft
# Docker
docker pull anchore/syft
Ejemplos de uso:
# Escanear una imagen de contenedor
syft alpine:latest -o cyclonedx-json > sbom.cdx.json
# Escanear un directorio
syft dir:/ruta/al/proyecto -o cyclonedx-json > sbom.cdx.json
# Escanear un archivo
syft /ruta/al/archivo.tar.gz -o spdx-json > sbom.spdx.json
Trivy (Aqua Security)
Mejor para: Imagenes de contenedores con contexto de vulnerabilidades integrado Licencia: Apache 2.0 Formatos de salida: CycloneDX, SPDX, mas informes de vulnerabilidades
Instalacion:
# Linux (Debian/Ubuntu)
sudo apt-get install trivy
# macOS
brew install trivy
# Docker
docker pull aquasec/trivy
Ejemplos de uso:
# Generar SBOM desde imagen de contenedor
trivy image --format cyclonedx --output sbom.cdx.json alpine:latest
# Generar SBOM desde sistema de archivos
trivy fs --format cyclonedx --output sbom.cdx.json /ruta/al/proyecto
cdxgen (CycloneDX)
Mejor para: Analisis de codigo fuente en muchos lenguajes Licencia: Apache 2.0 Formato de salida: CycloneDX
Instalacion:
# npm (requiere Node.js)
npm install -g @cyclonedx/cdxgen
# Docker
docker pull ghcr.io/cyclonedx/cdxgen
Ejemplos de uso:
# Escanear directorio actual
cdxgen -o sbom.json
# Escanear tipo de proyecto especifico
cdxgen -t python -o sbom.json
Integración CI/CD
La generacion manual de SBOM no escala. Integralo en tu pipeline de construccion.
GitHub Actions
name: Generacion de SBOM
on:
push:
branches: [main]
release:
types: [published]
jobs:
sbom:
runs-on: ubuntu-latest
steps:
- name: Checkout codigo
uses: actions/checkout@v4
- name: Instalar Syft
run: |
curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin
- name: Generar SBOM
run: |
syft dir:. -o cyclonedx-json > sbom.cdx.json
- name: Subir SBOM Cómo artefacto
uses: actions/upload-artifact@v4
with:
name: sbom
path: sbom.cdx.json
retention-days: 90
GitLab CI
generate-sbom:
stage: build
image: anchore/syft:latest
script:
- syft dir:. -o cyclonedx-json > sbom.cdx.json
artifacts:
paths:
- sbom.cdx.json
expire_in: 90 days
rules:
- if: $CI_COMMIT_BRANCH == "main"
- if: $CI_COMMIT_TAG
Calidad del SBOM: Cumpliendo TR-03183
La Guía Tecnica alemana BSI TR-03183 extiende los elementos minimos de NTIA. Aunque no es legalmente requerido en toda la UE, seguir TR-03183 asegura SBOMs de alta calidad.
Campos Requeridos
| Campo | Requerido Por | Notas |
|---|---|---|
| Nombre del componente | NTIA + TR-03183 | Identificador del paquete |
| Version | NTIA + TR-03183 | Cadena de version exacta |
| Proveedor | NTIA + TR-03183 | Vendedor o mantenedor |
| Identificador unico | NTIA + TR-03183 | PURL recomendado |
| Relacion de dependencia | NTIA + TR-03183 | Directa vs transitiva |
| Autor del SBOM | NTIA + TR-03183 | Quién creo el SBOM |
| Marca de tiempo | NTIA + TR-03183 | Cuando se creo el SBOM |
| Valores hash | TR-03183 | SHA-256 mínimo |
| Licencia | TR-03183 | ID de licencia SPDX |
Manteniendo los SBOMs Actualizados
Un SBOM es una instantanea. Debe actualizarse para seguir siendo util.
Cuando Regenerar:
- Cada lanzamiento (mayor, menor, parche)
- Despues de actualizaciones de dependencias
- Despues de parches de seguridad
- Cuando cambia la Configuración de construccion
Retencion: El CRA requiere retencion de 10 años. Almacena SBOMs historicos:
- En tu repositorio de artefactos
- En S3/almacenamiento en la nube con politicas de ciclo de vida
- En CRA Evidence para seguimiento de cumplimiento integrado
Lista de Verificación de Implementacion de SBOM
LISTA DE Verificación DE IMPLEMENTACION DE SBOM
SELECCION DE FORMATO:
[ ] CycloneDX 1.4+ o SPDX 2.3+ elegido
[ ] Formato JSON (legible por maquina)
[ ] Decisión documentada
HERRAMIENTAS:
[ ] Herramienta principal seleccionada (Syft/Trivy/cdxgen)
[ ] Herramienta instalada y probada localmente
[ ] Salida validada contra esquema
Integración CI/CD:
[ ] Generacion de SBOM anadida al pipeline de construccion
[ ] Artefactos almacenados con retencion apropiada
[ ] Generacion activada en lanzamientos
ASEGURAMIENTO DE CALIDAD:
[ ] Todos los componentes tienen: nombre, version, proveedor
[ ] Valores hash presentes (SHA-256+)
[ ] Informacion de licencia incluida
[ ] Dependencias transitivas capturadas
[ ] Identificadores PURL usados
OPERACIONES:
[ ] SBOM versionado junto con lanzamientos de producto
[ ] SBOMs historicos archivados (retencion de 10 años)
[ ] Proceso documentado para el equipo
Proximos Pasos
Con la generacion de SBOM automatizada, estas listo para:
- Escaneo de vulnerabilidades: Conectar SBOMs a bases de datos de vulnerabilidades
- Cumplimiento de licencias: Analizar obligaciones de licencia
- Integración del expediente tecnico: Incluir SBOMs en Documentación CRA
- Preparacion para Notificación a ENISA: SBOMs permiten identificacion rapida de vulnerabilidades
CRA Evidence automatiza todo este flujo de trabajo:
- Subir SBOMs via CLI o CI/CD
- Escaneo automatico de vulnerabilidades con Trivy
- Puntuacion de calidad TR-03183
- Exportacion de expediente tecnico con SBOMs integrados
Comienza a generar SBOMs conformes en app.craevidence.com.
Requisitos: Comprende lo que el CRA requiere para SBOMs en nuestra guia de requisitos SBOM.
Calidad: Valida tu SBOM contra el estandar BSI TR-03183.
VEX: Agrega contexto de vulnerabilidades a tu SBOM con documentos VEX.
Este articulo es solo para fines informativos y no constituye asesoramiento legal. Para orientacion especifica sobre cumplimiento, consulta con asesores legales cualificados familiarizados con las regulaciones de productos de la UE.
Artículos Relacionados
¿Son las Cámaras Inteligentes Productos Importantes bajo...
Las cámaras de seguridad inteligentes están clasificadas como Productos...
11 minCybersecurity Act 2 de la UE: Prohibiciones en la Cadena...
La UE propuso sustituir el Cybersecurity Act por completo. Qué cambió, qué...
11 minClasificación de Productos CRA: ¿Tu Producto es Por...
Una Guía práctica para determinar la categoria CRA de tu producto. Incluye...
12 minDoes the CRA apply to your product?
Responde 6 preguntas sencillas para saber si tu producto entra en el ámbito de la Ley de Resiliencia Cibernética de la UE. Obtén tu resultado en menos de 2 minutos.
¿Listo para lograr el cumplimiento del CRA?
Comienza a gestionar tus SBOMs y documentación de cumplimiento con CRA Evidence.