En este paso, aprenderemos cómo generar un Inventario de Materiales de Software (Software Bill of Materials, SBOM) básico para una imagen Docker y mostrarlo en formato JSON. Un SBOM es una lista formal de los componentes que conforman un componente de software. Es como una lista de embalaje para tu software, que detalla todos los componentes de terceros, bibliotecas y dependencias utilizadas. Generar un SBOM es crucial para entender la postura de seguridad y el cumplimiento de licencias de tu software.
Utilizaremos la herramienta syft
para generar el SBOM. syft
es una herramienta de línea de comandos y una biblioteca para generar un SBOM a partir de imágenes de contenedores y sistemas de archivos.
Primero, descarguemos una simple imagen Docker que usaremos para esta demostración. Utilizaremos la imagen alpine:latest
, que es una distribución Linux ligera.
docker pull alpine:latest
Deberías ver una salida que indique que la imagen se está descargando.
Using default tag: latest
latest: Pulling from library/alpine
...
Status: Downloaded newer image for alpine:latest
docker.io/library/alpine:latest
Ahora que tenemos la imagen, podemos generar el SBOM. Utilizaremos el comando syft
con el nombre de la imagen y especificaremos el formato de salida como JSON.
syft alpine:latest -o json
Este comando analizará la imagen alpine:latest
y mostrará el SBOM en formato JSON directamente en tu terminal. La salida será un gran objeto JSON que contiene información sobre los paquetes encontrados en la imagen, incluyendo sus nombres, versiones, licencias y tipos.
Puedes desplazarte por la salida para ver los diferentes componentes enumerados en el SBOM. Esta salida JSON básica proporciona una visión integral de los componentes de software dentro de la imagen.