Acelera la corrección de contenedores con la nueva detección automática de imágenes principales de Snyk
12 de agosto de 2021
0 minutos de lecturaAl distribuir tus aplicaciones en contenedores, tienes la libertad de aprovechar el trabajo de otras personas. Puedes elegir entre una variedad de imágenes de contenedor listas para usar que ejecutarán casi cualquier código o framework que tengas. Snyk Container ya ayuda a los usuarios a administrar sus imágenes principales y ofrece orientación cuando hay mejores opciones disponibles: imágenes con pocas vulnerabilidades, una huella más pequeña o ambas cosas. Nos entusiasma anunciar la última actualización de nuestras capacidades de administración de imágenes: la detección automática de imágenes base.
Flujos de trabajo de seguridad de imágenes más simples
Antes de esta versión, Snyk Container identificaba la imagen principal de la imagen de contenedor analizada mediante el análisis de tu Dockerfile, al mismo tiempo que se probaba la imagen de contenedor con la opción --file=/path/to/Dockerfile. Esto funciona muy bien si tienes el Dockerfile a la mano y recuerdas agregarlo como parte de los análisis. Pero seamos sinceros: agregar el Dockerfile es una opción adicional y es bastante diferente de cómo funcionan otros analizadores de imágenes. Queríamos facilitar la administración de imágenes base y ofrecer recomendaciones desde la primera vez que alguien analiza una imagen con Snyk, así que automatizamos la detección de imágenes base. Solo analiza tus imágenes de contenedor con Snyk y nosotros nos encargamos del resto.

En el ejemplo anterior, analicé una aplicación de demostración que se ejecuta en un contenedor basado en node:10, una versión sumamente antigua. Durante el análisis, Snyk Container detecta que estoy usando la imagen principal node:10 y recomienda mejores alternativas que eliminarían más de 520 vulnerabilidades de la imagen que creé. Casi todas las listas de prácticas recomendadas para contenedores sugieren elegir imágenes base más pequeñas para reducir la superficie de ataque. Cuando ejecutas una prueba de vulnerabilidades en un contenedor, entiendes rápidamente por qué: muchas vulnerabilidades aparecen al usar imágenes grandes o desactualizadas. A menudo, elegir una imagen más nueva y ligera es la forma más rápida y eficaz de reducir las vulnerabilidades. En cambio, solucionar las vulnerabilidades de cada contenedor una por una o revisar cientos de imágenes base en repositorios públicos no suele ser un buen uso del tiempo de nadie. Por eso, Snyk Container hace este trabajo por ti con las imágenes más populares de Docker Hub.
En el ejemplo siguiente, analicé otra aplicación que usa ruby:2.6-slim como imagen base. A diferencia de mi imagen de Node, esta es una opción razonable con relativamente pocas vulnerabilidades; o al menos lo sería si hubiera creado la imagen de contenedor recientemente. En cambio, la creé hace aproximadamente siete meses. Por eso, en lugar de sugerirme imágenes base alternativas, recibo una alerta de que mi imagen de Ruby está desactualizada y debo volver a crearla para corregir las vulnerabilidades. Ten en cuenta que aquí usé la opción --json para mostrar el resultado JSON legible por máquinas, por si quieres pasar los resultados de Snyk a otras herramientas.

