Dependencias
Escaneo de contenedores
El escaneo de contenedores inspecciona una imagen de contenedor en busca de vulnerabilidades conocidas, paquetes obsoletos y configuración arriesgada. Una imagen empaqueta su aplicación con un sistema operativo base y todo lo que hay entre ambos, así que un escaneo cubre mucho más que sus propias dependencias. También lee la imagen terminada, lo que limita lo que puede saber sobre cómo se creó.
Actualizado el
Cómo funciona el escaneo de contenedores
- Desempaqueta la imagen. El escáner lee las capas de la imagen sin ejecutarlas.
-
Enumera el contenido. Lee las bases de datos de paquetes del sistema operativo y los manifiestos de la
aplicación, como un
package-lock.jsoncopiado en la imagen. - Coteja los datos. Compara los paquetes con datos de vulnerabilidades de las distribuciones y de bases de datos de avisos.
- Comprueba la configuración. Algunas herramientas señalan además cosas como la ejecución como root o los secretos que quedan en una capa.
Dónde ejecutar un escaneo
| Etapa | Qué le aporta | Límite |
|---|---|---|
| CI, después del build de la imagen | Hace fallar el build antes de subir la imagen | Una instantánea de los avisos de ese día |
| Registro | Vuelve a escanear las imágenes almacenadas a medida que aparecen avisos nuevos | Encuentra los problemas después de publicar la imagen |
| Admisión de Kubernetes | Bloquea en el despliegue las imágenes sin escanear o que no pasan | Necesita una política y una forma de gestionar las excepciones |
| Tiempo de ejecución | Muestra qué imágenes se están ejecutando ahora y qué hay cargado | Necesita un agente en sus clústeres |
Herramientas de escaneo de contenedores
- Código abierto: Trivy y Grype son las opciones gratuitas habituales, y ambas encajan fácilmente en CI.
- Integradas en registros y plataformas: Docker Scout y los principales registros en la nube ofrecen escaneo.
- Plataformas comerciales: Snyk y Anchore añaden políticas, informes y flujos de trabajo.
Cómo reducir los hallazgos
- Empiece con una imagen base más pequeña. Las imágenes slim o distroless contienen menos paquetes, así que se les aplican menos avisos.
- Reconstruya con regularidad. Las imágenes base reciben parches, y una imagen que estaba limpia en marzo ya no lo está.
- Use builds multietapa. Los compiladores y las herramientas de build deben quedar fuera de la imagen final.
- Fije las imágenes base por digest. Una etiqueta puede cambiar sin que usted lo note; un digest, no.
- Priorice. Muchos hallazgos aún no tienen corrección o están en paquetes que su aplicación nunca usa. Consulte cómo priorizar vulnerabilidades.
Qué no puede ver un escaneo de contenedores
- El código compilado. Un binario de Go o Rust en la imagen contiene metadatos limitados, y el escáner tiene que deducir qué entró.
-
Los archivos sin registro de paquete. El software añadido con
curlo copiado en una capa no tiene entrada en ninguna base de datos de paquetes. - Lo que el build usó y dejó atrás. Los builds multietapa descartan las herramientas que produjeron la imagen. Si alguna estaba comprometida, nada en la imagen final lo indica.
- De dónde procede. Un escaneo describe la imagen, no el build que la produjo.
Consulte qué se le escapa a una SBOM de imagen de Docker para verlo más de cerca, y las mejores herramientas de SBOM para conocer las opciones.
Escanear imágenes y registrar builds
Los escáneres son la herramienta adecuada para las imágenes que usted no ha construido, así como para los clústeres y la configuración. Para las imágenes que sí construye, CRACI sigue otro camino. Como su runner de GitHub Actions, ve lo que entra en el build, incluidas la imagen base y sus capas del sistema operativo, de modo que registra lo que entró en lugar de deducirlo después. Luego sigue comprobando esas SBOM a medida que se publican nuevas vulnerabilidades.
CRACI no escanea imágenes que usted no haya construido, clústeres, imágenes de máquinas virtuales ni errores de configuración. Trivy sí, así que consérvelo para eso. Consulte CRACI vs Trivy.
Escaneo de contenedores: preguntas frecuentes
¿Qué es el escaneo de contenedores?
Es el proceso de inspeccionar una imagen de contenedor en busca de vulnerabilidades conocidas, paquetes obsoletos y configuración arriesgada, normalmente sin ejecutarla.
¿Cuándo deben escanearse las imágenes de contenedor?
En CI después de construir la imagen, y de nuevo en el registro a medida que aparecen avisos nuevos. Escanear una sola vez le deja una instantánea que envejece rápido.
¿Cuál es el mejor escáner de contenedores gratuito?
Trivy y Grype son las opciones gratuitas más utilizadas. Ambas se ejecutan en CI y cubren paquetes del sistema operativo y de aplicaciones.
¿Cuál es la diferencia entre el escaneo de imágenes y una SBOM?
Una SBOM enumera lo que hay en una imagen, mientras que un escaneo comprueba si ese contenido tiene problemas conocidos. Muchos escáneres crean primero una SBOM y después la cotejan con los avisos.
¿Por qué mi imagen de contenedor tiene tantas vulnerabilidades?
Sobre todo por la imagen base, que incorpora los paquetes de un sistema operativo. Una imagen base más pequeña y las reconstrucciones regulares eliminan la mayoría.
¿Puede un escáner de contenedores leer binarios compilados?
En parte. Los binarios de Go y Rust pueden contener algunos metadatos de dependencias, pero gran parte del código compilado da poca información a un escáner, que tiene que inferir qué entró.
Vea qué entró en su imagen
Construya una imagen en CRACI y compare la SBOM registrada con lo que indica su escáner de contenedores.
Reservar una demo