O ecossistema NPM, um dos maiores registos de pacotes de software do mundo, foi recentemente palco da descoberta de dezenas de pacotes maliciosos. Estes visavam desde a recolha de dados sensíveis dos programadores até à destruição de ficheiros nos sistemas infetados.
Campanha de espionagem: 60 pacotes a recolher informações
A equipa de investigação de ameaças da Socket identificou um conjunto de 60 pacotes no repositório NPM concebidos para subtrair dados confidenciais de hosts e redes. Estes pacotes eram depois enviados para um webhook do Discord, controlado pelos atacantes. Segundo os especialistas, estes pacotes começaram a ser publicados no NPM a partir de 12 de maio, através de três contas de editor distintas.
Cada um destes pacotes maliciosos continha um script de pós-instalação, que era executado automaticamente durante o processo npm install
. Este script era responsável por recolher uma variedade de informações, incluindo:
- Nome do host (Hostname)
- Endereço IP interno
- Diretório pessoal do utilizador
- Diretório de trabalho atual
- Nome de utilizador
- Servidores DNS do sistema
O script incluía ainda verificações para detetar se estava a ser executado em ambientes de análise, procurando por nomes de host associados a fornecedores de serviços na nuvem ou por cadeias de DNS reverso.
Apesar de a Socket não ter observado o envio de payloads secundários, tentativas de escalada de privilégios ou mecanismos de persistência, o tipo de dados recolhidos representa um perigo significativo, abrindo portas a ataques de rede direcionados.
Inicialmente, mesmo após a denúncia, muitos destes pacotes permaneciam disponíveis no NPM, acumulando um total de cerca de 3.000 transferências. No entanto, à data de publicação desta notícia, nenhum deles se encontrava ativo no repositório.
Para iludir os programadores, os autores desta campanha utilizaram nomes muito semelhantes a pacotes legítimos existentes, uma técnica conhecida como typosquatting. Exemplos incluem ‘flipper-plugins’, ‘react-xterm2’ e ‘hermes-inspector-msggen’. Foram também usados nomes genéricos que inspiram confiança e outros que sugerem testes, possivelmente visando ambientes de integração e entrega contínua (CI/CD).
A lista completa dos 60 pacotes maliciosos pode ser consultada no final do relatório publicado pela Socket. Se instalou algum destes pacotes, a recomendação é a sua remoção imediata e a execução de uma análise completa ao sistema para erradicar quaisquer vestígios da infeção.
Nova ameaça: Pacotes "limpadores de dados" no NPM
Paralelamente, outra campanha maliciosa descoberta pela Socket no NPM envolveu oito pacotes que, embora imitando ferramentas legítimas através de typosquatting, tinham a capacidade de apagar ficheiros, corromper dados e encerrar sistemas.
Estes pacotes, que visavam os ecossistemas React, Vue.js, Vite, Node.js e Quill, estiveram presentes no NPM durante os últimos dois anos, acumulando 6.200 transferências. A sua longa permanência sem deteção deveu-se, em parte, ao facto de os payloads serem ativados com base em datas específicas pré-codificadas no sistema. A sua estrutura era concebida para destruir progressivamente ficheiros de frameworks, corromper métodos centrais de JavaScript e sabotar mecanismos de armazenamento dos navegadores.
O atacante por detrás desta campanha, publicando sob o nome ‘xuxingfeng’, listou também vários pacotes legítimos para construir uma fachada de confiança e evitar a deteção.
Embora o perigo imediato possa ter passado, com base nas datas codificadas, a remoção destes pacotes é crucial. O seu autor poderá, no futuro, introduzir atualizações que reativem as suas funcionalidades de eliminação de dados.
Nenhum comentário
Seja o primeiro!