Skip to main content

Gestión segura de contenedores

Escrito por
Headshot of Tales Casagrande

Tales Casagrande

feature safe containers

22 de junio de 2022

0 minutos de lectura

Esta publicación fue escrita por Tales Casagrande, Snyk Ambassador. A los Snyk Ambassadors les apasiona compartir su experiencia en seguridad. ¡Conviértete en uno hoy mismo y regístrate!

En la industria naviera, el formato de los contenedores sigue la norma ISO 668, que establece un formato estándar para apilar contenedores de forma segura.

Imagina tus aplicaciones con varios contenedores que ejecutan diferentes aplicaciones y cumplen distintas funciones para personas de todo el mundo.

Seguridad de los contenedores de software

El software moderno no es muy distinto de un barco. «Apilamos» varios microservicios dentro de los proyectos, hay equipos responsables del desarrollo y la seguridad del entorno, y un error crítico puede echarlo todo a perder. Veamos los contenedores desde la perspectiva del desarrollo y la seguridad.

  • ¿Confías en la imagen que estás llevando a producción? ¿Su origen es confiable?

  • ¿Realizas pruebas de seguridad para detectar posibles problemas?

  • ¿Cómo priorizas las correcciones?

  • ¿Tu imagen base incluye solo lo mínimo necesario para ejecutar tu aplicación?

  • ¿El equipo de desarrollo se mantiene al día con las prácticas recomendadas?

  • ¿Tu equipo de seguridad ayuda durante el desarrollo o solo busca culpables cuando detecta una vulnerabilidad?

Si no puedes responder todas las preguntas, ¡no pasa nada! Sigue leyendo y te daré algunos consejos.

Comienza tu análisis con Snyk Container

La idea es derribar las barreras entre los equipos de seguridad y desarrollo, y ayudar a ambos a priorizar las vulnerabilidades en los contenedores con criterios claros, en lugar de generar informes enormes.

Como ejemplo, usemos el repositorio snyk-goof, que contiene una aplicación intencionalmente vulnerable para realizar pruebas (no se recomienda usarla en entornos de producción). Analizaremos esta aplicación con Snyk Container, que ofrece una forma sencilla y eficaz de automatizar la corrección de vulnerabilidades y ayuda a los desarrolladores a enfocarse en los problemas.

Primero, crea una cuenta (¡es gratis!). Si ya tienes una, solo inicia sesión. Ve a Proyectos > Agregar proyecto.

Menú «Agregar proyecto» con las opciones GitHub, Docker Hub, CLI y Otras, y «Monitorear repositorios públicos de GitHub» resaltado
Interfaz de Snyk para monitorear un repositorio público de GitHub, que muestra snyk/snyk-goof y un botón «Importar 1 repositorio»

Ten en cuenta que los resultados del análisis pueden tardar unos minutos en aparecer en el proyecto que acabas de importar. Snyk puede analizar código, bibliotecas y contenedores. Hoy nos enfocaremos en los contenedores.

Panel del proyecto de Snyk que muestra los resultados del análisis de código de un Dockerfile y package.json, con el recuento de niveles de gravedad y las fechas de las pruebas recientes

Revisa el Dockerfile. ¿Transportarías mar adentro un contenedor con problemas críticos de infraestructura? ¡No lo creo! Hagamos algunas preguntas:

  • ¿Por dónde empezamos?

  • ¿Qué prioridad tiene cada uno de estos problemas?

Ahora, para crear tu plan, considera lo siguiente:

  • ¿Alguien podría aprovecharse de estas fallas?

  • ¿Ya hay código malicioso (un exploit existente) en Internet que pueda aprovechar esta falla?

  • ¿Alguien está hablando de esta falla en las redes sociales?

  • ¿Hay una solución disponible?

Cada vulnerabilidad recibe una puntuación del Sistema de puntuación de vulnerabilidades comunes (CVSS). Para calcularla, se consideran criterios como la superficie de ataque, la complejidad del ataque, la interacción del usuario y los privilegios necesarios.

