Recientemente, investigadores de Aquasec han descubierto una nueva campaña de malware dirigida a entornos de nube llamada Docker Gatling Gun (TDGG). Esta campaña se enfoca en comprometer instancias de contenedores Docker expuestos, con el propósito de alquilar y aprovechar la capacidad computacional de los servidores comprometidos para realizar operaciones de criptominería. TeamTNT, el grupo de actores detrás de esta campaña, utiliza las funcionalidades nativas de la nube para agregar instancias de Docker comprometidas a un Docker Swarm para gestionar los nodos comprometidos, además emplea Docker Hub para distribuir el malware. La campaña tiene como objetivo cualquier país con servidores Docker expuestos y mal configurados, aprovechando estas vulnerabilidades para expandir sus operaciones.
Antecedentes de la campaña y atribución
La campaña Docker Gatling Gun (TDGG) fue descubierta en septiembre de 2024 a raíz de un registro inusual de dominios, que los investigadores de Aqua Nautilus vincularon con una campaña de 2021 del grupo TeamTNT, conocido por su afinidad con herramientas de código abierto y tácticas ofensivas en entornos de nube.
El objetivo de este grupo es comprometer entornos nativos en la nube mediante la explotación de daemons Docker expuestos, con el fin de desplegar malware como Sliver y criptomineros. Para esto, utilizan servidores web comprometidos y Docker Hub como puntos de almacenamiento y propagación, en una infraestructura diseñada para ataques a gran escala que impactan múltiples sectores y países alrededor del mundo.
En este contexto, resulta crucial evaluar el posible alcance de la actividad de TeamTNT en entornos de nube basados en Docker en la región de Latinoamérica, dada la creciente adopción de servicios cloud en esta área.
Top 5 de las instancias Docker en Latinoamérica que podrían ser vulnerables a la campaña
Según el informe de los investigadores de Aquasec, esta podría ser una campaña global de malware orientada a instancias de Docker mal configuradas y expuestas en internet, lo que incluye a Latinoamérica. Por lo tanto, es fundamental identificar la cantidad de instancias de Docker susceptibles a explotación por actores de amenaza en esta región. Nuestra investigación ha revelado que, en Latinoamérica, al menos 2,583 instancias de Docker podrían ser vulnerables. Los cinco países con el mayor número de instancias expuestas son: Brasil con 1,579, México con 586, Chile con 200, Colombia con 94 y Perú con 23.
Cadena de infección
Ilustración 1: Cadena de infección de TDGG
Fuente: Securelist
- Acceso Inicial
- Método: Explotación de daemons Docker expuestos en los puertos 2375, 2376, 4243 y 4244.
- Herramienta: Un script llamado Docker Gatling Gun que escanea estos puertos para identificar sistemas vulnerables.
- Objetivo: Implementar un contenedor de una cuenta de Docker Hub comprometida (cuenta «nmlm99»), ejecutando una imagen de Alpine Linux con comandos maliciosos.
- Ejecución
- Secuencia de comandos inicial: La imagen de contenedor ejecuta un script de inicio denominado TDGGinit[.]sh (abreviatura de Docker Gatling Gun init shell script), que configura y lanza acciones posteriores.
- Carga útil: Malware Sliver, que permite ejecución remota y manejo de Comando y Control (C2) a través de múltiples protocolos (HTTP(S), DNS, mTLS, WireGuard).
- Persistencia
- Método: Modificación de infraestructura en la nube mediante el uso de Docker Swarm para agrupar nodos comprometidos y garantizar acceso continuo como parte de un clúster de Docker.
- Estrategia: Configuración de la infraestructura para asegurar el control prolongado sobre el entorno afectado.
- Evasión de Defensa
- Técnicas:
- Evasión de detección: Uso de Sliver, que reemplaza al backdoor anterior (Tsunami), gracias a sus capacidades de cifrado dinámico y soporte multiplataforma, dificultando la detección.
- Enmascaramiento y uso de nombres familiares: Identificadores como Chimaera y convenciones de nombres que simulan procesos legítimos (e.g., bioset).
- Rootkit: Posible uso de prochider rootkit en servidores de descarga.
- Técnicas:
- Acceso a Credenciales
- Objetivo: Recolectar y almacenar credenciales, buscando localmente claves SSH, credenciales de API y otros archivos de configuración sensibles (SSH, AWS, GitHub, entre otros).
- Descubrimiento
- Red externa: Escaneo masivo (e.g., con masscan) en busca de servicios Docker y sistemas vulnerables.
- Red local: Exploración de sistemas adicionales dentro de la red comprometida para identificar objetivos adicionales.
- Comando y Control (C2)
- Infraestructura C2: Uso de Docker Hub y servidores web como puntos de entrega y gestión de malware.
- Protocolos C2: Uso de Sliver para comunicación C2 vía DNS, HTTP(S), y WireGuard, proporcionando túneles proxy para eludir detección.
- Impacto
- Objetivo: Secuestro de recursos para ejecutar criptominado o alquilar capacidad de cómputo en plataformas de minería (e.g., Mining Rig Rentals).
- Minería de criptomonedas: Uso de software de minería como XMRIG, T-Rex Miner, CGMiner, BFGMiner, y SGMiner, aprovechando el procesamiento de GPU para maximizar el rendimiento en criptomonedas.
Apreciación
Se debe recordar que la responsabilidad de la gestión y configuración de los contenedores usados en la infraestructura cloud cualquiera sea el proveedor en el cual se aloje bien (AWS, GCP, Azure); es responsabilidad compartida que puede variar según el tipo de entorno (nube pública, privada o híbrida) y el módelo de servicio utilizado (IaaS, PaaS, SaaS).
En este contexto, es crucial subrayar que corresponde al usuario u organización garantizar una configuración y gestión adecuadas de la seguridad de los contenedores, abarcando desde políticas de seguridad (incluyendo firewalls, autenticación y permisos) hasta la verificación de que las imágenes de contenedores estén libres de vulnerabilidades, mediante el uso de imágenes verificadas y la realización de auditorías de seguridad.
En resumen, mientras que los proveedores de infraestructura y plataformas son responsables de la seguridad del entorno subyacente, la organización o el usuario final tiene la responsabilidad de proteger las aplicaciones, configuraciones y políticas de acceso dentro de los contenedores.
Plan de acción
- Para contrarrestar la campañas DTGG se sugieren las siguientes acciones:
- Restringir el acceso a los puertos 2375, 2376, 4243 y 4244, limitando las conexiones externas a daemons Docker.
- Implementar escaneos de seguridad periódicos en servidores Docker y Kubernetes para detectar configuraciones inseguras o servicios abiertos.
- Reforzar la autenticación en Docker y Kubernetes, incluyendo la implementación de claves de acceso seguras y limitar el acceso SSH a direcciones IP autorizadas.
- Establecer reglas para verificar la integridad de las imágenes y evitar el uso de fuentes desconocidas. Revisar las cuentas de Docker Hub y Kubernetes para detectar actividad inusual o cargas sospechosas.
- Utilizar herramientas de monitoreo para detectar picos anómalos en el uso de CPU y memoria, que son indicadores comunes de criptominería en servidores comprometidos.
- Implementar soluciones de seguridad que incluyan la detección de Sliver y otras herramientas de comando y control, con alertas específicas para actividades relacionadas con Docker.
- Incluir pruebas de seguridad en el ciclo de desarrollo y despliegue para revisar cualquier vulnerabilidad en contenedores antes de su implementación.
- Configurar firewalls internos para limitar la comunicación entre servidores y reducir la capacidad de movimiento lateral en caso de compromiso.
- Asegurar que todas las conexiones internas y externas dentro de los entornos en la nube tengan políticas de acceso limitadas y autenticación en múltiples factores.
- Implementar listas de bloqueo para dominios sospechosos asociados a TeamTNT (e.g., solscan[.]life, solscan[.]one), y monitorear conexiones salientes en los puertos asociados (por ejemplo, 6670 y 8888).
- Configurar alertas para identificar patrones de criptominería, especialmente el uso de herramientas como XMRIG y BFGMiner.
- Monitorear el uso de servicios como anondns y WireGuard para detectar tráfico inusual y configurar alertas sobre tráfico en canales que suelen usarse en ataques.
- Implementar controles para proteger claves y credenciales, restringiendo el acceso a archivos sensibles (como SSH, AWS, Docker y otras credenciales).
- Establecer una auditoría periódica de acceso para identificar intentos de acceso no autorizados o configuraciones incorrectas que puedan ser explotadas.
- Capacitar a los equipos en la identificación de actividades sospechosas en Docker y en los entornos de la nube.
- Establecer y probar planes de respuesta a incidentes específicamente diseñados para enfrentar ataques en entornos Docker y de criptominería.
- Realizar pruebas de penetración periódicas enfocadas en entornos de contenedores y simular ataques de minería para probar la resiliencia de las medidas de seguridad.
Fuentes Utilizadas