Empresa Guardicore, especializada na protección de centros de datos e sistemas cloud,
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.
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 (
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
signos como a presenza dunha conexión de escoita no porto 1234, a presenza
Fonte: opennet.ru