Resumen de SnykLaunch: recomendaciones personalizadas de imágenes base
4 de abril de 2023
0 minutos de lecturaUna de las nuevas e interesantes funciones que se presentaron hoy en SnykLaunch fue Custom Base Image Recommendations (CBIR). En beta abierta desde finales de 2022, CBIR ya está en uso en varias organizaciones. Hemos ampliado las funciones a medida que nos acercamos a la disponibilidad general, para ofrecer más flexibilidad e incorporar capacidades de automatización que no requieren intervención, y permitir que los usuarios aprovechen CBIR en sus pipelines de CI/CD.
Custom Base Image Recommendations amplía las potentes recomendaciones de imágenes base que son el núcleo de Snyk Container, y las pone a disposición de organizaciones y empresas que siguen flujos de trabajo de DevOps más avanzados. Ya sea que tengas equipos dedicados a seleccionar, crear, personalizar y reforzar tus imágenes base seleccionadas o «doradas», o que simplemente partas de una imagen que no esté entre las imágenes oficiales populares, querrás aprovechar esta función.
Aunque puedes seguir muchos flujos de trabajo para crear y distribuir tus aplicaciones en contenedores, hay algunos hitos generales comunes: seleccionar una imagen base, compilar (agregar bibliotecas comunes, componentes y archivos del proyecto) e implementar.
La necesidad de recomendaciones de imágenes base
La selección de imágenes base suele comenzar con una imagen «Docker Official» basada en el lenguaje de programación en el que está escrito el proyecto. Para una aplicación de Python, buscaríamos una imagen de Python; para una aplicación de Java, una imagen de Java.
Un paso importante del ciclo de entrega de imágenes de contenedor es asegurarse de minimizar el riesgo de las vulnerabilidades. Muchas herramientas pueden ayudarte a identificar paquetes vulnerables en tus imágenes y sugerir versiones corregidas. Por ejemplo, la imagen base node:14.0.0 contiene más de mil vulnerabilidades. Lamentablemente, muchas herramientas solo ofrecen orientación para cada vulnerabilidad, como se muestra aquí.
En este ejemplo, vemos versiones que corregirían algunas de las vulnerabilidades, pero no queda claro qué hacer. ¿Aplicar un parche a una? ¿A todas?
Las recomendaciones de imágenes base te ayudan a encontrar mejores imágenes desde las que empezar. En lugar de aplicar parches a vulnerabilidades individuales, una por una, puedes eliminar grupos enteros con un solo clic. En este caso, vemos que actualizar a la versión menor node:14.21.3 reducirá nuestras vulnerabilidades en un 64 %, mientras que pasar a la variante bullseye-slim elimina todas menos unas pocas vulnerabilidades de gravedad baja.

Flujos de trabajo de DevOps avanzados
En algunas organizaciones, el equipo de desarrollo de aplicaciones se encarga del proceso de creación y mantenimiento de las imágenes de contenedor; otras siguen flujos de trabajo más avanzados. Se basan en una división del trabajo: un equipo de plataforma crea imágenes base internas, seleccionadas o «doradas», para que las usen los desarrolladores. El equipo de plataforma elige las imágenes base iniciales y luego configura y crea imágenes base de contenedor internas según los estándares de la empresa, que pueden incluir bibliotecas comunes, el cumplimiento de convenciones de nomenclatura o etiquetado y el refuerzo de seguridad para mitigar las vulnerabilidades de las imágenes base.

Esta separación de responsabilidades permite que los desarrolladores se concentren en las aplicaciones que están creando, ya que no tienen que corregir las imágenes base.
Veamos cómo funciona este flujo avanzado con CBIR.
Ciclo de vida de las imágenes base personalizadas
Equipos de plataforma y seguridad
En este modelo de responsabilidades compartidas, el equipo de plataforma se encarga de seleccionar las imágenes iniciales y crear las imágenes base personalizadas que usarán los desarrolladores. Es responsable de automatizar y proteger una cadena de suministro escalable de imágenes de contenedor para que los desarrolladores creen a partir de ellas, y de proporcionar al equipo de seguridad visibilidad completa sobre el estado de las imágenes base para que pueda priorizar las correcciones. Esta visibilidad crea un ciclo de retroalimentación que permite a los equipos distribuir imágenes más seguras. Es importante señalar que el equipo de plataforma puede seguir aprovechando la lógica estándar de recomendaciones de imágenes base al crear sus imágenes base personalizadas.
Una vez creada una imagen base personalizada, se puede importar a Snyk para monitorearla con los mismos métodos disponibles hasta ahora: mediante la CLI, CI/CD y API, o la interfaz de usuario de Snyk. Cuando Snyk Container empieza a monitorear una imagen, se puede marcar como «Custom Base Image» y, de manera opcional, usar en las recomendaciones. Snyk puede detectar automáticamente las versiones más recientes según el control de versiones semántico, la fecha de marcado o los patrones personalizados de nomenclatura de esquemas.

Este proceso también se puede automatizar mediante la API. Desactivar la opción «Use in recommendations» es útil cuando una imagen se reemplazó por otra versión y ya no quieres que se ofrezca como reemplazo.
Desarrolladores
Cuando un contenedor se deriva de una imagen base personalizada o se crea FROM una de ellas, las recomendaciones se presentan según la familia de imágenes y, si se incluye el Dockerfile con el que se creó la imagen, también hay opciones de actualización con un solo clic, como se muestra en este ejemplo. En este caso, el desarrollador usa mybaseimage:1.0, que tiene 185 vulnerabilidades. La versión más reciente, la 6.0, tiene menos vulnerabilidades, y el desarrollador puede abrir rápidamente un pull request para actualizarla. Además, se pueden crear automáticamente pull requests para las imágenes derivadas de imágenes base personalizadas cuando se lanza una versión más reciente de la imagen base.

El uso de las imágenes base personalizadas y seleccionadas que proporciona el equipo de plataforma elimina el ruido que los desarrolladores tendrían que filtrar, lo que les permite concentrarse en los paquetes que agregaron a los contenedores, ya sea manualmente o mediante administradores de paquetes, así como en sus aplicaciones. Lo importante es que no tienen que preocuparse.
Automatización para tu cadena de suministro de contenedores
Como se mencionó anteriormente, hay nuevas API disponibles tanto para marcar imágenes base monitoreadas como imágenes base personalizadas como para registrar esquemas de versiones personalizados para la nomenclatura de tus contenedores. Así puedes nombrar tus imágenes como acostumbras y seguir aprovechando las recomendaciones personalizadas.
Estas API te permiten incorporar el etiquetado personalizado de imágenes y las recomendaciones de imágenes base personalizadas en tus flujos de trabajo automatizados, a la vez que permiten que tus desarrolladores se concentren en entregar software más seguro.
También puedes consultar nuestra documentación de Custom Base Image Recommendations para obtener más información sobre la función.
¡Pruébalo hoy!
Custom Base Image Recommendations de Snyk Container está disponible actualmente para clientes del plan Enterprise, pero más adelante también debería estar disponible para otros planes, incluido el gratuito. Antes de la disponibilidad general, comunícate con tu administrador de cuenta o envía una solicitud de soporte para habilitar la función en tu organización y tomar el control de tus flujos de trabajo de la cadena de suministro de contenedores.
Para ver la demostración, consulta la grabación a pedido de SnykLaunch.
Seguridad de contenedores centrada en los desarrolladores
Snyk encuentra y corrige automáticamente vulnerabilidades en imágenes de contenedores y cargas de trabajo de Kubernetes.



