Dark background with blue code overlay
Blog

FritzFrog: botnet P2P de volta à cena

Akamai Wave Blue

escrito por

Ben Barnea, Shiran Guez, e Ophir Harpaz

February 10, 2022

Akamai Wave Blue

escrito por

Ben Barnea

Ben Barnea é pesquisador de segurança da Akamai com interesse e experiência na realização de pesquisa de segurança de baixo nível e pesquisa de vulnerabilidades em várias arquiteturas, incluindo Windows, Linux, Internet das coisas e dispositivos móveis. Ele gosta de aprender como mecanismos complexos funcionam e, o mais importante, como eles falham.

Shiran Guez

escrito por

Shiran Guez

Shiran Guez atua no setor de redes e telecomunicações desde o início de 2000. Entusiasta da tecnologia, ele trabalha com a mentalidade empreendedora e a atitude de crescimento. Shiran tem vasta experiência em tecnologias WAN e LAN, integração de rede e aplicativos, virtualização, otimização de WAN/QoS e monitoramento.

Ophir Harpaz

escrito por

Ophir Harpaz

Ophir lidera a equipe de pesquisa de segurança no Grupo de segurança empresarial da Akamai.

Resumo executivo

  • FritzFrog é uma campanha de botnet de ponto a ponto descoberta pelo Guardicore Labs (agora Akamai Threat Labs) em agosto de 2020

  • O botnet descentralizado tem como alvo qualquer dispositivo que exponha um servidor SSH (instâncias de nuvem, servidores de data center, roteadores etc.) e é capaz de executar qualquer carga mal-intencionada em nós infectados

  • Sua arquitetura ponto a ponto e seu código proprietário demonstram um alto nível de sofisticação

  • Recentemente, ela ressurgiu e mostrou um crescimento de 10 vezes em sua taxa de infecção dentro de um mês, comprometendo servidores nos setores de saúde, educação e governo

  • 1.500 hosts distintos foram infectados desde o ressurgimento do botnet, a maioria deles na China

  • O malware Golang que está sendo disseminado adiciona nova funcionalidade ao botnet, incluindo o uso de uma rede proxy e o direcionamento a servidores do WordPress

  • A recente rodada de ataques fornece mais evidências sobre as origens do FritzFrog, indicando um possível vínculo com um agente que opera na China ou que se disfarça de chinês

  • O Akamai Threat Labs atualizou a ferramenta de detecção FritzFrog para lidar com a versão mais recente do malware

FritzFrog resumidamente FritzFrog resumidamente

FritzFrog v1 – uma recapitulação rápida

O FritzFrog é um botnet ponto a ponto, o que significa que seu servidor de comando e controle não está limitado a uma única máquina centralizada, mas pode ser feito a partir de cada máquina em sua rede distribuída. Em outras palavras, cada host que executa o processo de malware se torna parte da rede e é capaz de enviar, receber e executar os comandos para controlar máquinas na rede.

O FritzFrog se propaga via SSH. Depois de encontrar as credenciais de um servidor usando uma técnica simples (porém agressiva) de força bruta, ele estabelece uma sessão SSH com a nova vítima e descarta o malware executável no host. Em seguida, o malware começa a escutar e a aguardar comandos. Esses comandos incluem a troca de destinos, o compartilhamento das informações de máquinas comprometidas e a transferência de arquivos, bem como a execução de scripts e de cargas úteis binárias. A lista completa de comandos está disponível na nossa publicação anterior no blog.

Consideramos o FritzFrog um botnet de "última geração" devido a uma combinação de propriedades que o tornam único no cenário de ameaças:

  • Atualização constante: bancos de dados de alvos e máquinas violadas são trocados perfeitamente

  • Agressivo: a força bruta é baseada em um dicionário extenso; por comparação, o DDG, outro botnet recém-descoberto de P2P, usou apenas o nome de usuário "root"

  • Eficiente: os alvos são distribuídos uniformemente entre os nós

  • Proprietário: o protocolo P2P é completamente proprietário, e não conta com nenhum protocolo P2P conhecido, como μTP

FritzFrog v2: o ressurgimento

Logo após publicar os detalhes sobre o FritzFrog em agosto de 2020, a equipe do Guardicore Labs (agora Akamai Threat Labs) observou uma queda no número de incidentes de ataque. No entanto, no início de dezembro de 2021, começamos a ver um aumento nos ataques à nossa rede global de sensores.

