Identificouse o gusano FritzFrog, infectando servidores a través de SSH e construíndo unha botnet descentralizada

Empresa Guardicore, especializada na protección de centros de datos e sistemas cloud, revelado FritzFrog, un novo malware de alta tecnoloxía que ataca servidores baseados en Linux. FritzFrog combina un verme que se propaga mediante un ataque de forza bruta en servidores cun porto SSH aberto e compoñentes para construír unha botnet descentralizada que funcione sen nós de control e non teña un único punto de fallo.

Para construír unha botnet, utilízase un protocolo P2P propietario, no que os nodos interactúan entre si, coordinan a organización dos ataques, apoian o funcionamento da rede e supervisan o estado dos outros. Atópanse novas vítimas ao realizar un ataque de forza bruta en servidores que aceptan solicitudes a través de SSH. Cando se detecta un servidor novo, búscase nun dicionario de combinacións típicas de inicios de sesión e contrasinais. O control pódese levar a cabo a través de calquera nodo, o que dificulta a identificación e o bloqueo dos operadores de botnets.

Segundo os investigadores, a botnet xa conta cuns nodos 500, entre os que se inclúen os servidores de varias universidades e unha gran empresa ferroviaria. Nótase que os principais obxectivos do ataque son redes de institucións educativas, centros médicos, axencias gobernamentais, bancos e empresas de telecomunicacións. Despois de que o servidor se vexa comprometido, organízase nel o proceso de extracción da moeda criptográfica Monero. A actividade do malware en cuestión foi rastrexada desde xaneiro de 2020.

O especial de FritzFrog é que mantén todos os datos e o código executable só na memoria. Os cambios no disco consisten só en engadir unha nova chave SSH ao ficheiro authorized_keys, que se usa posteriormente para acceder ao servidor. Os ficheiros do sistema non se modifican, o que fai que o verme sexa invisible para os sistemas que comproban a integridade mediante sumas de verificación. A memoria tamén almacena dicionarios para contrasinais de forzamento bruto e datos para a minería, que se sincronizan entre nós mediante o protocolo P2P.

Os compoñentes maliciosos están camuflados como procesos ifconfig, libexec, php-fpm e nginx. Os nodos de botnet supervisan o estado dos seus veciños e, se o servidor se reinicia ou incluso se reinstala o sistema operativo (se un ficheiro authorized_keys modificado foi transferido ao novo sistema), reactivan compoñentes maliciosos no host. Para a comunicación, utilízase SSH estándar: o malware ademais lanza un "netcat" local que se une á interface localhost e escoita o tráfico no porto 1234, ao que acceden hosts externos a través dun túnel SSH, utilizando unha chave de authorized_keys para conectarse.

Identificouse o gusano FritzFrog, infectando servidores a través de SSH e construíndo unha botnet descentralizada

O código do compoñente FritzFrog está escrito en Go e execútase en modo multiproceso. O malware inclúe varios módulos que se executan en diferentes fíos:

  • Cracker: busca contrasinais en servidores atacados.
  • CryptoComm + Parser: organiza unha conexión P2P cifrada.
  • CastVotes é un mecanismo para seleccionar conxuntamente hosts obxectivo para o ataque.
  • TargetFeed: recibe unha lista de nodos para atacar dos nodos veciños.
  • DeployMgmt é unha implementación dun verme que distribúe código malicioso a un servidor comprometido.
  • De propiedade: responsable de conectarse a servidores que xa executan código malicioso.
  • Montar: ensambla un ficheiro na memoria a partir de bloques transferidos por separado.
  • Antivir: un módulo para suprimir malware da competencia, identifica e finaliza os procesos coa cadea "xmr" que consumen recursos da CPU.
  • Libexec é un módulo para minar a criptomoeda Monero.

O protocolo P2P usado en FritzFrog admite uns 30 comandos responsables de transferir datos entre nodos, executar scripts, transferir compoñentes de malware, consultar o estado, intercambiar rexistros, lanzar proxies, etc. A información transmítese a través dunha canle cifrada separada con serialización en formato JSON. O cifrado utiliza cifrado AES asimétrico e codificación Base64. O protocolo DH úsase para o intercambio de claves (Diffie-Hellman). Para determinar o estado, os nodos intercambian constantemente solicitudes de ping.

Todos os nodos de botnet manteñen unha base de datos distribuída con información sobre sistemas atacados e comprometidos. Os obxectivos de ataque están sincronizados en toda a botnet; cada nodo ataca un obxectivo separado, é dicir. dous nodos de botnet diferentes non atacarán o mesmo host. Os nós tamén recollen e transmiten estatísticas locais aos veciños, como o tamaño da memoria libre, o tempo de actividade, a carga da CPU e a actividade de inicio de sesión SSH. Esta información utilízase para decidir se se inicia o proceso de minería ou se usa o nodo só para atacar outros sistemas (por exemplo, a minería non se inicia en sistemas cargados ou sistemas con conexións de administrador frecuentes).

Para identificar a FritzFrog, os investigadores propuxeron un sinxelo script de shell. Para determinar danos no sistema
signos como a presenza dunha conexión de escoita no porto 1234, a presenza chave maliciosa en authorized_keys (a mesma chave SSH está instalada en todos os nodos) e a presenza na memoria de procesos en execución “ifconfig”, “libexec”, “php-fpm” e “nginx” que non teñen ficheiros executables asociados (“/proc/ /exe" apunta a un ficheiro remoto). Un sinal tamén pode ser a presenza de tráfico no porto de rede 5555, que ocorre cando o malware accede ao grupo típico web.xmrpool.eu durante a extracción da moeda criptográfica Monero.

Fonte: opennet.ru

Engadir un comentario