Crear SBOM con Snyk CLI
5 de febrero de 2025
0 minutos de lecturaLa lista de materiales de software (SBOM) se está convirtiendo rápidamente en un elemento esencial de la seguridad y el cumplimiento del código abierto. En esta publicación, veremos qué son los SBOM, por qué son necesarios y qué papel desempeñan en la seguridad del código abierto.
¿Qué son los SBOM?
Una lista de materiales de software (SBOM) es un inventario completo de todos los componentes que se usan en un producto de software. Incluye todos los detalles necesarios de cada componente, como su nombre, versión e información sobre licencias. Los SBOM pueden considerarse la lista de ingredientes de un software, ya que ofrecen transparencia total sobre los elementos que componen un producto.
Piensa en un proyecto sencillo de Python con varias dependencias. Un ejemplo simplificado de su SBOM podría verse así:
Aviso:
El código anterior es un fragmento simplificado de un posible SBOM. Este ejemplo es solo ilustrativo y no funcionará al escanearlo porque está incompleto.
¿Por qué necesitamos los SBOM?
Los SBOM cumplen una función fundamental para entender la composición de nuestro software. Pero en el desarrollo de código abierto, desempeñan un papel aún más importante. Los componentes de código abierto suelen tener sus propias dependencias, lo que crea una compleja red de componentes interconectados. Los SBOM ayudan a desenredar esta red y nos permiten entender el alcance total de nuestra exposición a posibles riesgos de seguridad o problemas de cumplimiento derivados de dependencias de terceros en nuestras aplicaciones.
Entregar un SBOM junto con el artefacto creado es fundamental, porque permite que quien use el software evalúe el estado de seguridad del proyecto. Si se divulga una vulnerabilidad grave en un paquete de código abierto específico, como sucedió con Log4Shell y Spring4Shell, quienes usen los componentes vulnerables podrán determinar si la vulnerabilidad los afecta.
Los SBOM son un valioso complemento para cualquier software y deberían incluirse en cada lanzamiento. Aportan transparencia, mejoran la seguridad y el cumplimiento, y contribuyen a crear software de mayor calidad.
Crear SBOM con Snyk CLI
La interfaz de línea de comandos (CLI) de Snyk es una herramienta de seguridad de código abierto que permite a desarrolladores y profesionales de DevOps encontrar, corregir y monitorear vulnerabilidades conocidas en dependencias de código abierto. Snyk CLI admite una amplia variedad de lenguajes de programación y administradores de paquetes, como JavaScript (npm, yarn), Python (pip), Java (Maven), .NET (NuGet), Ruby (RubyGems), PHP (Composer) y otros. Puedes usar Snyk CLI localmente o en una canalización para analizar proyectos de software con SAST, SCA, contenedores e IaC.
Y ahora también puede crear SBOM para tus proyectos.
Instalar Snyk CLI
Para empezar a usar Snyk CLI, debes instalarlo en tu entorno de desarrollo. A continuación encontrarás una guía sencilla para instalar Snyk CLI con npm. Para obtener más información o conocer otras formas de instalarlo, consulta nuestra documentación para usuarios.
Después de instalar Snyk CLI, debes autenticar tu cuenta con el comando snyk auth. Se abrirá un navegador web para que inicies sesión o crees una cuenta de Snyk.
También puedes configurar tu token de Snyk como una variable de entorno, que es la forma recomendada de usar la CLI en una canalización de CI/CD. Consulta nuestra práctica guía rápida de la CLI o la documentación oficial para obtener más información.
Generar SBOM con Snyk CLI
Cuando la CLI esté lista y conectada a una cuenta empresarial de Snyk, podrás empezar a crear SBOM para tus proyectos de software con el siguiente comando:
La opción --format es obligatoria y especifica el formato de salida del SBOM. Puedes elegir entre CylconeDX, XML o SPDX en formato JSON.
Puedes guardar los SBOM en un archivo con la opción --json-file-output=<OUTPUT_FILE_PATH> para exportar la salida JSON del SBOM a un archivo JSON.
Si ejecutas este comando desde el directorio raíz de tu proyecto, obtendrás un archivo SBOM que puedes distribuir junto con tu artefacto.
Varios proyectos
Snyk CLI usa el archivo de manifiesto de paquetes de tu sistema de compilación para determinar el árbol de dependencias y, por lo tanto, el contenido del SBOM. De forma predeterminada, la CLI se detiene cuando encuentra un archivo de manifiesto. Sin embargo, es posible que tu proyecto tenga varios archivos de manifiesto y más de un sistema de compilación. Por ejemplo, podrías tener un proyecto con un backend de Java que usa Maven y un frontend de Node.js que usa npm. Si agregas la opción --all-projects al comando de SBOM, Snyk CLI recorrerá tu proyecto para buscar archivos de manifiesto y agregarlos al resultado o a la salida del SBOM.
La profundidad predeterminada de búsqueda de archivos de manifiesto es cuatro; puedes configurarla con la opción --detection-depth. También puedes excluir archivos específicos con la opción --exclude.
Ten en cuenta que hay muchas opciones de línea de comandos para manejar ecosistemas específicos, como archivos Maven multimódulo, atributos de configuración de Gradle y espacios de trabajo de Yarn, entre otros. Para consultar todas las opciones disponibles para Snyk SBOM, revisa nuestra amplia página de documentación.
Automatizar la generación de SBOM con Snyk CLI
Automatizar la generación de listas de materiales de software con Snyk CLI es un paso fundamental para mejorar la seguridad y el cumplimiento en la canalización de CI/CD. Al integrar Snyk CLI en tu proceso de compilación, puedes generar automáticamente un SBOM completo cada vez que se compile tu código. Este SBOM enumera todas las dependencias, incluidas las transitivas.
A medida que el código avanza por la canalización de CI/CD, Snyk no solo puede encontrar vulnerabilidades de seguridad, sino también garantizar que se genere un SBOM actualizado y se entregue con cada versión de la compilación. Esta automatización agiliza el mantenimiento de un SBOM seguro y actualizado e incorpora prácticas de seguridad al ciclo de vida del desarrollo de software. Así, es más fácil cumplir con los requisitos normativos y los estándares de la industria, y generar confianza entre tus clientes.
Analizar SBOM
Crear SBOM es una forma eficaz y sencilla de usar Snyk CLI. Pero ¿qué pasa si necesitas usar un SBOM y comprobar si un paquete de software contiene vulnerabilidades conocidas? Actualmente, tienes varias opciones:
Prueba de SBOM con Snyk CLI
Snyk CLI no solo puede crear un SBOM para tu proyecto, sino también analizarlo. Si Snyk CLI está conectada a una cuenta empresarial, puedes indicarle que use un archivo SBOM, como se muestra a continuación:
Al momento de escribir esto, todavía se trata de una función experimental, de ahí la opción `--experimental`. Ten en cuenta también que, actualmente, solo acepta archivos JSON en UTF-8 para
CycloneDX: versiones 1.4, 1.5 y 1.6
SPDX: JSON versión 2.3
Consulta la documentación de Snyk CLI SBOM Test para conocer las últimas novedades sobre esta función y otras opciones disponibles.

