dhpcd: La criptominería que se ocultó durante cuatro años
Resumen ejecutivo
El grupo de inteligencia sobre seguridad de Akamai detectó una campaña de ataque de larga duración, que hemos denominado "dhpcd". La campaña está dirigida a máquinas Linux con servidores SSH mediante el forzado de contraseñas y, finalmente, la ejecución de un malware de criptominería de Monero en dichas máquinas.
La campaña fue identificada por primera vez por la red de sensores de amenazas de Akamai en abril de 2018 y sigue activa a día de hoy.
Hemos observado más de 2200 ataques desde más de 800 direcciones IP de origen único en nuestra red de sensores de amenazas desde su primera aparición, con un pico destacado en mayo de 2022.
Como parte de la cadena de ataques, los atacantes implementan varias puertas traseras mediante cambios de contraseña y la adición de una clave SSH, ejecutan numerosos scripts para neutralizar a los competidores y utilizan Cron Jobs y el archivo rc.local para persistir.
Algunos de los archivos binarios del malware de criptominería son desconocidos para otros proveedores de seguridad.
Se desconocen los orígenes de la infraestructura de los atacantes, ya que operan detrás de nodos de salida de Tor. Algunos de esos nodos de salida de Tor pertenecen a universidades, organizaciones sin ánimo de lucro, empresas de ciberseguridad, etc.
La lista parcial de indicadores de riesgo (IOC) está disponible en el apéndice; también hay una lista completa de IOC y un script de detección disponibles en nuestro repositorio público.
¿Qué es dhpcd?
Debido a que gran parte de Internet se ejecuta en la infraestructura de Akamai, tenemos una visión amplia de lo que sucede, y encontrar malware nuevo (o relativamente nuevo) es uno de los resultados de esta amplia visión. En abril de 2018, el malware de criptominería basado en el XMRig de código abiertoal que hemos llamado "dhpcd" llegó por primera vez a los sensores de amenazas de Akamai y ha permanecido activo desde entonces. No es frecuente que nos encontremos con un malware que haya sido marcado y que siga funcionando durante tanto tiempo con relativa consistencia sin que se haya hablado de él. Esto se debe a que este malware de criptominería accede mediante la fuerza bruta, se oculta y hace un reconocimiento de los elementos que podrían detectarlo.
Su nombre proviene de una estrategia difícil de detectar en el daemon legítimo de Linux dhcpd: un proceso encargado de configurar el servidor DHCP que se ejecuta en la máquina cuando se inicia. Esta técnica de intercambio de letras es muy utilizada por múltiples vectores de ataque para evitar la detección, y fue parte del éxito de este malware para mantenerse activo durante al menos cuatro años. Utiliza nodos de salida de Tor para ocultarse, lo que dificulta, o hace prácticamente imposible, realizar un seguimiento de los orígenes del ataque. A continuación, mina la moneda privada Monero. Hemos conseguido obtener los monederos de Monero a partir de los archivos binarios del malware de criptominería.
Este ha pasado por algunas variaciones, que han contribuido a su éxito en evadir la detección, no solo localmente en la máquina infectada, sino también por proveedores de seguridad y varias fuentes de información sobre amenazas. En esta publicación del blog, exploraremos el flujo de ataques, la mitigación y el impacto de sus diversas implementaciones.
Actividad de incidentes
Desde abril de 2018, nuestros sensores han registrado más de 2200 incidentes desde más de 800 direcciones IP únicas. Estas direcciones IP pertenecían principalmente a empresas de alojamiento y comunicaciones. Sin embargo, también había una cantidad importante de IP de universidades y organizaciones sin ánimo de lucro, que de hecho, se convirtieron en la infraestructura para ampliar el propósito previsto del malware.
En marzo de 2022, se produjo una actualización importante de la versión de XMRig, el malware de criptominería en el que se basa dhpcd, de la versión 2.13.0 a la 5.2.0. Coincidiendo con esta importante actualización de la versión, observamos un gran aumento tanto de la escala como del alcance. Poco después de esto, en mayo de 2022, observamos el pico más alto del año hasta ahora. Aunque no fue tan alto como el pico de 2021, esto muestra el deseo de los atacantes de aumentar las ganancias potenciales de este malware en particular en el futuro. Por ello, veremos más ejemplos de esto en los próximos meses.
Alcance de la campaña
Desde nuestra primera detección de dhpcd, hemos tenido 2215 ataques, propagados a través de 843 direcciones IP de ataque diferentes, con un promedio de 2,6 ataques por IP. Por cada IP de origen, observamos un rango de 1 a 27 ataques.
De las 840 direcciones de IP de ataque, aproximadamente el 80 % eran nodos de salida de Tor, lo que hace casi imposible rastrear al agente de la amenaza que está detrás del ataque. El uso de Tor por parte de los atacantes es una práctica recomendada de OPSEC; sin embargo, eso se traduce en que las organizaciones que utilizan Tor participan activamente en la propagación de dhpcd (y otras campañas) y en la distribución de malware. Entre las organizaciones que hemos visto atacar los sensores de Akamai había máquinas pertenecientes a universidades de EE. UU. u organizaciones europeas sin ánimo de lucro, entre otros.
En base a la cantidad de nodos de salida de Tor en estos países, la mayoría de las IP de ataque se encuentran en Estados Unidos y Europa. La mayoría de los ataques europeos procedían de Alemania y los Países Bajos.
Finanzas
Los atacantes utilizan varios monederos para recoger sus ganancias de criptominería. Encontramos 13 monederos únicos de Monero codificados de forma rígida en los archivos binarios del malware de criptominería. En el proceso de monitorización de estos monederos, descubrimos que cada uno de ellos contiene una cantidad equivalente a entre 150 $ y 160 $; después de conseguir esta cantidad, los atacantes probablemente "rotan" a otro monedero. Considerando esta cantidad relativamente baja de saldo en cada monedero, suponemos que la cantidad real de monederos es significativamente mayor. Estas bajas cantidades son otro ejemplo de la OPSEC de este malware: recoger y mantener pequeñas cantidades para reducir la posibilidad de ser descubierto.
Las ganancias totales que hemos calculado hasta ahora son de aproximadamente 85 mBTC, lo que equivale a aproximadamente 2000 $. Pero, de nuevo, suponemos que hay más monederos en archivos de malware que no hemos obtenido, por lo que es probable que la ganancia real sea significativamente mayor.
Los atacantes extrajeron monedas Monero (XMR) utilizando los dominios de pools de minería de minexmr[.]com, como: Sg97[.]minexmr[.]com, fr13[.]minexmr[.]com, us40[.]minexmr[.]com, etc. La lista completa está disponible en nuestro repositorio de IOC.
El 19 de agosto, se cerraron estos pools de minería y los atacantes tuvieron que buscar otro; el pool de minería actual es pool[.]supportxmr[.]com:80.
Flujo de ataque
Filtración inicial
Los atacantes penetran en las máquinas Linux objetivo que ejecutan servidores SSH mediante el forzado contraseñas. A continuación, descargan un archivo ejecutable ficticio en la carpeta bin mediante SCP. El programa ficticio simplemente escribe "Hello, World" en la consola, se supone que para verificar los permisos de ejecución. Los nombres del archivo son cadenas alfanuméricas aleatorias de 26 caracteres; por ejemplo, /bin/cpuufcdmorv9crpa8h6wg6iq2.
Malware de criptominería
A continuación, los atacantes descargan el malware de criptominería, un archivo llamado "dhpcd", en el mismo directorio mediante SCP. El malware de criptominería busca servidores de pools de minería disponibles a través del puerto TCP 4444:
fr14[.]minexmr[.]com
ca61[.]minexmr[.]com
sg97[.]minexmr[.]com
fr13[.]minexmr[.]com
us40[.]minexmr[.]com
Persistencia
Ahora, los atacantes ya pueden encargarse de conseguir que el malware de criptominería sea persistente. Utilizan varias técnicas para lograrlo.
Comienzan cambiando las contraseñas de los usuarios existentes en el sistema, por ejemplo, root, admin, test, oracle, test1, ubuntu, etc. Protegen sus cambios mediante la modificación de los atributos de /etc/Shadow, un archivo que contiene las contraseñas con hash en el sistema y sus metadatos.
Los atacantes agregan su clave SSH al archivo ~/.ssh/authorized_keys y lo convierten en inmutable.
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCuhPmv3xdhU7JbMoc/ecBTDxiGqFNKbe564p4aNT6JbYWjNwZ5z6E4iQQDQ0bEp7uBtB0aut0apqDF/SL7pN5ybh2X44aCwDaSEB6bJuJi0yMkZwIvenmtCA1LMAr2XifvGS/Ulac7Qh5vFzfw562cWC+IOI+LyQZAcPgr+CXphJhm8QQ+O454ItXurQX6oPlA2rNfF36fnxYss1ZvUYC80wWTi9k2+/XR3IoQXZHKCFsJiwyKO2CY+j
Los atacantes utilizan Cron, un programador de trabajo que establece comandos y tareas para que se ejecuten periódicamente, a fin de ejecutar el malware de criptominería cada hora. Como otras herramientas de ataque persistente "Living off the Land", descargan un archivo de script /etc/rc.local que inicia el malware de criptominería con cada inicio del sistema:
/bin/dhpcd -o ca.minexmr.com:4444 -B >/dev/null 2>/dev/null exit 0
Neutralizando la actividad de la competencia
Los atacantes se esfuerzan en acabar con la actividad de otros agentes de amenazas para maximizar los recursos de las máquinas y, en consecuencia, maximizar los beneficios. Con este propósito, ejecutan dos scripts desde el directorio /dev/shm: /dev/shm/knrm y /dev/shm/r, pero antes verifican los permisos de ejecución de este directorio (de nuevo, mediante el programa "Hello, World").
La carpeta /dev/shm es un sistema de archivos tmpfs , que mantiene todos sus archivos en la memoria virtual en lugar de en un dispositivo de almacenamiento persistente. Guardando y ejecutando scripts desde /dev/shm, el malware no deja rastro de estos archivos en el sistema de archivos.
Los scripts Bash eliminan a fondo la competencia; utilizaremos /dev/shm/r para demostrar cómo lo hacen. El script comienza consultando los procesos que más recursos consumen en el sistema y finaliza los que ocupan mucha RAM para asegurar que haya más memoria disponible para su propia actividad. A continuación, elimina los archivos Cron que están asociados con otras campañas de ataque, como XorDdos, Tsunami y aliyun.one.
/etc/cron.hourly/gcc.sh
/etc/cron.hourly/cron.sh
/etc/cron.hourly/gcc4.sh/lib/libudev.so
El script elimina archivos asociados con las campañas de malware mencionadas anteriormente (y otras).
/root/pty
/tmp/bash
/dev/shm/bash
/var/tmp/bash
/var/lock/bash
/var/run/bash
/bin/httpsd
/lib/udev/udev
/lib/udev/debug
/root/sysem
/root/systma
/etc/jourxlv
/tmp/sysem
/tmp/su
'/tmp/ddgs.*'
/root/pty10
/root/pty4
/root/xmr64
/usr/local/sbin/t
/usr/local/sbin/rsync
/etc/ceurnad
Además, elimina los procesos relacionados con malware, como Xm64, Ceurnad, /tmp/samba y Sc64u, si se están ejecutando.
Para recopilar información sobre competidores nuevos o desconocidos, el script ejecuta el comando atq para mostrar la lista de tareas pendientes, así como los archivos de varios directorios del sistema. Después de filtrar los patrones de archivo conocidos (dump, docker, mount, etc.), el atacante obtiene una lista de archivos que pueden ser malware rival.
Detección y mitigación
El uso de servidores SSH es muy común. Por desgracia, también son comunes los servidores SSH que se ejecutan con privilegios elevados y a los que se accede mediante contraseñas básicas. Los ataques dirigidos a SSH, como dhpcd, se pueden bloquear fácilmente mediante la configuración de SSH para que funcione exclusivamente con claves privadas y públicas, al tiempo que se bloquean todos los intentos de inicio de sesión basados en contraseña.
Para aplicar esto, modifique el archivo de configuración de SSH (/etc/ssh/sshd_config) para que tenga las siguientes dos líneas:
PermitRootLogin no
PasswordAuthentication no
Para bloquear la actividad de criptominería de dhpcd, considere bloquear el puerto TCP saliente 4444, que se ha utilizado en una cantidad significativa de incidentes de ataque, según hemos observado. Además, bloquee todas las conexiones con dominios conocidos de pools de minería. Puede encontrar los relacionados con dhpcd en nuestro repositorio de IOC.
Para detectar si su sistema está infectado, ejecute nuestro script de detección para localizar rastros de dhpcd.
Conclusiones
dhpcd es una campaña de criptominería que utiliza técnicas probadas: se propaga a través de SSH, ejecuta un malware de criptominería basado en el conocido XMRig y utiliza tácticas conocidas para configurar puertas traseras y eliminar competidores.
Esta campaña demuestra una mejor OPSEC que la mayoría de las campañas de ataque que observamos, mediante la incorporación de Tor en el canal de infección. El uso de Tor evita que los defensores rastreen la infraestructura y los orígenes del ataque, lo que consigue que toda la operación sea más estable y resistente.
El uso de Tor representa, en parte, un arma de doble filo: las organizaciones utilizan Tor para favorecer el anonimato, la privacidad y la seguridad, pero en consecuencia, al instalar nodos de salida, se convierten en parte de la cadena de infección. Aunque estas organizaciones no resulten necesariamente infectadas, proporcionan un mecanismo que se utiliza para propagar el malware a través de Internet, ayudando a los atacantes a mantenerse anónimos y protegidos.
dhpcd nos demuestra una vez más que incluso las campañas de ataque más básicas y simples, las que se caracterizan por ataques de diccionario realizados para comprometer la seguridad y que intercambian los nombres de los archivos con el fin de reducir el riesgo de detección, aún así consiguen infectar redes y obtener ganancias. Además, estas campañas se desarrollan y mantienen para aumentar la escala y el alcance de las ganancias potenciales. Sin embargo, sus tácticas, consejos y procedimientos simples sugieren que, incluso con medidas de protección básicas, los defensores de alertas pueden aumentar la seguridad de sus sistemas.
Apéndice: indicadores de riesgo
La siguiente es una lista parcial de IOC. Encuentre la lista completa en nuestro repositorio.
Nombres de archivo
/bin/[a-z0-9]{26} (programa "Hello World")
/bin/dhpcd
Dominios
fr14[.]minexmr[.]com
ca61[.]minexmr[.]com
sg97[.]minexmr[.]com
fr13[.]minexmr[.]com
us40[.]minexmr[.]com
pool[.]supportxmr[.]com
Hashes de archivos
eb808932714c9533962e129e61d84c29536497e62b2a7d89dce3376d882c6965
e971fa0c392a9f43c37dccfdd4f8e6bc109e162716d9b206170f7bb133634ffd
76005592ad7d8901c64a5cfbcdde589a960ba35c9672da6182d131cd67ae0c97
2cca764d24212f8fc58780b9135740929f38b45bcd5fc82c4a2ff47e90890d06
3ea8cc0977e5542053353bcf3e58de947dd727259369707a13a4d0c8f14b7486