Compatibilidad con más opciones para crear contenedores
Hay otra razón por la que es importante detectar automáticamente las imágenes base: cada vez hay más herramientas para contenedores que no usan un Dockerfile para crearlos. Por suerte, estas herramientas adoptan ampliamente los estándares de imágenes de contenedor de la Open Container Initiative (OCI), lo que significa que tus herramientas y entornos de ejecución para contenedores deberían poder ejecutarlos. Herramientas como Jib, Buildah y Cloud Native Buildpacks permiten crear contenedores compatibles con OCI sin escribir un Dockerfile.
Snyk Container siempre ha podido analizar estos contenedores y ahora, gracias a nuestras capacidades de detección automática de imágenes base, también podemos ofrecer orientación sobre imágenes base para estos flujos de trabajo de creación alternativos. En las próximas semanas publicaremos artículos sobre Jib y Cloud Native Buildpacks, pero si no quieres esperar, ¡crea un contenedor con la herramienta que prefieras y analízalo!
Cómo funciona la detección de imágenes base
Con esta función, ahora contamos con dos métodos para detectar la imagen base de tus contenedores y ofrecer recomendaciones:
Inspeccionar el Dockerfile durante el análisis: Si ya usas este método, seguirá funcionando y puedes continuar usándolo. Snyk Container funcionará como siempre. Usaremos el Dockerfile como fuente para obtener los detalles de la imagen base, en lugar del método de detección automática.
Inspeccionar las capas de la imagen: Al analizar las capas de una imagen, podemos determinar qué imagen base se usa. Snyk Container analiza las imágenes oficiales más populares de Docker publicadas en Docker Hub y hace un seguimiento de los datos de sus capas para comparar las capas de la imagen que analizas con esos registros.
Hoy nos centramos en las imágenes oficiales más populares publicadas en Docker Hub. Esto incluye imágenes base que son distribuciones de Linux, como Debian, Alpine y Ubuntu; imágenes que incluyen paquetes de lenguajes y frameworks, como Python, Node u OpenJDK; e imágenes con componentes de aplicaciones precompilados, como NGINX, WordPress, Mongo y MySQL. Hay muchas más imágenes y seguimos ampliando la lista. Si quieres que incluyamos alguna, ¡avísanos!
Por qué aún debes analizar tu Dockerfile
Ahora que Snyk Container detecta automáticamente las imágenes base, quizá parezca que puedes dejar de analizar el Dockerfile. Sin embargo, si usas uno, hay buenas razones para incluirlo en tus prácticas de desarrollo seguro:
Advertencia temprana: Si importas repositorios de Git a Snyk, buscamos, entre otras cosas, un Dockerfile. Lo hacemos para avisarte lo antes posible si hay una imagen base mejor que puedas usar. Además, como nos integramos con tus repositorios de código fuente, podemos incluso automatizar las correcciones de imágenes base mediante pull requests.
Procedencia: Si usas Snyk Container para analizar tanto el Dockerfile como las imágenes de contenedor creadas a partir de él, puedes vincular esos resultados. Esto te ayuda a rastrear el origen de las imágenes en tu entorno y a conectar los contenedores que están en ejecución en producción con su fuente.
Integridad: Analizar el Dockerfile desde Git permite advertir con anticipación sobre la selección de la imagen base, pero se limita únicamente a ofrecer recomendaciones de imágenes base. Esto se debe a que cualquier imagen creada a partir de ese Dockerfile variará según el momento en que se cree, ya que los paquetes de Linux y las imágenes base se actualizan con frecuencia. El Dockerfile por sí solo no puede indicar qué contiene realmente una imagen que ya creaste. Además, el Dockerfile suele almacenarse junto al código que se ejecuta en el contenedor, por lo que obtienes contexto adicional al ver las vulnerabilidades y los problemas de código al mismo tiempo que los problemas del contenedor.
Al analizar tanto el Dockerfile como las imágenes, obtienes una visión completa de las vulnerabilidades, ya sea que provengan de tu imagen base o de otras capas de la imagen, además de la posibilidad de ir directamente al archivo fuente y corregirlas rápidamente.
Cómo comenzar
Si quieres conocer las capacidades de detección y orientación sobre imágenes base de Snyk, comenzar es fácil y está disponible para usuarios de todos los planes, incluido nuestro plan gratuito. Solo crea una imagen a partir de una de las imágenes base oficiales más populares de Docker y analízala con Snyk Container. Si usas la versión 1.677 o posterior de Snyk CLI, recibirás recomendaciones automáticas de imágenes base. También puedes analizar imágenes en tus pipelines de CI/CD y registros de contenedores o, si tienes un plan Snyk Business o Enterprise, analizar los contenedores en ejecución de tus clústeres de Kubernetes. En todos estos casos, recibirás la misma detección y orientación sobre imágenes base.
Protege tu código con información de vanguardia
Conoce todas las funcionalidades de SAST de Snyk Code en solo 30 minutos.



