Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

El SBOM en SPDX y en CycloneDX

5 tareas · 45 min · Principiante

El módulo 4 explicó para qué sirve una lista de materiales de software. Aquí se abre el archivo. Un SBOM no se genera para guardarlo: se lee, se compara y se entrega a quien lo pide. Con los dos documentos que la cadena de Algarrobo Logística produjo para la misma imagen de api-despachos, uno en CycloneDX y otro en SPDX, aprendes a encontrar en cada uno el componente, su identificador, su proveedor y sus relaciones, y a detectar cuándo dos documentos que describen lo mismo no dicen lo mismo. Es lectura: no necesitas escribir ninguno a mano.

0 de 5 · 0%

Objetivo de la sala

El módulo 4 explicó para qué sirve una lista de materiales de software. Aquí se abre el archivo. Un SBOM no se genera para guardarlo: se lee, se compara y se entrega a quien lo pide. Con los dos documentos que la cadena de Algarrobo Logística produjo para la misma imagen de api-despachos, uno en CycloneDX y otro en SPDX, aprendes a encontrar en cada uno el componente, su identificador, su proveedor y sus relaciones, y a detectar cuándo dos documentos que describen lo mismo no dicen lo mismo. Es lectura: no necesitas escribir ninguno a mano.

Un SBOM (lista de materiales de software) es un inventario legible por máquinas de los componentes de un software: cuáles son, qué versión, de quién y cómo se relacionan unos con otros. La lista mínima de datos por componente que fijó la guía de la NTIA de EE. UU. en 2021 tiene siete: nombre del proveedor, nombre del componente, versión, otros identificadores únicos, relación de dependencia, autor del SBOM y fecha de generación. Esa guía ha sido ampliada por CISA con una edición de 2026, así que la lista vigente se consulta en la fuente.

Lo que no es: no dice qué componentes tienen fallos ni cuáles te afectan. Es el inventario contra el que se cruzan los avisos; el cruce es otro paso.

Responde para continuar

¿Qué es un SBOM y qué no es?

Ver pista de ayuda

Piensa en la palabra «materiales»: qué lleva dentro, no cómo está de seguro.

Hay dos formatos abiertos de uso general. SPDX nació en el mundo del cumplimiento de licencias, lo mantiene la Linux Foundation y además está publicado como norma ISO/IEC 5962. CycloneDX nació en la seguridad de aplicaciones, dentro de la comunidad de OWASP. Los dos describen componentes, versiones, identificadores y relaciones, y los dos pueden ir en JSON. En SPDX cada paquete tiene un identificador SPDXID que empieza por SPDXRef-; en CycloneDX cada componente tiene un bom-ref. Un identificador de paquete (el purl) puede viajar en ambos y es lo que permite cruzarlos con una base de avisos.

Los dos formatos no compiten en el trabajo: se genera el que pide quien lo recibe.

Responde para continuar

Quien pide el SBOM no dice qué formato. ¿Cómo eliges entre SPDX y CycloneDX?

Ver pista de ayuda

Ninguno de los dos es el «bueno»: lo que importa es quién lo va a leer.

Un documento SPDX tiene un encabezado (spdxVersion, creationInfo con quién y cuándo lo creó), una lista de packages y una lista de relationships. Cada paquete lleva su SPDXID, su nombre, su versión, su proveedor (supplier), la licencia concluida y, cuando se conoce, de dónde se descargó. El valor NOASSERTION ya lo viste en la sala de licencias: aquí también aparece donde la herramienta no encontró el dato.

Las relaciones apuntan a los componentes por su SPDXID, de modo que el identificador es el hilo que sigue una lectura.

Responde para continuar

Escribe el valor del campo SPDXID del paquete tinta-xml en el SBOM de formato SPDX.

Ver pista de ayuda

Con la terminal, `cat sbom/despachos.spdx.json`. Busca el paquete por su nombre y lee el campo SPDXID de su misma línea.

La cadena generó, para la misma imagen, un CycloneDX y un SPDX. Deberían listar los mismos componentes. Una diferencia no es un detalle de formato: significa que un generador falló, o que se alimentó de otra fuente, y el que se entregue a un cliente estaría incompleto. El cotejo se hace por nombre y versión, y se confirma contra el archivo de bloqueo, que es la fuente de verdad de lo que se instaló.

Para cotejar un documento contra otro se leen los dos de arriba abajo, componente por componente.

Responde para continuar

Coteja los dos SBOM de la misma imagen. Escribe el componente que está en el CycloneDX y no aparece en el SPDX.

Ver pista de ayuda

Con la terminal, `cat sbom/despachos.cdx.json` y `cat sbom/despachos.spdx.json`. Cuenta los componentes de cada uno y compara los nombres.

Al revisar el documento CycloneDX se nota que ningún componente trae el nombre del proveedor, y que en el SPDX el proveedor de uno de ellos dice NOASSERTION. El proveedor es uno de los datos mínimos: sin él, cuando aparece un aviso no se sabe a quién preguntar ni de dónde se obtuvo el componente. Un SBOM sin ese dato sigue siendo útil para cruzar versiones, pero no cumple el mínimo, y quien lo entrega debe saberlo.

Un hueco conocido y comunicado es mejor que un documento que aparenta estar completo.

Responde para continuar

El CycloneDX de la imagen no trae el proveedor de ningún componente. ¿Qué haces?

Ver pista de ayuda

Qué dato del mínimo falta, y qué se pierde sin él cuando aparece un aviso.

Inicia sesión para registrar tus puntos y progreso en el ranking.

Whoami-Labs Pro

Whoami-Labs Pro utiliza cookies

Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad