Compartir comentarios
Las respuestas se generan en base a la documentación.

Vulnerabilidades y exposiciones comunes (CVE)

¿Qué son las CVE?

Las CVE (Common Vulnerabilities and Exposures) son fallos de ciberseguridad revelados públicamente en software o hardware. A cada CVE se le asigna un identificador único (por ejemplo, CVE-2024-12345) y se incluye una descripción estandarizada, para que las organizaciones puedan realizar un seguimiento y abordar las vulnerabilidades de manera consistente.

En el contexto de Docker, las CVE suelen estar relacionadas con problemas dentro de las imágenes base o las dependencias de la aplicación. Estas vulnerabilidades pueden variar desde errores menores hasta riesgos de seguridad críticos, como la ejecución remota de código o la escalada de privilegios.

¿Por qué son importantes las CVE?

Escanear y actualizar regularmente las imágenes de Docker para mitigar las CVE es crucial para mantener un entorno seguro y en conformidad. Ignorar las CVE puede provocar brechas de seguridad graves, que incluyen:

  • Acceso no autorizado: Los exploits pueden otorgar a los atacantes acceso no autorizado a los sistemas.
  • Brechas de datos: La información confidencial puede quedar expuesta o ser robada.
  • Interrupciones del servicio: Las vulnerabilidades pueden aprovecharse para interrumpir los servicios o causar tiempos de inactividad.
  • Infracciones de cumplimiento: No abordar las vulnerabilidades conocidas puede provocar el incumplimiento de las regulaciones y estándares de la industria.

Cómo ayudan las Docker Hardened Images a mitigar las CVE

Las Docker Hardened Images (DHI) están diseñadas para minimizar el riesgo de CVE desde el principio. Al adoptar un enfoque centrado en la seguridad, las DHI ofrecen varias ventajas en la mitigación de CVE:

  • Superficie de ataque reducida: Las DHI se construyen utilizando un enfoque distroless, eliminando los componentes y paquetes innecesarios. Esta reducción en el tamaño de la imagen, hasta un 95% menor que las imágenes tradicionales, limita la cantidad de vulnerabilidades potenciales, lo que dificulta que los atacantes exploten software innecesario.

  • Remediación de CVE más rápida: Mantenidas por Docker con un SLA de nivel empresarial, las DHI se actualizan continuamente para solucionar las vulnerabilidades conocidas. Las CVE críticas y de alta gravedad se parchean rápidamente, lo que garantiza que tus contenedores permanezcan seguros sin intervención manual.

  • Gestión proactiva de vulnerabilidades: Al utilizar DHI, las organizaciones pueden gestionar las vulnerabilidades de forma proactiva. Las imágenes vienen con canales de datos de CVE y VEX (Intercambio de explotabilidad de vulnerabilidades), lo que permite a los equipos mantenerse informados sobre posibles amenazas y tomar las medidas necesarias con prontitud.

Escanear imágenes en busca de CVE

Escanear regularmente las imágenes de Docker en busca de CVE es esencial para mantener un entorno de contenedores seguro. Aunque Docker Scout está integrado en Docker Desktop y en la CLI de Docker, herramientas como Grype y Trivy ofrecen capacidades de escaneo alternativas. A continuación, se detallan las instrucciones para utilizar cada herramienta para escanear imágenes de Docker en busca de CVE.

Docker Scout

Docker Scout está integrado en Docker Desktop y en la CLI de Docker. Proporciona información sobre vulnerabilidades, resúmenes de CVE y enlaces directos a guías de remediación.

Escanear una DHI utilizando Docker Scout

Para escanear una Docker Hardened Image utilizando Docker Scout, ejecuta el siguiente comando:

$ docker scout cves dhi.io/<image>:<tag> --platform <platform>

Ejemplo de salida:

    v SBOM obtained from attestation, 101 packages found
    v Provenance obtained from attestation
    v VEX statements obtained from attestation
    v No vulnerable package detected
    ...

Para obtener un filtrado más detallado y una salida en formato JSON, consulta la referencia de la CLI de Docker Scout.

Grype

Grype es un escáner de código abierto que comprueba las imágenes de contenedor contra bases de datos de vulnerabilidades como la NVD y los avisos de las distribuciones.

Escanear una DHI utilizando Grype

Después de instalar Grype, puedes escanear una Docker Hardened Image descargando la imagen y ejecutando el comando de escaneo. Grype requiere que exportes primero la atestación VEX a un archivo:

$ docker pull dhi.io/<image>:<tag>
$ docker scout vex get dhi.io/<image>:<tag> --output vex.json
$ grype dhi.io/<image>:<tag> --vex vex.json

Ejemplo de salida:

NAME               INSTALLED              FIXED-IN     TYPE  VULNERABILITY     SEVERITY    EPSS%  RISK
libperl5.36        5.36.0-7+deb12u2       (won't fix)  deb   CVE-2023-31484    High        79.45    1.1
perl               5.36.0-7+deb12u2       (won't fix)  deb   CVE-2023-31484    High        79.45    1.1
perl-base          5.36.0-7+deb12u2       (won't fix)  deb   CVE-2023-31484    High        79.45    1.1
...

Trivy

Trivy es un escáner de vulnerabilidades de código abierto para contenedores y otros artefactos. Detecta vulnerabilidades en paquetes del sistema operativo y dependencias de aplicaciones.

Escanear una DHI utilizando Trivy

Después de instalar Trivy, puedes escanear una Docker Hardened Image descargando la imagen y ejecutando el comando de escaneo:

$ docker pull dhi.io/<image>:<tag>
$ trivy image --scanners vuln --vex repo dhi.io/<image>:<tag>

Ejemplo de salida:

Report Summary

┌──────────────────────────────────────────────────────────────────────────────┬────────────┬─────────────────┬─────────┐
│                                    Target                                    │    Type    │ Vulnerabilities │ Secrets │
│ ├──────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ dhi.io/<image>:<tag> (debian 12.11)                                          │   debian   │       66        │    -    │
│ ├──────────────────────────────────────────────────────────────────────────────┼────────────┼─────────────────┼─────────┤
│ opt/python-3.13.4/lib/python3.13/site-packages/pip-25.1.1.dist-info/METADATA │ python-pkg │        0        │    -    │
│ └──────────────────────────────────────────────────────────────────────────────┴────────────┴─────────────────┴─────────┘

Utilizar VEX para filtrar CVE no explotables conocidas

Las Docker Hardened Images incluyen atestaciones firmadas de VEX (Vulnerability Exploitability eXchange) que identifican las vulnerabilidades que no son relevantes para el comportamiento en tiempo de ejecución de la imagen.

Al utilizar Docker Scout o Trivy, estas declaraciones VEX se aplican automáticamente siguiendo los ejemplos anteriores, sin necesidad de configuración manual.

Para recuperar manualmente la atestación VEX para las herramientas compatibles:

$ docker scout vex get dhi.io/<image>:<tag> --output vex.json
Note

Si la imagen existe localmente en tu dispositivo, debes anteponer el prefijo registry:// al nombre de la imagen. Por ejemplo, utiliza registry://dhi.io/python:3.13 en lugar de dhi.io/python:3.13.

Por ejemplo:

$ docker scout vex get dhi.io/python:3.13 --output vex.json

Esto crea un archivo vex.json que contiene las declaraciones VEX para la imagen especificada. Luego puedes utilizar este archivo con herramientas compatibles con VEX para filtrar las CVE no explotables conocidas.