Se ha identificado el gusano FritzFrog, que infecta servidores a través de SSH y crea una botnet descentralizada

Guardicore empresa, especializada en la protección de centros de datos y sistemas en la nube, revelado FritzFrog, un nuevo malware de alta tecnología que ataca servidores basados ​​en Linux. FritzFrog combina un gusano que se propaga mediante un ataque de fuerza bruta a servidores con un puerto SSH abierto y componentes para construir una botnet descentralizada que opera sin nodos de control y no tiene un único punto de falla.

Para construir una botnet, se utiliza un protocolo P2P propietario, en el que los nodos interactúan entre sí, coordinan la organización de ataques, respaldan el funcionamiento de la red y monitorean el estado de cada uno. Las nuevas víctimas se encuentran realizando un ataque de fuerza bruta a servidores que aceptan solicitudes vía SSH. Cuando se detecta un nuevo servidor, se busca en un diccionario de combinaciones típicas de inicios de sesión y contraseñas. El control se puede realizar a través de cualquier nodo, lo que dificulta la identificación y bloqueo de los operadores de botnets.

Según los investigadores, la botnet ya cuenta con unos 500 nodos, incluidos los servidores de varias universidades y de una gran empresa ferroviaria. Cabe señalar que los principales objetivos del ataque son redes de instituciones educativas, centros médicos, agencias gubernamentales, bancos y empresas de telecomunicaciones. Una vez que el servidor se ve comprometido, en él se organiza el proceso de extracción de la criptomoneda Monero. La actividad del malware en cuestión se ha rastreado desde enero de 2020.

Lo especial de FritzFrog es que guarda todos los datos y el código ejecutable sólo en la memoria. Los cambios en el disco consisten únicamente en agregar una nueva clave SSH al archivo autorizado_keys, que posteriormente se utiliza para acceder al servidor. Los archivos del sistema no se modifican, lo que hace que el gusano sea invisible para los sistemas que verifican la integridad mediante sumas de verificación. La memoria también almacena diccionarios para contraseñas de fuerza bruta y datos para minería, que se sincronizan entre nodos mediante el protocolo P2P.

Los componentes maliciosos se camuflan como procesos ifconfig, libexec, php-fpm y nginx. Los nodos de botnet monitorean el estado de sus vecinos y, si se reinicia el servidor o incluso se reinstala el sistema operativo (si se transfirió un archivo autorizado_keys modificado al nuevo sistema), reactivan los componentes maliciosos en el host. Para la comunicación, se utiliza SSH estándar: el malware además lanza un "netcat" local que se vincula a la interfaz del host local y escucha el tráfico en el puerto 1234, al que los hosts externos acceden a través de un túnel SSH, utilizando una clave de Authorized_keys para conectarse.

Se ha identificado el gusano FritzFrog, que infecta servidores a través de SSH y crea una botnet descentralizada

El código del componente FritzFrog está escrito en Go y se ejecuta en modo multiproceso. El malware incluye varios módulos que se ejecutan en diferentes subprocesos:

  • Cracker: busca contraseñas en servidores atacados.
  • CryptoComm + Parser: organiza una conexión P2P cifrada.
  • CastVotes es un mecanismo para seleccionar conjuntamente hosts objetivo para el ataque.
  • TargetFeed: recibe una lista de nodos para atacar desde nodos vecinos.
  • DeployMgmt es una implementación de un gusano que distribuye código malicioso a un servidor comprometido.
  • De propiedad: responsable de conectarse a servidores que ya están ejecutando código malicioso.
  • Ensamblar: ensambla un archivo en la memoria a partir de bloques transferidos por separado.
  • Antivir: un módulo para suprimir el malware de la competencia, identifica y finaliza procesos con la cadena "xmr" que consumen recursos de la CPU.
  • Libexec es un módulo para minar la criptomoneda Monero.

El protocolo P2P utilizado en FritzFrog admite alrededor de 30 comandos responsables de transferir datos entre nodos, ejecutar scripts, transferir componentes de malware, sondear el estado, intercambiar registros, iniciar servidores proxy, etc. La información se transmite a través de un canal cifrado separado con serialización en formato JSON. El cifrado utiliza cifrado AES asimétrico y codificación Base64. El protocolo DH se utiliza para el intercambio de claves (Diffie-Hellman). Para determinar el estado, los nodos intercambian constantemente solicitudes de ping.

Todos los nodos de la botnet mantienen una base de datos distribuida con información sobre los sistemas atacados y comprometidos. Los objetivos de los ataques se sincronizan en toda la botnet: cada nodo ataca a un objetivo independiente, es decir. dos nodos de botnet diferentes no atacarán al mismo host. Los nodos también recopilan y transmiten estadísticas locales a los vecinos, como el tamaño de la memoria libre, el tiempo de actividad, la carga de la CPU y la actividad de inicio de sesión SSH. Esta información se utiliza para decidir si iniciar el proceso de minería o usar el nodo solo para atacar otros sistemas (por ejemplo, la minería no comienza en sistemas cargados o sistemas con conexiones de administrador frecuentes).

Para identificar a FritzFrog, los investigadores han propuesto un método simple script de shell. Para determinar el daño del sistema
signos como la presencia de una conexión de escucha en el puerto 1234, la presencia clave maliciosa en claves_autorizadas (la misma clave SSH está instalada en todos los nodos) y la presencia en memoria de procesos en ejecución “ifconfig”, “libexec”, “php-fpm” y “nginx” que no tienen archivos ejecutables asociados (“/proc/ /exe" apunta a un archivo remoto). Una señal también puede ser la presencia de tráfico en el puerto de red 5555, que se produce cuando el malware accede al típico pool web.xmrpool.eu durante la extracción de la criptomoneda Monero.

Fuente: opennet.ru

Añadir un comentario