/ HOWTO

Hack en Docker ataques y riesgos


Inseguridad en las Imágenes de Contenedores.

Hemos hablado muchas veces en los MeetUps sobre el uso de imágenes para Docker utilizando los repositorios públicos, en estas semanas se han presentado al menos 5 casos conocidos de vulnerabilidades, minado ilegal y troyanización de servidores usando Contenedores.

Así como en el pasado se atacaban servidores de virtualización (VMWare y similares) para comprometerlos y luego comprometer los servidores virtuales que tenían corriendo en ellos.

Ocurre lo mismo atacando directamente los contenedores, Docker, Kubernetes, Rancher o cualquiera de los servicios relacionados con ellos. Los métodos detectados hasta ahora son:

a) Despliegue de una imágen con servicios irregulares.

b) Publicación de contenedores para ser instalados en nuestros servidores.

c) Procesos de implementación posterior de software no deseado luego del uso de un contenedor válido.

d) AddOns, plugins, updates con software malintencionado.

e) Ataque a servicios ofrecidos usando contenedores, para realizar un uso distinto al inicial.

Agregamos un pequeño detalle de cada uno.

a) En este punto hemos visto varias veces en estos últimos años, que han subido al repositorio oficial de imágenes de Docker ( https://hub.docker.com ), imágenes alteradas. Como norma de seguridad recomendamos usar las imágenes provistas por los propios equipos de desarrollo, como ejemplo, si queremos montar un contenedor con MySQL, debemos buscar las imágenes de Oracle.com, Percona o MariaDB.
Veremos que Docker las marca como “oficiales”. Suelen tener millones de descargas y mucho tiempo de existencia y versiones anteriores.

b) También existen appliances, servidores virtuales prearmados con contenedores, servicios de puesta en marcha de contenedores de manera automática donde el proceso de instalación descarga una imágen o un contenedor que pone a correr en nuestro servidor Docker.
Para minimizar este problema, recomendamos realizar el proceso completo de instalación de un producto (ejemplo, Apache2 + php + mariadb + joomla), en lugar de descargar una solución completa de “todo en uno” mediante un script.
Hemos visto scripts de bash preparados para descargar e instalar todo. Pueden representar un peligro ya que debemos confiar en la descarga de contenido de un sitio de internet.
Hay casos donde para probar un producto que corre en un web y una supuesta “simplicidad”, acabamos instalando muchas mas cosas.

c) En este punto, hay “recetas” en internet de scripts o procesos manuales, que debemos correr “dentro” de un contenedor, sea para actualizarlo, para correr mas servicios, para mejorarlo, etc. Como suele ocurrir ciertos contenedores tienen acceso hacia internet para descargar actualizaciones y ese es el punto de entrada de contenido peligroso.

d) Similar al punto c), existen plugins/addons/improvements de Wordpress o de otros productos para darle mas funcionalidad, y aún estando en capas superiores (plugin de un wordpress sobre php sobre apache sobre el S.O.) ese riesgo puede ser explotado para bajar hacia el sistema operativo o atacar pasarelas de pago, cobros, datos de cuentas, etc.
Hemos visto 2 veces plugins de Wordpress preparados para ataques en el proceso de cobro. Sin ser estas vulnerabilidades puntuales de un contenedor, acaban siendo explotadas como si fueran máquinas virtuales.

e) Como todo servicios corriendo (sea ssh, apache, mysql, redis, etc.etc…) todo servicio expuesto puede ser atacado por distintos sistemas, sea buffer overflow, zero days, ataque a pilas, ataque a memoria, etc. Aquí también lo que es vulnerable es un servicio que corre “sobre” contenedores, recientemente (de nuevo) se detectaron ataques implementando software de minería de criptodivisas para consumir cpus de estos contenedores y obtener minados. (cryptojacking)
En el pasado existían campañas de de-facement, de almacenamiento de contenido en servidores de terceros y otros ataques a infraestructuras para fines “quizás un poco menos graves”, pero desde hace unos cuantos años los ataques buscan (en general) beneficiarse económicamente y de manera fraudulenta.

Las técnicas de ataque son cada ves mas avanzados, con productos encriptados para que no sea fácil identificar el contenido malicioso, con demoras de tiempo en el inicio del ataque, con suplantación de servicios para que no sea fácilmente detectables, usando sistemas de activado remoto y distintas técnicas vigentes.

En el mundo de “la nube”, existen beneficios como escalamiento, balanceo, distribución masiva de contenido que al ser atacados dan un poder enorme a los atacantes y beneficios millonarios, a costa de problemas de imágen o costos de infraestructura para la empresa vulnerada.

Subscríbete y recibirás los últimos artículos semanalmente en tu email.