Panel de vulnerabilidades que muestra hallazgos en los paquetes OpenSSL y curl, incluidas las calificaciones de gravedad, las puntuaciones, el estado de explotación y las versiones con correcciones.

Snyk Container ofrece mucha información útil sobre cada vulnerabilidad.

Panel de vulnerabilidades de seguridad que muestra un problema crítico de recorrido de directorios en python3.5-minimal, con CVE-2019-9948 y una versión corregida del paquete.

En este ejemplo hablamos de una sola imagen, pero imagina lo que pasaría a gran escala. ¿Cómo se vería? Podemos establecer una línea de base a partir de las preguntas anteriores.

Tabla que recomienda actualizar las imágenes base y compara imágenes de Node.js según la cantidad y la gravedad de las vulnerabilidades.

Esta imagen muestra las recomendaciones de Snyk Code para actualizar la imagen base. Estas actualizaciones reducen el riesgo y nos ahorran el tiempo que podríamos invertir en buscar otra imagen base (o intentar actualizarla).

Ejecuta el mismo análisis con la CLI de Snyk

Hice el análisis con la interfaz gráfica. Pero los equipos de desarrollo suelen trabajar en la línea de comandos o en su IDE, así que eliminemos la barrera de tener que iniciar sesión en otra herramienta y hagamos el mismo análisis con la CLI de Snyk.

En la consola de Snyk, ve a Integraciones > CLI y sigue los pasos correspondientes a tu entorno. Usemos el mismo proyecto: snyk-goof.

Terminal que muestra la clonación completada del repositorio de GitHub snyk-goof, con la transferencia de objetos y la actualización de archivos al 100%.

Ahora, creemos la imagen.

Terminal que muestra una compilación de Docker exitosa para una aplicación de Node.js, incluidos los pasos de compilación almacenados en caché y el nombre de la imagen library/java-goof

¡Ahora viene lo bueno! Empecemos el análisis con la CLI.

Terminal que muestra el comando “snyk container test snyk-goof” y un mensaje que analiza las dependencias del contenedor de snyk-goof
Salida de la terminal que muestra 1,033 vulnerabilidades encontradas en una imagen base de Node.js, con recomendaciones para actualizarla y usar tipos de imagen alternativos.

Los resultados de las pruebas en la consola y en la CLI son un poco distintos porque las hice en días diferentes, pero el análisis con la CLI de Snyk sigue ofreciendo las mismas recomendaciones para actualizar la imagen base.

La ventaja del análisis basado en métricas

Surgen nuevas vulnerabilidades todo el tiempo. No podemos detenernos a corregir cada problema. Debemos priorizar, automatizar y enfocar nuestros esfuerzos donde el impacto podría ser más grave. Un análisis basado en métricas reduce el ruido entre los equipos y te ayuda a encontrar rápidamente formas de gestionar tus contenedores de manera segura.

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.

Leer más

blog feature snyk container custom base recommendations
Blog

Presentamos Evo Agentic AppSec: seguridad que sigue el ritmo del desarrollo con IA

El desarrollo impulsado por IA avanza más rápido que los flujos de trabajo de seguridad tradicionales. Agentic AppSec de Snyk usa agentes de seguridad para encontrar, corregir y verificar vulnerabilidades de forma continua, mientras las personas establecen el nivel.

feature insights context
Blog

Los ataques autónomos ya están aquí. La defensa debe estar a su altura.

Los atacantes autónomos están reduciendo el tiempo disponible para defenderse. Descubre cómo el descubrimiento, la corrección, la validación y la prevención continuos pueden ayudar a los equipos de seguridad a seguirles el ritmo.

feature insights context
Blog

¿La prevención es, en esencia, un problema ya resuelto?

La prevención en el código generado por agentes está resuelta desde el punto de vista arquitectónico, pero elegir controles que protejan la seguridad sin ralentizar el desarrollo sigue siendo el desafío.