Perfctl está por trás de uma campanha de criptomineração de anos

Pesquisadores da Aqua Nautilus que descobriram que o malware Linux Perfctl está por trás de uma campanha de criptomineração de anos.

Um malware Linux chamado “perfctl” tem como alvo servidores e estações de trabalho Linux por pelo menos três anos, permanecendo amplamente indetectável por meio de altos níveis de evasão e uso de rootkits.

Perfctl está por trás de uma campanha de criptomineração de anos

Perfctl está por trás de uma campanha de criptomineração de anos
Perfctl está por trás de uma campanha de criptomineração de anos

De acordo com os pesquisadores da Aqua Nautilus que descobriram o perfctl, o malware provavelmente teve como alvo milhões de servidores Linux nos últimos anos e possivelmente causou infecções em vários milhares deles.

Isso se baseia em vários relatórios de vítimas do malware enviados a fóruns de discussão online, todos contendo indicadores de comprometimento exclusivamente associados à atividade do perfctl.

De acordo com a Aqua Nautilus, o objetivo principal do perfctl é a criptomineração, usando os servidores comprometidos para minerar a criptomoeda Monero, difícil de rastrear. No entanto, ele pode ser facilmente usado para operações mais prejudiciais.

Cadeia de infecção

A Aqua Nautilus acredita que os agentes da ameaça exploram configurações incorretas ou segredos expostos para violar servidores Linux. Essas configurações incorretas variam de arquivos acessíveis publicamente que contêm credenciais a interfaces de login expostas.

Perfctl está por trás de uma campanha de criptomineração de anos
Perfctl está por trás de uma campanha de criptomineração de anos – Configurações incorretas buscadas pelo perfctl para acesso inicial ou movimento lateral (Fonte: Aqua Nautilus)

Os pesquisadores também observaram a exploração do CVE-2023-33246, uma execução de comando remoto que afeta as versões 5.1.0 e anteriores do Apache RocketMQ, e o CVE-2021-4034 (PwnKit), uma falha de elevação de privilégio no Polkit.

Uma vez que o acesso inicial é estabelecido, a carga útil compactada e ofuscada, chamada “httpd”, é baixada do servidor do invasor e executada. Em seguida, ele se copia no diretório /tmp sob o nome “sh” e, em seguida, exclui o binário original.

O novo processo assume o mesmo nome (“sh”), essencialmente se misturando com as operações normais do sistema Linux.

Cópias adicionais são criadas em outros locais do sistema, como “/root/.config”, “/usr/bin/” e “usr/lib” para garantir a persistência no caso de uma limpeza.

Perfctl está por trás de uma campanha de criptomineração de anos
Perfctl está por trás de uma campanha de criptomineração de anos – Locais onde o malware instala arquivos (Fonte: Aqua Nautilus)

Principais mecanismos de operação e evasão
Quando iniciado, o perfctl abre um soquete Unix para comunicações internas e estabelece um canal criptografado com os servidores do agente da ameaça por meio do TOR, tornando impossível decifrar a troca.

Em seguida, ele solta um rootkit chamado ‘libgcwrap.so‘ que se conecta a várias funções do sistema para modificar mecanismos de autenticação e interceptar tráfego de rede conforme necessário para facilitar a evasão.

Rootkits de userland adicionais também são implantados, substituindo os utilitários ldd, top, crontab e lsof por versões trojanizadas, novamente, impedindo a detecção direta das atividades do malware.

Finalmente, um minerador XMRIG é solto no sistema e executado para minerar Monero usando os recursos de CPU do servidor.

Visão geral do fluxo de ataque perfctl
Perfctl está por trás de uma campanha de criptomineração de anos – Visão geral do fluxo de ataque perfctl (Fonte: Aqua Nautilus)

O criptominerador se comunica com os pools de mineração definidos por TOR, então o tráfego de rede é obscurecido e os lucros não podem ser rastreados.

Em alguns casos, a Aqua Nautilus também viu a implantação de software de proxy-jacking dando aos invasores uma rota de monetização adicional, vendendo largura de banda de rede não utilizada por meio do Bitping, Repocket, Speedshare e outros serviços semelhantes.

A maioria dos usuários suspeita que seus servidores estão infectados depois que percebem que a CPU está com 100% de utilização devido à mineração de criptomoedas.

No entanto, o malware é altamente evasivo, realizando as atividades de mineração até que um usuário faça login no servidor, o que faz com que ele pare imediatamente e espere até que o servidor fique ocioso novamente.

“Só tomei conhecimento do malware porque minha configuração de monitoramento me alertou sobre 100% de utilização da CPU”, relatou um usuário no Reddit.

“No entanto, o processo parava imediatamente quando eu fazia login via SSH ou console. Assim que eu fazia logout, o malware voltava a funcionar em poucos segundos ou minutos.”

Usar rootkits também dificulta a remoção, pois os processos ficam ocultos dos utilitários do userland e das técnicas normais de remoção de malware, geralmente exigindo que os usuários o coloquem offline ou inicializem por meio de um CD ativo para inspecionar o sistema de arquivos.

No entanto, como a infecção modifica e substitui arquivos Linux legítimos, a melhor sugestão é limpar e reinstalar o dispositivo para garantir que nada seja deixado para trás.

Detectando e parando o perfctl

A Aqua Nautilus propõe várias maneiras de detectar e parar o perfctl, que se enquadram em quatro categorias principais: monitoramento do sistema, análise de tráfego de rede, monitoramento da integridade de arquivos e processos e mitigação proativa.

Em relação à detecção, as seguintes dicas são fornecidas pela Aqua Nautilus:

  • Inspecione regularmente os diretórios /tmp, /usr e /root em busca de binários suspeitos disfarçados de arquivos de sistema legítimos.
  • Monitore o uso da CPU em busca de picos e processos como httpd e sh sendo executados em locais inesperados.
  • Examine ~/.profile, ~/.bashrc e /etc/ld.so.preload em busca de modificações não autorizadas.
  • Capture e analise o tráfego de rede para conexões baseadas em TOR para IPs externos.
  • Procure conexões de saída para pools de criptomineração conhecidos ou serviços de proxy-jacking.
  • Adicione os IPs compartilhados na seção IoC do relatório a uma lista de bloqueio para interromper as comunicações com hosts maliciosos.

Os administradores de sistema devem garantir que todas as falhas conhecidas em aplicativos voltados para a Internet, como servidores RocketMQ (CVE-2023-33246) e Polkit (CVE-2021-4043), sejam corrigidas.

Além disso, seria eficaz desativar serviços HTTP não utilizados, usar controles de acesso baseados em função e aplicar a opção ‘noexec’ a diretórios críticos como ‘/tmp’ e ‘/dev.shm’.

Sobre o Edivaldo Brito

Edivaldo Brito é analista de sistemas, gestor de TI, blogueiro e também um grande fã de sistemas operacionais, banco de dados, software livre, redes, programação, dispositivos móveis e tudo mais que envolve tecnologia.