Resumen
- Qué hace: El escaneo de imágenes de contenedores identifica vulnerabilidades de seguridad conocidas en las imágenes de contenedor que utiliza tu proyecto. Esto incluye vulnerabilidades en paquetes base del sistema operativo, bibliotecas del sistema y paquetes de aplicaciones instalados en las capas de imagen. Al escanear imágenes antes del despliegue, puedes detectar riesgos de seguridad en aplicaciones contenedorizadas desde el principio.
- Para quién es: Equipos de seguridad, desarrolladores e ingenieros DevOps que envían aplicaciones contenedorizadas y quieren visibilidad sobre las vulnerabilidades que heredan de las imágenes base.
Cómo funciona
Corgea descubre automáticamente las imágenes de contenedor a las que hace referencia tu proyecto y las compara con bases de datos de vulnerabilidades conocidas.1
Descubrimiento de imágenes
Corgea busca archivos
Dockerfile y Docker Compose en el proyecto y extrae de ellos las referencias a imágenes:- Dockerfiles: imágenes base declaradas con
FROM(por ejemplo,FROM python:3.11-slim) - Docker Compose: imágenes declaradas bajo
image:para cada servicio (por ejemplo,image: postgres:15)
2
Análisis de imágenes
Se descarga cada imagen y se analizan sus capas para crear un inventario del software instalado, incluidos los paquetes del sistema operativo o la distribución (Debian, Ubuntu, Alpine y otros) y los paquetes de aplicaciones instalados en la imagen.
3
Coincidencia de vulnerabilidades
Los paquetes detectados se comparan con bases de datos de vulnerabilidades conocidas. Las coincidencias se incluyen con los demás resultados del escaneo.
Escanear una imagen completamente construida
El flujo de detección anterior escanea las imágenes base que referencia tu proyecto. Para escanear en su lugar una imagen completamente construida —por ejemplo, una que acabas de construir en CI y que nunca se ha subido a un registro— pásala a la CLI con--include-image:
docker o podman) exporta la imagen y la CLI la sube junto con tu proyecto, por lo que se escanea exactamente tal y como se distribuye. Cuando usas --include-image, Corgea escanea las imágenes que le indicas en lugar de detectar imágenes base a partir de tu código. --include-image solo es compatible con el escáner BLAST. El escaneo de contenedores debe estar habilitado en tu cuenta.
Consulta Escanear imágenes de contenedor en la referencia de la CLI para conocer el comportamiento completo de la opción.
Seguimiento de hallazgos entre escaneos
Corgea realiza el seguimiento de cada hallazgo de contenedor según su imagen, paquete y aviso de vulnerabilidad. Las decisiones de priorización se conservan cuando cambia la versión del paquete, mientras que los distintos paquetes afectados por el mismo aviso permanecen como hallazgos separados.Registros compatibles
Corgea escanea imágenes alojadas en registros públicos:- Docker Hub
- GitHub Container Registry (GHCR)
- Registro de Contenedores de Google (GCR)
- Quay.io
- Registro de Contenedores de Microsoft (MCR)
- Amazon ECR Public
- Registro de contenedores de GitLab
La detección automática de imágenes se habilita cuando se detectan archivos de Docker en el proyecto y no requiere configuración. Escanear una imagen completamente construida con
--include-image requiere que el escaneo de contenedores esté habilitado en tu cuenta.Limitaciones
Estos límites se aplican a las imágenes que Corgea detecta y descarga por sí misma:- Solo registros públicos: Las imágenes alojadas en registros privados se omiten. Para escanear una imagen privada, descárgala o constrúyela en tu propio runner y pásala con
--include-image, que sube la imagen desde tu motor de contenedores en lugar de que Corgea la obtenga. - Tamaño máximo de imagen: Se saltan imágenes mayores a 1000 MB (1 GB).
- Solo se detectan imágenes referenciadas en archivos
Dockerfiley Docker Compose. Usa--include-imagepara escanear una imagen que no aparezca en ninguno de los dos.
Mejores prácticas
- Usa etiquetas específicas: Evita la etiqueta
latest; fija versiones exactas para que los escaneos sean reproducibles. - Prefiere imágenes base mínimas: Utiliza variantes slim, Alpine o distroless para reducir la superficie de ataque.
- Actualiza con regularidad: Mantén actualizadas las imágenes base para incorporar los parches de seguridad.
- Usa compilaciones multietapa: Minimiza el tamaño de la imagen final y el conjunto de paquetes que contiene.
Relacionado
- Escaneo de dependencias (SCA) — escanea las dependencias de terceros de tu aplicación
- Detección de paquetes maliciosos — detectar paquetes maliciosos o comprometidos conocidos