Um ataque FritzFrog começa com uma força bruta SSH e continua com um arquivo sendo descartado e executado. Esse arquivo começa imediatamente a escutar na porta 1234 e a verificar milhares de endereços IP da Internet nas portas 22 e 2222.

Uma diferença entre os antigos ataques FritzFrog e os novos é o nome do processo mal-intencionado. Na primeira rodada de ataques, o processo mal-intencionado foi chamado de ifconfig ou nginx. Desta vez, os operadores do FritzFrog escolheram o nome apache2.

Começamos a monitorar a nova variante e vimos um aumento surpreendente no número de ataques FritzFrog, que chegaram ao pico de 500 incidentes por dia.

 

Número de incidentes de ataque FritzFrog vistos por nossos sensores desde sua primeira aparição Número de incidentes de ataque FritzFrog vistos por nossos sensores desde sua primeira aparição

 

Análise da vítima

Como parte da nossa investigação sobre a primeira campanha do FritzFrog, desenvolvemos uma ferramenta chamada Frogger. O Frogger nos permite reunir informações sobre hosts infectados, incluindo seu tempo de atividade, hashrate, pares e hasrate, se um criptominerador estiver em execução. Este programa usa o endereço IP de um nó infectado e consulta o host por um canal de comunicação criptografado para receber informações sobre seu status. Ao fazer isso, podemos saber mais sobre o nó e outros nós aos quais ele está conectado. Esse processo aproveita a infraestrutura do botnet para fazer isso.

Nossa análise de vítimas foi baseada em duas fontes: os endereços IP das máquinas que atacaram nossos sensores e as informações obtidas pelo Frogger. Ou seja, começamos com a lista de IPs de invasores vistos por nossos sensores e, em seguida, expandimos essa lista consultando cada um por seus pares, usando o Frogger, recursivamente.

Os gráficos abaixo mostram o número diário de endereços IP que atacaram nossos sensores e a diferença no número de invasores entre dias consecutivos. O aumento do número de nós atacantes (máquinas vítimas que executam o malware) é perturbador.

 

Número de nós atacantes por dia, conforme capturado por nossos sensores de ameaça Número de nós atacantes por dia, conforme capturado por nossos sensores de ameaça
 Gráfico que mostra a diferença no número de nós atacantes entre dias consecutivos Gráfico que mostra a diferença no número de nós atacantes entre dias consecutivos

 

Durante o intervalo de tempo da segunda campanha, o FritzFrog conseguiu infectar mais de 1.500 hosts distintos. Eram máquinas de servidor pertencentes a organizações de vários tamanhos e setores, incluindo saúde, ensino superior e governo. Encontramos máquinas infectadas em uma rede europeia de canais de televisão, um fabricante russo de equipamentos de saúde e várias universidades no leste da Ásia. Como o mapa mostra, uma grande concentração de máquinas vítimas foi encontrada na China.

 

A maioria das vítimas fica ao norte da linha do equador, com alta atração para a China A maioria das vítimas fica ao norte da linha do equador, com alta atração para a China

 

Novos recursos de malware

O binário FritzFrog é escrito em Golang e pode ser compilado para ser executado em muitas arquiteturas diferentes. Ele é empacotado usando UPX e geralmente é executado sob um dos quatro nomes de processo: ifconfig, nginx, apache2 ou php-fpm. Fornecemos uma análise completa do malware em nossa publicação anterior, e, portanto, focaremos nas novas amostras e no que elas trazem de novo.

O FritzFrog é atualizado diariamente, às vezes várias vezes por dia. A maioria das novas versões envolve correções de bugs, mas algumas versões adicionam novos recursos ao malware.

Preparação para direcionamento ao WordPress

O FritzFrog lançou uma nova versão que implementa a infraestrutura para rastrear servidores do WordPress. Ela contém funções responsáveis por adicionar e remover entradas de listas intituladas Wordpress e WordpressTargetsTTL. O trecho de código desmontado abaixo mostra a implementação de um novo comando P2P, put wordpress, que adiciona uma nova entrada à lista de alvos do WordPress. No momento em que este relatório foi escrito, essas listas, que são salvas em todos os nós infectados, ainda estão vazias.

 

