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
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.
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.
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.
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’.