Bomber
Bomber es una aplicación de código abierto que analiza SBOM en busca de vulnerabilidades de seguridad. Snyk es uno de los proveedores integrados en bomber para analizar SBOM.
Para instalar bomber, descarga la versión más reciente desde el repositorio oficial de GitHub, usa Homebrew en macOS o la herramienta dpkg en Linux.
Homebrew (macOS):
Dpkg (Linux):
Para ejecutar bomber desde la línea de comandos con Snyk, deberás proporcionar un token de API de Snyk. Puedes obtenerlo desde la interfaz web de Snyk. Si tienes la CLI instalada en tu equipo local, también puedes ejecutar snyk config get api.
Cuando tengas el token de API de Snyk, puedes ejecutar bomber así:
La salida mostrará en pantalla todas las vulnerabilidades conocidas.

Proporcionar SBOM actualizados con Snyk
Snyk CLI puede ayudarte a crear SBOM actualizados para cada compilación de tu software. Incluir un SBOM con el artefacto compilado es una buena práctica y, en algunos casos, un requisito para cumplir con las normas.
Automatizar la generación de SBOM en tu canalización con Snyk CLI es una forma sencilla de lograrlo. Para terminar, te recomiendo estos próximos pasos para trabajar con SBOM en tus proyectos:
Guía completa para generar SBOM en proyectos de JavaScript y Node.js
Usar la herramienta de código abierto Parlay para enriquecer tus SBOM
Comienza a usar Snyk CLI
Instala Snyk CLI para encontrar y corregir vulnerabilidades en tus proyectos locales y pipelines.
npm install snyk -g