De los rootkits a la criptominería
En la cadena de ataque contra Hadoop, los atacantes primero aprovechan la configuración incorrecta para crear una nueva aplicación en el clúster y asignarle recursos informáticos. En la configuración del contenedor de la aplicación, colocaron una serie de comandos de shell que utilizan la herramienta de línea de comandos curl para descargar un binario llamado «dca» desde un servidor controlado por un atacante dentro del directorio /tmp y luego ejecutarlo. Una solicitud posterior a Hadoop YARN ejecutará la aplicación recién implementada y, por lo tanto, los comandos del shell.
Dca es un binario ELF nativo de Linux que sirve como descargador de malware. Su objetivo principal es descargar e instalar otros dos rootkits y colocar otro archivo binario llamado tmp en el disco. También configura un trabajo crontab para ejecutar un script llamado dca.sh para garantizar la persistencia en el sistema. El binario tmp incluido en dca es un programa de minería de criptomonedas de Monero, mientras que los dos rootkits, llamados initrc.so y pthread.so, se utilizan para ocultar el script dca.sh y el archivo tmp en el disco.
La dirección IP que se usó para apuntar al honeypot Hadoop de Aqua también se usó para apuntar a los honeypots de Flink, Redis y Spring (a través de CVE-2022-22965). Esto sugiere que los ataques de Hadoop probablemente sean parte de una operación más amplia que apunta a diferentes tecnologías, como ocurrió con las operaciones de TeamTNT en el pasado. Cuando se investigó a través de Shodan, la dirección IP parecía albergar un servidor web con una interfaz Java llamada Stage que probablemente sea parte de la implementación de carga útil de Java desde Metasploit Framework.
Mitigar las vulnerabilidades de Apache Flink y Hadoop ResourceManager
«Para mitigar las vulnerabilidades en Apache Flink y Hadoop ResourceManager, es necesario implementar estrategias específicas», le dice a CSO Assaf Morag, investigador de seguridad de Aqua Security, por correo electrónico. “Para Apache Flink, es fundamental proteger el mecanismo de carga de archivos. Esto implica restringir la funcionalidad de carga de archivos a usuarios autenticados y autorizados e implementar controles sobre los tipos de archivos que se cargan para garantizar que sean legítimos y seguros. Medidas como límites de tamaño de archivo y restricciones de tipo de archivo pueden ser particularmente efectivas”.
Mientras tanto, Hadoop ResourceManager necesita tener configuradas la autenticación y autorización para el acceso a la API. Las opciones posibles incluyen la integración con Kerberos (una opción común para entornos Hadoop), LDAP u otros sistemas de autenticación de usuarios empresariales compatibles.
«Además, configurar listas de control de acceso (ACL) o integrarse con sistemas de control de acceso basado en roles (RBAC) puede ser eficaz para la configuración de autorizaciones, una característica compatible de forma nativa con Hadoop para diversos servicios y operaciones», afirma Morag. También se recomienda considerar implementar soluciones de seguridad basadas en agentes para contenedores que monitorean el entorno y pueden detectar criptomineros, rootkits, archivos binarios ofuscados o empaquetados y otros comportamientos sospechosos en tiempo de ejecución.