¿Cómo se escanean las imágenes de contenedor en un pipeline CI/CD?
Respuesta breve
Escanea las imágenes en busca de CVE conocidas en paquetes del SO y bibliotecas de la app, además de configuraciones erróneas y secretos incrustados, tanto en el momento del build como de forma continua en el registro — porque aparecen nuevas CVE después de construir una imagen. Usa imágenes base mínimas o distroless para reducir la superficie de ataque, fija y referencia las imágenes base por digest, y ejecuta el contenedor como no-root. El escaneo es necesario pero no sustituye a la protección en runtime.
Una imagen de contenedor es una pila de capas — un SO base, paquetes, bibliotecas y tu aplicación — y cualquier capa puede contener una vulnerabilidad. El escaneo de imágenes es la forma de mantener esa pila honesta.
Qué encuentra el escaneo
Un escáner (Trivy, Grype, Clair o el escáner integrado de un registro) inspecciona cada capa e informa de:
- CVE conocidas en paquetes del SO (la imagen base) y dependencias de la aplicación.
- Configuraciones erróneas — ejecución como root, secretos horneados en una capa, capacidades peligrosas, usuario ausente.
- Secretos incrustados copiados accidentalmente en la imagen.
Escanear en el build y en el registro
Este es el punto que los candidatos suelen pasar por alto. Escanear en el momento del build en CI da retroalimentación rápida y puede hacer fallar el build. Pero una imagen que estaba limpia ayer no lo está para siempre — se divulgan nuevas CVE contra paquetes que ya están dentro de ella. Por eso también escaneas de forma continua en el registro, para que una imagen ahora conocida como vulnerable se señale (e idealmente se bloquee del despliegue) aunque nada en ella haya cambiado.
Reducir la superficie de ataque
Las vulnerabilidades más baratas de arreglar son las que nunca entregas. Las imágenes base mínimas o distroless eliminan shells, gestores de paquetes y bibliotecas no usadas, así que simplemente hay menos cosas vulnerables y menos que un atacante pueda usar tras una compromisión. Fija las imágenes base por digest (no solo :latest), reconstruye con regularidad para recoger parches, y ejecuta como usuario no-root.
El escaneo no es la meta final
El escaneo de imágenes es estático — no puede ver lo que un contenedor en ejecución hace realmente. Combínalo con seguridad en runtime (control de admisión, detección de deriva, monitoreo de comportamiento) para tener el panorama completo.
Lo que buscan los entrevistadores
Quieren que se explique el escaneo tanto en el build como en el registro, el instinto de la imagen base mínima, y la conciencia de que escanear una imagen conocida como buena aún requiere revisarla a medida que aparecen nuevas CVE.
Posibles preguntas de seguimiento
- ¿Por qué escanear imágenes en el registro si ya las escaneaste en el build?
- ¿Cómo reducen el riesgo las imágenes base mínimas o distroless?
- ¿Qué se le escapa al escaneo de imágenes que sí captura la seguridad en runtime?