Saltar al contenido
Open Security
DevSecOps y AgentesIntermedio· 30 min

SBOM básico: inventario de dependencias que sí sirve

Qué es un SBOM, cuándo ayuda, qué no resuelve y cómo usarlo como evidencia de supply chain sin vender humo.

#sbom#supply-chain#devsecops

Antes de empezar necesitás

  • Tener un proyecto de juguete con package.json o dependencias similares
  • Idea básica de dependencias directas y transitivas

Al terminar vas a poder

  • Entender qué contiene un SBOM
  • Distinguir CycloneDX, SPDX y lockfiles
  • Usar un SBOM como evidencia revisable
  • Reconocer límites: inventario no es remediación

Un SBOM no hace tu software seguro. Es un inventario: qué componentes tenés, con qué versiones y, según el formato, con metadatos útiles. Sin inventario, cuando aparece una vulnerabilidad, empezás preguntando “¿usamos eso?”.

Primer inventario con npm

Para un proyecto Node, empezá por algo simple:

vt@labs:~/proyecto
npm ls --depth=0
npm audit --omit=dev

Esto no reemplaza un SBOM formal, pero te obliga a separar dependencias directas, transitivas y entorno de ejecución.

Qué debería responder

pregunta                         dato que necesitás
¿usamos la librería vulnerable?   nombre y versión
¿está en runtime o dev?           scope/dependency type
¿llega a producción?              build/deploy path
¿hay fix disponible?              versión corregida
¿rompe actualizar?                tests / changelog / compatibilidad

Evidencia útil

Tu entrega puede ser una tabla:

paquete     directo/transitivo   runtime/dev   versión   por qué está
astro       directo              runtime       x.y.z     framework del sitio
prettier    directo              dev           x.y.z     formato de código

Lo que practicás en este lab

Llevátelo a tu repo si querés, pero no es obligatorio: es tu aprendizaje.

  • SBOM generado o ejemplo sintético
  • Tabla con 5 dependencias: directa/transitiva, versión y uso
  • Writeup: qué harías ante una dependencia vulnerable

Reto

Elegí un proyecto de juguete. Listá dependencias directas, marcá cuáles son runtime y cuáles dev, y escribí qué dato necesitarías para decidir si una vulnerabilidad aplica.

Resolvelo y escribí dos líneas explicando qué pasó. Con eso lo fijás.

¿Hiciste el lab?

Si querés, guardá lo que hiciste (comandos, notas, un repo) para volver después. Y si encontrás un error o querés mejorar este lab,contribuí al repo. El progreso se guarda solo en tu navegador.