O malware não contém nenhum módulo capaz de quebrar ou identificar alvos WordPress. Com base nisso, presumimos que o código seja uma preparação para novas versões, que serão capazes de comprometer esses alvos e usá-los para fins diferentes de mineração, como vazamentos de informações, ransomware etc.

Cadeia de proxy Tor

O FritzFrog pode fazer proxy de conexões SSH de saída usando a cadeia de proxy Tor definindo o proxy para conexões SSH com a porta local 9050. A cadeia de proxy Tor é uma rede de nós que fornece aos seus usuários melhor privacidade e mascaramento, criando um caminho baseado em encapsulamento da origem ao destino e cada nó só está ciente de seus nós vizinhos diretos. 

Ao fazer proxy de solicitações para a porta local 9050, o FritzFrog usa a cadeia de proxy Tor para se conectar a dispositivos SSH próprios. Um dispositivo próprio veria a solicitação de entrada como proveniente do último nó da cadeia de proxy. Isso pode ser usado para ocultar o endereço dos nós infectados atuais. Até hoje, embora a funcionalidade exista, ainda não vimos esse recurso sendo usado pelo malware.

SCP

O FritzFrog agora usa SCP para se copiar em um servidor remoto comprometido. Isso é diferente da primeira versão, na qual o executável do malware era deixado em uma nova vítima usando o comando cat em uma sessão SSH estabelecida. A nova implementação usa uma biblioteca SCP pública escrita em Golang no GitHub. Não foi possível determinar nenhuma vantagem significativa de um método em relação ao outro. No entanto, é curioso que os escritores da biblioteca SCP estejam localizados na China. 

Lista de bloqueio

A versão inicial do FritzFrog implementou uma lista de bloqueio para excluir máquinas específicas de serem violadas pelo módulo de cracker (força bruta). Enquanto um comando especial P2P, putblentry, permite a inserção dinâmica de entradas nessa lista, as novas versões codificam várias entradas antecipadamente.

Algumas dessas entradas especificam um nome Unix, e algumas delas um endereço IP, mas nunca ambos.

Entradas da lista de bloqueios codificadas nas novas amostras do FritzFrog

