Mira la lección en vídeo
Accede al vídeo completo de esta lección y a más contenido exclusivo con el Plan Plus.
Desbloquear Plan PlusEscaneo de vulnerabilidades
Docker Scout es la herramienta oficial de análisis de seguridad que permite identificar vulnerabilidades y problemas de configuración en nuestras imágenes. Esta funcionalidad está integrada directamente en Docker Engine y proporciona información detallada sobre CVEs (Common Vulnerabilities and Exposures) presentes en los componentes de nuestras imágenes.
Docker Scout requiere instalación por separado, ya que no viene por defecto cuando instalamos Docker Desktop o Docker Engine. Se puede instalar desde la documentación oficial de Docker Scout.
Vista rápida de vulnerabilidades
El comando más básico para obtener una visión general de las vulnerabilidades es docker scout quickview
. Este comando analiza la imagen y muestra un resumen de los problemas encontrados:
docker scout quickview nginx:latest
La salida incluye información sobre:
- Número total de vulnerabilidades detectadas
- Distribución por severidad (críticas, altas, medias, bajas)
- Estado de las bases de datos de vulnerabilidades utilizadas
- Tiempo de análisis y fecha del último escaneo
Análisis detallado de CVEs
Para obtener información más específica sobre las vulnerabilidades encontradas, utilizamos el comando docker scout cves
:
docker scout cves nginx:latest
Este comando proporciona detalles completos sobre cada vulnerabilidad:
# Análisis de una imagen específica con formato detallado
docker scout cves --format sarif nginx:latest
# Filtrar por severidad específica
docker scout cves --only-severity critical,high nginx:latest
La información incluye para cada CVE:
- Identificador CVE y descripción del problema
- Puntuación CVSS y nivel de severidad
- Paquetes afectados y versiones vulnerables
- Versiones corregidas disponibles
- Enlaces a referencias y documentación adicional
Filtrado y formato de resultados
Docker Scout ofrece múltiples opciones para personalizar la salida del análisis:
1 - Filtrar por severidad específica:
# Solo vulnerabilidades críticas
docker scout cves --only-severity critical mysql:8.0
# Múltiples niveles de severidad
docker scout cves --only-severity critical,high postgresql:15
2 - Excluir vulnerabilidades por ID:
# Ignorar CVEs específicos conocidos
docker scout cves --ignore-cve CVE-2023-12345,CVE-2023-67890 nginx:latest
3 - Formato de salida estructurada:
# Formato SARIF para integración con herramientas
docker scout cves --format sarif nginx:latest
# Formato JSON para procesamiento programático
docker scout cves --format json nginx:latest > vulnerabilities.json
Comparación entre imágenes
Una funcionalidad especialmente útil es la comparación de vulnerabilidades entre diferentes versiones de imágenes:
# Comparar dos versiones de la misma imagen
docker scout compare nginx:1.24 --to nginx:1.25
Esta comparación muestra:
- Vulnerabilidades añadidas en la versión más reciente
- Vulnerabilidades corregidas respecto a la versión anterior
- Cambios en la superficie de ataque general
- Recomendaciones de actualización basadas en el análisis
Análisis de imágenes locales
Docker Scout puede analizar tanto imágenes remotas como imágenes construidas localmente:
# Analizar imagen construida localmente
docker build -t mi-app:latest .
docker scout cves mi-app:latest
# Análisis inmediato después del build
docker build -t mi-app:latest . && docker scout quickview mi-app:latest
Integración con el flujo de trabajo
Para incorporar el análisis de seguridad en nuestro flujo de desarrollo, podemos combinar Scout con otros comandos Docker:
# Script básico de validación de seguridad
#!/bin/bash
echo "Construyendo imagen..."
docker build -t mi-app:latest .
echo "Analizando vulnerabilidades..."
docker scout cves mi-app:latest --only-severity critical,high
echo "Vista rápida del estado de seguridad..."
docker scout quickview mi-app:latest
El análisis de vulnerabilidades con Docker Scout proporciona información accionable que permite tomar decisiones informadas sobre la seguridad de nuestras aplicaciones antes de desplegarlas en producción.
SBOM y recomendaciones
Guarda tu progreso
Inicia sesión para no perder tu progreso y accede a miles de tutoriales, ejercicios prácticos y nuestro asistente de IA.
Más de 25.000 desarrolladores ya confían en CertiDevs
Docker Scout no solo identifica vulnerabilidades, sino que también proporciona un análisis completo de la composición de nuestras imágenes mediante SBOM (Software Bill of Materials) y ofrece recomendaciones específicas para mejorar la seguridad.
Generación de SBOM
El Software Bill of Materials es un inventario detallado de todos los componentes, bibliotecas y dependencias presentes en una imagen. Docker Scout genera automáticamente este inventario durante el análisis:
# Generar SBOM de una imagen
docker scout sbom nginx:latest
La salida del SBOM incluye información detallada sobre:
- Paquetes del sistema operativo instalados y sus versiones
- Bibliotecas y dependencias de aplicaciones
- Archivos ejecutables y sus metadatos
- Licencias de software asociadas a cada componente
- Procedencia de los paquetes y sus fuentes
Formato y exportación de SBOM
Docker Scout permite generar el SBOM en diferentes formatos estándar para facilitar su integración con otras herramientas:
1 - Formato SPDX (Software Package Data Exchange):
# SBOM en formato SPDX-JSON
docker scout sbom --format spdx nginx:latest > nginx-sbom.spdx.json
2 - Formato CycloneDX:
# SBOM en formato CycloneDX
docker scout sbom --format cyclonedx nginx:latest > nginx-sbom.json
3 - Formato de texto legible:
# SBOM en formato de texto para revisión manual
docker scout sbom --format text nginx:latest
Análisis de licencias
El SBOM también proporciona información sobre las licencias de software presentes en la imagen, lo cual es fundamental para el cumplimiento legal:
# Análisis de licencias con SBOM
docker scout sbom --format spdx mysql:8.0 | grep -i license
Esta información permite identificar:
- Tipos de licencias utilizadas por los componentes
- Compatibilidad entre licencias diferentes
- Restricciones de uso impuestas por ciertas licencias
- Componentes con licencias problemáticas para uso comercial
Recomendaciones de remediación
Docker Scout analiza las vulnerabilidades encontradas y proporciona recomendaciones específicas para solucionarlas:
# Obtener recomendaciones detalladas
docker scout recommendations nginx:latest
Las recomendaciones incluyen:
- Actualizaciones de paquetes que corrigen vulnerabilidades específicas
- Cambios de imagen base a versiones más seguras
- Eliminación de paquetes innecesarios que amplían la superficie de ataque
- Configuraciones de seguridad recomendadas
Recomendaciones por categoría
Las sugerencias de Scout se organizan en diferentes categorías de mejora:
1 - Actualizaciones críticas:
# Ver solo recomendaciones críticas
docker scout recommendations --only-severity critical postgresql:15
2 - Optimizaciones de imagen:
# Recomendaciones para reducir el tamaño y mejorar seguridad
docker scout recommendations --include-packages mysql:8.0
3 - Mejores prácticas:
# Sugerencias de configuración y buenas prácticas
docker scout recommendations --format detailed nginx:latest
Aplicación práctica de recomendaciones
Un flujo típico para aplicar las recomendaciones sería:
# 1. Analizar imagen actual
docker scout cves mi-app:v1.0 --only-severity high,critical
# 2. Obtener recomendaciones específicas
docker scout recommendations mi-app:v1.0
# 3. Generar SBOM para documentar estado actual
docker scout sbom --format spdx mi-app:v1.0 > app-v1.0-sbom.json
# 4. Después de aplicar cambios, comparar mejoras
docker scout compare mi-app:v1.0 --to mi-app:v1.1
Integración del SBOM en el ciclo de desarrollo
El SBOM generado por Scout puede utilizarse para documentar y rastrear los componentes de nuestras aplicaciones:
# Script para documentar releases con SBOM
#!/bin/bash
VERSION=$1
IMAGE="mi-app:$VERSION"
echo "Generando SBOM para $IMAGE"
docker scout sbom --format spdx $IMAGE > "sbom-$VERSION.spdx.json"
echo "Analizando recomendaciones..."
docker scout recommendations $IMAGE > "recommendations-$VERSION.txt"
echo "Documentación generada para $IMAGE"
Interpretación de las recomendaciones
Las recomendaciones de Scout incluyen información accionable con diferentes niveles de prioridad:
- Recomendaciones inmediatas: Actualizaciones que corrigen vulnerabilidades críticas
- Mejoras a medio plazo: Optimizaciones que reducen la superficie de ataque
- Consideraciones a largo plazo: Cambios arquitectónicos para mejorar la seguridad general
La combinación de SBOM detallado y recomendaciones específicas permite mantener un control exhaustivo sobre la composición y seguridad de nuestras imágenes Docker, facilitando tanto el cumplimiento de políticas de seguridad como la trazabilidad completa de componentes.
Aprendizajes de esta lección de Docker
- Comprender el propósito y funcionalidades principales de Docker Scout para el análisis de seguridad.
- Aprender a realizar escaneos rápidos y detallados de vulnerabilidades en imágenes Docker.
- Conocer cómo generar y utilizar SBOM para documentar la composición de las imágenes.
- Aplicar filtros y formatos para personalizar los informes de vulnerabilidades.
- Interpretar y aplicar recomendaciones para mejorar la seguridad y cumplimiento legal de las imágenes Docker.
Completa este curso de Docker y certifícate
Únete a nuestra plataforma de cursos de programación y accede a miles de tutoriales, ejercicios prácticos, proyectos reales y nuestro asistente de IA personalizado para acelerar tu aprendizaje.
Asistente IA
Resuelve dudas al instante
Ejercicios
Practica con proyectos reales
Certificados
Valida tus conocimientos
Más de 25.000 desarrolladores ya se han certificado con CertiDevs