O worm FritzFrog foi identificado, infectando servidores via SSH e construindo uma botnet descentralizada

Empresa Guardicore, especializada na proteção de data centers e sistemas em nuvem, revelado FritzFrog, um novo malware de alta tecnologia que ataca servidores baseados em Linux. FritzFrog combina um worm que se espalha por meio de um ataque de força bruta em servidores com uma porta SSH aberta e componentes para construir uma botnet descentralizada que opera sem nós de controle e não tem um ponto único de falha.

Para construir uma botnet, é utilizado um protocolo P2P proprietário, no qual os nós interagem entre si, coordenam a organização dos ataques, apoiam o funcionamento da rede e monitoram o status uns dos outros. Novas vítimas são encontradas realizando um ataque de força bruta em servidores que aceitam solicitações via SSH. Quando um novo servidor é detectado, um dicionário de combinações típicas de logins e senhas é pesquisado. O controle pode ser realizado através de qualquer nó, o que dificulta a identificação e o bloqueio dos operadores de botnets.

Segundo os pesquisadores, a botnet já conta com cerca de 500 nós, incluindo servidores de diversas universidades e de uma grande empresa ferroviária. Nota-se que os principais alvos do ataque são redes de instituições de ensino, centros médicos, agências governamentais, bancos e empresas de telecomunicações. Depois que o servidor é comprometido, o processo de mineração da criptomoeda Monero é organizado nele. A atividade do malware em questão foi rastreada desde janeiro de 2020.

A particularidade do FritzFrog é que ele mantém todos os dados e códigos executáveis ​​apenas na memória. As alterações no disco consistem apenas em adicionar uma nova chave SSH ao arquivoauthorized_keys, que é posteriormente usada para acessar o servidor. Os arquivos do sistema não são alterados, o que torna o worm invisível para sistemas que verificam a integridade por meio de somas de verificação. A memória também armazena dicionários para senhas de força bruta e dados para mineração, que são sincronizados entre os nós usando o protocolo P2P.

Componentes maliciosos são camuflados como processos ifconfig, libexec, php-fpm e nginx. Os nós do botnet monitoram o status de seus vizinhos e, se o servidor for reinicializado ou mesmo o sistema operacional for reinstalado (se um arquivo autorizado_keys modificado for transferido para o novo sistema), eles reativarão componentes maliciosos no host. Para comunicação, o SSH padrão é usado - o malware também lança um “netcat” local que se liga à interface localhost e escuta o tráfego na porta 1234, que os hosts externos acessam através de um túnel SSH, usando uma chave deauthorized_keys para se conectar.

O worm FritzFrog foi identificado, infectando servidores via SSH e construindo uma botnet descentralizada

O código do componente FritzFrog é escrito em Go e executado em modo multithread. O malware inclui vários módulos executados em diferentes threads:

  • Cracker - procura senhas em servidores atacados.
  • CryptoComm + Parser - organiza uma conexão P2P criptografada.
  • CastVotes é um mecanismo para selecionar conjuntamente hosts alvo para ataque.
  • TargetFeed - Recebe uma lista de nós para atacar de nós vizinhos.
  • DeployMgmt é uma implementação de um worm que distribui código malicioso para um servidor comprometido.
  • De propriedade - responsável por conectar-se a servidores que já executam código malicioso.
  • Montar - monta um arquivo na memória a partir de blocos transferidos separadamente.
  • Antivir - um módulo para suprimir malware concorrente, identifica e encerra processos com a string “xmr” que consomem recursos da CPU.
  • Libexec é um módulo para mineração da criptomoeda Monero.

O protocolo P2P usado no FritzFrog suporta cerca de 30 comandos responsáveis ​​pela transferência de dados entre nós, execução de scripts, transferência de componentes de malware, pesquisa de status, troca de logs, lançamento de proxies, etc. As informações são transmitidas por um canal criptografado separado com serialização no formato JSON. A criptografia usa cifra AES assimétrica e codificação Base64. O protocolo DH é usado para troca de chaves (Diffie-Hellman). Para determinar o estado, os nós trocam constantemente solicitações de ping.

Todos os nós da botnet mantêm um banco de dados distribuído com informações sobre sistemas atacados e comprometidos. Os alvos de ataque são sincronizados em toda a botnet – cada nó ataca um alvo separado, ou seja, dois nós de botnet diferentes não atacarão o mesmo host. Os nós também coletam e transmitem estatísticas locais aos vizinhos, como tamanho de memória livre, tempo de atividade, carga de CPU e atividade de login SSH. Essas informações são usadas para decidir se iniciar o processo de mineração ou usar o nó apenas para atacar outros sistemas (por exemplo, a mineração não inicia em sistemas carregados ou em sistemas com conexões frequentes de administrador).

Para identificar o FritzFrog, os pesquisadores propuseram um simples script de shell. Para determinar danos ao sistema
sinais como a presença de uma conexão de escuta na porta 1234, a presença chave maliciosa em chaves_autorizadas (a mesma chave SSH é instalada em todos os nós) e a presença na memória dos processos em execução “ifconfig”, “libexec”, “php-fpm” e “nginx” que não possuem arquivos executáveis ​​associados (“/proc/ /exe" aponta para um arquivo remoto). Um sinal também pode ser a presença de tráfego na porta de rede 5555, que ocorre quando o malware acessa o típico pool web.xmrpool.eu durante a mineração da criptomoeda Monero.

Fonte: opennet.ru

Adicionar um comentário