[
{"Endereço": "",
 "Uname_match": "[redacted]dddz.me 3.10.0-693.2.2.el7.x86_64 #1 SMP Tue Sep 12 22:26:13 UTC 2017"},
{"Endereço": "",
"Uname_match": "[redacted]-1 4.4.0-151-generic #178-Ubuntu SMP Tue Jun 11 08: 30: 22 UTC 2019"},
{"Endereço": "",
"Uname_match": "[redacted].amzn2.x86_64 #1 SMP Mon Jun 18 22: 33: 07 UTC 2018 x86_64 GNU/Linux"},
{"Endereço": "",
"Uname_match": "[redacted]-generic #113-Ubuntu SMP Thu Jul 9 23: 41: 39 UTC 2020"},
{"Endereço": "",
"Uname_match": "[redacted] raspberrypi 4.4.32-v7+ #924 SMP Tue Nov 15 18: 11: 28 GMT 2016 armv7l GNU/Linux"},
{"Endereço": "",
"Uname_match": [redacted] 3.10.0-123.4.4.el7.x86_64 #1 SMP Fri Jul 25 05: 07: 12 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux"},
{"Endereço": "",
"Uname_match": [redacted] 4.18.0-193.28.1.el8_2.x86_64 #1 SMP Thu Oct 22 00: 20: 22 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux"},
{"Endereço": "[redacted].24: 22",
"Uname_match": ""},
{"Endereço": "[redacted].88: 22",
"Uname_match": ""},
{"Endereço": "[redacted].26: 22",
"Uname_match": ""}]

 

As entradas sugerem que os operadores estão procurando evitar infectar sistemas de baixo custo com poucos recursos, como dispositivos Raspberry Pi ou imagens EC2 de baixo recurso no AWS.

Um IP na lista de bloqueios é da Rússia. Ele tem várias portas abertas e uma longa lista de vulnerabilidades não corrigidas, portanto, pode ser um honeypot. Além disso, uma segunda entrada aponta para um sinkhole de botnet de código aberto. Essas duas entradas sugerem que os operadores estão tentando escapar da detecção e da análise.

Dois dos endereços IP são baseados geograficamente nos Estados Unidos. Uma entrada bloqueia a Universidade de Maryland, por motivos que não são claros, e a segunda exibe uma piada prática, ou um aviso ao navegar por ela, aparentemente ciente de uma possível investigação sobre o malware.

O aviso exibido diz "a curiosidade matou o gato" O aviso exibido diz "a curiosidade matou o gato"

 

Origens e atribuição

Alterações e adições recentes a esta campanha nos permitiram examinar as possíveis origens desse malware. Embora não possamos ter certeza de sua verdadeira origem, acreditamos que compartilhar essas informações pode ser valioso. 

A primeira evidência vem de uma das bibliotecas recém-adicionadas compiladas no malware FritzFrog chamada scp, que implementa o Protocolo de cópia segura para transferências de arquivos via SSH. A biblioteca é escrita em Go e seu código é compartilhado no GitHub em um repositório por um usuário localizado em Xangai. Existe uma ramificação nesse repositório, que foi feita por um segundo indivíduo em Xangai.

Outra evidência que conectada à China vem da atividade de criptomineração do FritzFrog. Nossa equipe de pesquisa conseguiu encontrar novos endereços de carteira, bem como novos pools de mineração usados no processo de criptomineração. Um dos endereços de carteiras recém-observados (fornecidos abaixo) também foi usado como parte da campanha de botnet Mozi, cujos autores foram recentemente presos na China.

Endereço de carteira Monero do FritzFrog conectado ao Mozi

47BD6QNfkWf8ZMQSdqp2tY1AdG8ofsEPf4mcDp1YB4AX32hUjoLjuDaNrYzXk7cQcoPBzAuQrmQTgNgpo6XPqSBLCnfsjaV

Esses pontos de evidência, embora não sejam incriminatórios, nos levam a acreditar que existe uma possível ligação para um agente que opera na China, ou um agente disfarçado de chinês. Por fim, o monitoramento de dados de ataque demonstrou um alto nível de atividade na China e em torno dela durante toda a vida útil da campanha. Neste momento, aproximadamente 37% dos nós infectados parecem estar localizados na China. 

Prevenção e mitigação

 

Ferramenta de detecção do FritzFrog

A Akamai oferece um script de detecção do FritzFrog para ser executado em servidores SSH. Ele procura os seguintes indicadores do FritzFrog:

  • Processos em execução nomeados nginx, ifconfig, php-fpm, apache2 ou libexec, cujo arquivo executável não existe mais no sistema de arquivos (como visto abaixo)

  • Porta de escuta 1234

Além disso, o tráfego TCP pela porta 5555 pode indicar o tráfego de rede para o pool Monero.

Recomendações

  • Mantenha sempre os sistemas atualizados e corrigidos

  • Implemente o login sem senha usando um sistema de rotação e de gerenciamento de chaves de alta segurança

  • Ative a auditoria de login do sistema com alertas

  • Monitore o arquivo authorized_hosts no Linux

  • Configure a lista de permissão explícita de login SSH

  • Desative o acesso SSH raiz

  • Habilite a proteção de DNS baseada em nuvem da Akamai com ameaças e aplicações de negócios não relacionados, como mineração de moedas definida como bloquear  



Akamai Wave Blue

escrito por

Ben Barnea, Shiran Guez, e Ophir Harpaz

February 10, 2022

Akamai Wave Blue

escrito por

Ben Barnea

Ben Barnea é pesquisador de segurança da Akamai com interesse e experiência na realização de pesquisa de segurança de baixo nível e pesquisa de vulnerabilidades em várias arquiteturas, incluindo Windows, Linux, Internet das coisas e dispositivos móveis. Ele gosta de aprender como mecanismos complexos funcionam e, o mais importante, como eles falham.

Shiran Guez

escrito por

Shiran Guez

Shiran Guez atua no setor de redes e telecomunicações desde o início de 2000. Entusiasta da tecnologia, ele trabalha com a mentalidade empreendedora e a atitude de crescimento. Shiran tem vasta experiência em tecnologias WAN e LAN, integração de rede e aplicativos, virtualização, otimização de WAN/QoS e monitoramento.

Ophir Harpaz

escrito por

Ophir Harpaz

Ophir lidera a equipe de pesquisa de segurança no Grupo de segurança empresarial da Akamai.