Buscar y evaluar Docker Hardened Images
Docker Hardened Images (DHI) son un conjunto seleccionado de imágenes de contenedor seguras y listas para producción, diseñadas para ofrecer una seguridad mejorada, una superficie de ataque reducida y bases preparadas para producción para tus aplicaciones.
Esta página explica cómo buscar repositorios de DHI disponibles, revisar los metadatos de las imágenes, examinar los detalles de las variantes y comparar imágenes para evaluar las mejoras de seguridad y las diferencias.
Buscar en el catálogo
Puedes explorar, buscar o filtrar imágenes por categoría en el catálogo de Hardened Images en Docker Hub.
Alternativamente, usa la CLI de DHI, incluida en Docker Desktop, para explorar el catálogo desde la línea de comandos:
$ docker dhi catalog list
Filtra por tipo de imagen, nombre o requisitos de cumplimiento:
$ docker dhi catalog list --type image
$ docker dhi catalog list --filter python
$ docker dhi catalog list --fips
$ docker dhi catalog list --stig
Detalles del repositorio
Al seleccionar un repositorio del catálogo, la página de detalles del repositorio proporciona lo siguiente:
- Overview: Una breve explicación de la imagen.
- Guides: Varias guías sobre cómo usar la imagen y migrar tu aplicación existente.
- Images: Selecciona esta opción para ver las variantes de la imagen.
- Security summary: Selecciona el nombre de una etiqueta para ver un resumen rápido de seguridad, que incluye el recuento de paquetes, el total de vulnerabilidades conocidas y la puntuación de salud de Scout.
- Recently pushed tags: Una lista de variantes de imágenes actualizadas recientemente y cuándo se actualizaron por última vez.
- Use this image: Después de seleccionar una variante de imagen, puedes seleccionar esta opción para ver las instrucciones sobre cómo descargar y usar la variante de la imagen.
Para ver los detalles del repositorio desde la línea de comandos, usa la CLI de DHI:
$ docker dhi catalog get python
Esto muestra las etiquetas disponibles, los recuentos de CVE y otros metadatos del repositorio.
Variantes de la imagen
Las etiquetas se utilizan para identificar las variantes de la imagen. Las variantes de la imagen son diferentes compilaciones de la misma aplicación o framework adaptadas a distintos casos de uso.
Desde los detalles del repositorio, selecciona Images para ver las variantes de la imagen disponibles.
La página Images proporciona una tabla con las siguientes columnas:
- Image version: El nombre de la imagen con su distribución base (por ejemplo,
debian 13) y las etiquetas asociadas. - Type: El estado del ciclo de vida de soporte de la variante.
- Compliance: Designaciones de cumplimiento relevantes. Por ejemplo,
CIS,FIPSoSTIG (100%). - Package manager: Indica si hay un gestor de paquetes disponible. Una marca de verificación indica que hay un gestor de paquetes presente (por ejemplo,
aptoapk), un guion indica que no lo hay. - Shell: Indica si hay una shell disponible. Una marca de verificación indica que hay una shell presente (por ejemplo,
bashobusybox), un guion indica que no la hay. - User: El usuario con el que se ejecuta el contenedor. Por ejemplo,
rootononroot (65532). - Last pushed: Cuándo se actualizó por última vez la variante de la imagen.
- Vulnerabilities: Recuentos de vulnerabilidades por nivel de gravedad.
- Health: La puntuación de salud de Scout. Selecciona la puntuación para ver más detalles.
Detalles de la variante de la imagen
En la página Images, selecciona una versión de imagen de la tabla para ver información detallada sobre esa variante específica.
La página de detalles de la variante de la imagen proporciona la siguiente información:
- Packages: Una lista de todos los paquetes incluidos en la variante de la imagen. Esta sección incluye detalles sobre cada paquete, incluyendo su nombre, versión, distribución e información de licencia.
- Specifications: Las especificaciones de la variante de la imagen incluyen los siguientes detalles clave:
- Source & Build Information: La imagen se compila a partir del Dockerfile que se encuentra aquí y la confirmación de Git.
- Parámetros de compilación
- Entrypoint
- CMD
- Usuario
- Directorio de trabajo
- Variables de entorno
- Etiquetas (labels)
- Plataforma
- Vulnerabilities: La sección de vulnerabilidades proporciona una lista de CVE conocidos para la variante de la imagen, que incluye:
- CVE
- Gravedad
- Paquete
- Versión de corrección
- Detectado por última vez
- Estado
- CVE suprimidos
- Attestations: Las variantes incluyen atestaciones de seguridad completas para verificar el proceso de compilación de la imagen, su contenido y su postura de seguridad. Estas atestaciones están firmadas y se pueden verificar mediante cosign. Para ver una lista de las atestaciones disponibles, consulta Atestaciones.
Comparar y evaluar imágenes
Docker Scout te deja analizar las diferencias entre dos imágenes. Comparar una DHI con una imagen estándar te ayuda a comprender las mejoras de seguridad, las diferencias de paquetes y los beneficios generales de adoptar imágenes securizadas.
La comparación es útil para:
- Evaluar las mejoras de seguridad al migrar de una imagen estándar a una DHI
- Comprender las diferencias de paquetes y vulnerabilidades entre las variantes de imágenes
- Evaluar el impacto de las personalizaciones o actualizaciones
Requisitos previos
Antes de comparar imágenes:
Instala Docker Desktop para usar las funciones de comparación de Docker Scout.
Inicia sesión en los registros que contienen las imágenes que quieres comparar. Inicia sesión en
dhi.iopara Docker Hardened Images:$ docker login dhi.io
Comparación básica
Para comparar una Docker Hardened Image con otra imagen, usa el comando
docker scout compare:
$ docker scout compare dhi.io/<image>:<tag> \
--to <comparison-image>:<tag> \
--platform <platform>
Por ejemplo, para comparar una DHI de Node.js con la imagen oficial de Node.js:
$ docker scout compare dhi.io/node:22-debian13 \
--to node:22 \
--platform linux/amd64
La salida muestra un resumen en la parte superior con métricas clave de comparación, seguido de información detallada sobre paquetes y vulnerabilidades. Ejemplo de resumen:
## Overview
│ Analyzed Image │ Comparison Image
────────────────────┼───────────────────────────────────────────────────────┼─────────────────────────────────────────────
Target │ dhi.io/node:22-debian13 │ node:22
digest │ 55d471f61608 │ 9ee3220f602f
platform │ linux/amd64 │ linux/amd64
vulnerabilities │ 0C 0H 0M 0L │ 0C 1H 3M 153L 4?
│ -1 -3 -153 -4 │
size │ 41 MB (-367 MB) │ 408 MB
packages │ 19 (-726) │ 745
Filtrar paquetes sin cambios
Para centrarte únicamente en las diferencias e ignorar los paquetes sin cambios, usa la opción --ignore-unchanged:
$ docker scout compare dhi.io/node:22-debian13 \
--to node:22 \
--platform linux/amd64 \
--ignore-unchanged
Esta salida resalta solo los paquetes y vulnerabilidades que difieren entre las dos imágenes, lo que facilita identificar las mejoras de seguridad y los cambios.