Um malware Linux chamado "perfctl" tem como alvo servidores e estações de trabalho Linux há pelo menos três anos, permanecendo amplamente não detectado devido a altos níveis de evasão e ao uso de rootkits.
De acordo com pesquisadores da Aqua Nautilus, que descobriram 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 é baseado em inúmeros relatos de vítimas do malware enviados para fóruns de discussão online, todos contendo indicadores de comprometimento exclusivamente associados à atividade do perfctl.
Segundo a Aqua Nautilus, o objetivo principal do perfctl é o cryptomining, usando os servidores comprometidos para minerar a criptomoeda Monero, que é difícil de rastrear.
No entanto, ele pode ser facilmente usado para operações mais danosas.
A Aqua Nautilus acredita que os atores de ameaças exploram misconfigurations ou secrets expostos para invadir servidores Linux.
Essas misconfigurations vão desde arquivos acessíveis publicamente que contêm credenciais até interfaces de login expostas.
Os pesquisadores também observaram a exploração do
CVE-2023-33246
, uma execução de comando remoto que impacta versões do Apache RocketMQ 5.1.0 e anteriores, e
CVE-2021-4034
(PwnKit), uma falha de elevação de privilégio em Polkit.
Uma vez estabelecido o acesso inicial, o payload compactado e ofuscado, chamado "httpd", é baixado do servidor do atacante e executado.
Em seguida, ele se copia no diretório /tmp sob o nome "sh" e então exclui o binário original.
O novo processo assume o mesmo nome ("sh"), basicamente 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 persistência no caso de uma limpeza.
Quando lançado, perfctl abre um socket Unix para comunicações internas e estabelece um canal criptografado com os servidores dos atores da ameaça através do TOR, tornando impossível decifrar a troca.
Em seguida, ele introduz um rootkit chamado 'libgcwrap.so', que se conecta a várias funções do sistema para modificar mecanismos de autenticação e interceptar o tráfego de rede conforme necessário para facilitar a evasão.
Rootkits adicionais no userland também são implantados, substituindo as utilidades ldd, top, crontab e lsof por versões trojanizadas, novamente, prevenindo a detecção direta das atividades do malware.
Finalmente, um minerador XMRIG é introduzido no sistema e executado para minerar Monero usando os recursos da CPU do servidor.
O minerador criptográfico se comunica com os pools de mineração definidos através do TOR, assim o tráfego da rede é obscurecido, e os lucros não podem ser rastreados.
Em alguns casos, a Aqua Nautilus também observou a implantação de software de proxy-jacking, dando aos atacantes uma rota de monetização adicional, vendendo largura de banda de rede não utilizada através de Bitping, Repocket, Speedshare e outros serviços similares.
A maioria dos usuários se torna suspeita de que seus servidores estão infectados após notarem que a CPU está em 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 esteja ocioso novamente.
"Só me dei conta do malware porque meu sistema de monitoramento me alertou para a utilização de 100% 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 saía, o malware retomava a execução em poucos segundos ou minutos.
Usar rootkits também torna difícil a remoção, já que os processos são escondidos de utilitários do userland e técnicas normais de remoção de malware, geralmente exigindo que os usuários tirem o sistema do ar ou inicializem via um CD ao vivo para inspecionar o sistema de arquivos.
No entanto, como a infecção modifica e substitui arquivos Linux legítimos, a melhor sugestão é formatar e reinstalar o dispositivo para garantir que nada seja deixado para trás.
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, Aqua Nautilus fornece as seguintes dicas:
-Inspecionar regularmente os diretórios /tmp, /usr e /root em busca de binários suspeitos se passando por arquivos de sistema legítimos.
-Monitorar o uso da CPU para detectar picos e processos como httpd e sh executando de locais inesperados.
-Examinar ~/.profile, ~/.bashrc e /etc/ld.so.preload por modificações não autorizadas.
-Capturar e analisar o tráfego de rede para conexões baseadas em TOR com IPs externos.
-Procurar por conexões de saída para pools de mineração de criptomoedas conhecidos ou serviços de proxy-jacking.
-Adicionar os IPs compartilhados na seção IoC do relatório a uma lista de bloqueio para interromper comunicações com hosts maliciosos.
Administradores de sistemas devem garantir que todas as falhas conhecidas em aplicações voltadas para a internet, como servidores RocketMQ (
CVE-2023-33246
) e Polkit (
CVE-2021-4043
), sejam corrigidas.
Também seria eficaz desativar serviços HTTP não utilizados, usar controles de acesso baseados em papel e aplicar a opção 'noexec' a diretórios críticos como '/tmp' e '/dev.shm'.
Publicidade
Em 14 de janeiro a Solyd irá revolucionar a forma como pentest e hacking deve ser ensinado. Se inscreva para ser o primeiro a saber das novidades. Saiba mais...