La seguridad en imágenes de Docker no es negociable: antes de publicar, hay que escanear y priorizar vulnerabilidades. La consigna es clara y práctica: no necesitas cero vulnerabilidades, necesitas enfocarte en las que pueden afectarte más. Aquí verás cómo analizar tu imagen, interpretar hallazgos y decidir acciones concretas con herramientas como Docker Desktop y Scout.
¿Por qué escanear imágenes de Docker antes de publicar?
La prioridad es la seguridad, siempre. Incluso si trabajas con imágenes multietapa (multi-stages), debes verificar riesgos antes de compartir o desplegar. El objetivo no es la perfección, sino atender lo crítico. Escanear te revela vulnerabilidades derivadas tanto de tu configuración como de la imagen base, para que tomes decisiones informadas.
¿Cómo construir y analizar una imagen con Docker Desktop y Docker Scan?
Partiendo de un proyecto con su Dockerfile abierto en Visual Studio Code, el flujo es directo: construir la imagen y luego analizarla en Docker Desktop.
Construir la imagen desde la terminal.
Abrir Docker Desktop y refrescar para ver la imagen creada.
Usar la opción Ver paquetes y CVS para iniciar el análisis automático.
Ejemplo de construcción:
docker build -t dockerscan .
¿Qué muestra el análisis de vulnerabilidades y la imagen base?
El escaneo revela un panorama útil para priorizar. En el ejemplo, aparecen 23 vulnerabilidades en amarillo (bajo impacto) asociadas a la imagen despliegue. Al revisar la imagen base oficial, Debian 12 Slim, se observa que ya trae esas 23 vulnerabilidades. Conclusión: aunque tu imagen parezca “segura”, la base puede no serlo.
Además, se detecta una vulnerabilidad de alto impacto en la etapa trece. Al expandir el detalle y abrir el enlace, Docker Desktop muestra Scout, que es la herramienta por defecto para visualizar el escaneo. Ahí se reporta un score 7.5 (alto), suficiente para entrar en tu plan de mitigación.
¿Cómo decidir entre cambiar imagen base o ajustar el Dockerfile?
La clave es discernir si el problema viene de la imagen base o de una instrucción del Dockerfile. Podría ser que expongas un puerto o ejecutes un comando no ideal para esa imagen. Esta habilidad de diagnóstico es indispensable.
Leer el resumen del problema y la regla que falla.
Confirmar si el origen es la base o una etapa específica.
Evaluar impacto y esfuerzo de cambio.
En el caso descrito, la vulnerabilidad está relacionada con el envío u omisión de un certificado, lo que puede derivar en una denegación de servicio. En los “factores de mitigación”, Microsoft no identifica mitigaciones y señala que sucede en versiones seis u ocho.
Opciones contempladas:
Mantener .NET 8 agregando un certificado de seguridad.
Regresar a .NET 7, donde no aparece este problema.
Volver a .NET 6 (menos recomendado por antigüedad), agregando el certificado.
La elección depende del escenario: políticas del proyecto, capacidad de cambio de versión o necesidad de estabilidad.
¿Qué acciones prácticas puedes tomar para mitigar?
Cambiar la imagen base si el origen está fuera de tu control.
Omitir o ajustar la etapa del Dockerfile que dispara el riesgo.
Agregar el certificado de seguridad cuando aplique.
Mantener o modificar la versión de .NET según políticas.
Documentar un plan de acción por escenario: flexible, versión fija o mitigación puntual.
Si el escaneo con Scout marca alto impacto, actúa primero sobre eso. Luego atiende lo de bajo impacto según prioridad y contexto.
¿Tienes una estrategia efectiva para tu entorno y tus restricciones? Comparte tu enfoque y decisiones clave para enriquecer la discusión técnica.
El escaneo de imágenes Docker sirve para identificar vulnerabilidades y riesgos de seguridad en las imágenes antes de ser desplegadas. Este proceso ayuda a asegurar que las aplicaciones ejecutadas en contenedores estén protegidas contra posibles amenazas. Durante el escaneo, se pueden reportar vulnerabilidades de bajo y alto impacto, permitiendo a los desarrolladores tomar decisiones informadas sobre cómo mitigar estos problemas, ya sea cambiando la imagen base o ajustando el Dockerfile. Esto es crucial para mantener la seguridad y estabilidad en entornos de producción.
El curso está muy bueno, dejo el código de ejemplo y los comandos para un avance más rápido
FROM mcr.microsoft.com/dotnet/sdk:8.0AS build
WORKDIR/src
COPYMultiStage.csproj.RUN dotnet restore
COPY..RUN dotnet build "MultiStage.csproj"-c Release-o /app/build
RUN dotnet publish -c Release-o /app
FROM mcr.microsoft.com/dotnet/sdk:8.0WORKDIR/app
COPY--from=build /app .ENTRYPOINT["dotnet","MultiStage.dll"]
Alguien sabe por que no me deja scanner mi imagen ? Me da este aviso.
puedes analizarlo desde la terminal,
docker scout quickview dockerscan:latest
si está desactualizado te informa y te comparte el link para hacerlo, actualiza a la última versión, cierra docker.desktop e intenta de nuevo fue así que lo solucione
El servicio me parece que ya no está disponible en la interfaz, ahora solo se puede en terminal
Hay manera de realizar este escaneo por medio de Podman Desktop ? o de revisarlo desde la terminal ?
Podman es una herramienta diferente a Docker por lo que su manera de crear imágenes es completamente diferente. Por otro lado, si lo quieres hacer vía terminal puedes hacerlo usando esta herramienta: https://github.com/docker/scan-cli-plugin
Antes existía el comando Docker scan pero no sé en qué versión se nos perdió.
Debido a que debo trabajar con Podman, lo que hice fue exportar mi imagen creada con Podman y la cargué en Docker Desktop. A partir de allí pude hacer el escaneo de la misma manera que se menciona en esta clase.
Para escanear imágenes Docker en Linux, se pueden usar herramientas como Trivy, Snyk o Grype. Una opción rápida y open-source es Trivy
sudo snap install trivy
trivy image nombre_imagen
Saludos. Estoy escaneando la imagen y no me aparece dicha vulnerabilidad. Puede ser que Microsoft ya dio soporte con las versiones de net 8.0 y net 6.0?
Puede ser eso o que simplemente alguien en la comunidad haya mandado una actualización.