Nova Ameaça Digital: Vírus Infiltra NPM para Capturar Credenciais e Dados de Usuários

Pesquisadores da Socket e StepSecurity descobriram um malware com comportamento semelhante a um worm em pacotes associados à Namastex Labs; o código é capaz de coletar tokens, chaves SSH e carteiras de criptomoedas, além de republicar pacotes infectados automaticamente.

Um recente ataque à cadeia de suprimentos do npm está comprometendo as credenciais de desenvolvedores e utilizando tokens de publicação hackeados para se propagar de forma autônoma por outros pacotes do ecossistema. Essa campanha foi revelada por pesquisadores da Socket e da StepSecurity, envolvendo pacotes ligados à Namastex Labs, uma empresa brasileira que oferece soluções de agentes autônomos com inteligência artificial.

Os pacotes afetados incluem: “@automagik/genie (versões 4.260421.33 a 4.260421.39)”, “pgserve (1.1.11 a 1.1.13)”, “@fairwords/websocket (1.0.38 e 1.0.39)”, “@fairwords/loopback-connector-es (1.4.3 e 1.4.4)”, “@openwebconcept/design-tokens” e “@openwebconcept/theme-owc, ambos na versão 1.0.3.” No total, a Socket contabilizou 16 versões comprometidas.

O Scanner de IA da Socket identificou o @automagik/genie@4.260421.36 como malicioso, mesmo com um volume significativo de downloads semanais no momento da análise. Imagem: Socket.

O @automagik/genie registrou 6.744 downloads semanais durante a análise, enquanto o pgserve somava cerca de 1.300 downloads. O @automagik/genie atua como terminal de comandos para a orquestração de agentes de IA, e o pgserve é um servidor PostgreSQL integrado para desenvolvimento e testes – um ambiente que atrai credenciais sensíveis. As primeiras versões maliciosas do pgserve foram publicadas em 21 de abril às 22h14 UTC, seguidas por outras duas no mesmo dia.

O que o malware faz após a instalação

O payload é ativado no momento da instalação via “hook postinstall”, sem que o usuário precise interagir. Depois disso, o código executa quatro funções principais.

A primeira é a coleta de credenciais. O script examina variáveis de ambiente em busca de tokens, chaves de API, dados de provedores de nuvem como AWS, Azure e GCP, configurações de Kubernetes e Docker, informações de Terraform e Vault, arquivos .env, chaves SSH e histórico de shell. Além disso, tenta acessar navegadores como Chrome e carteiras de criptomoedas como MetaMask, Phantom, Exodus e Atomic Wallet.

O Scanner de IA da Socket classificou o malware detectado durante a instalação como um ladrão de credenciais com capacidade de autopropagação, semelhante a um worm. Imagem: Socket.

Os dados coletados são exfiltrados através de dois canais simultâneos: um webhook convencional em telemetry.api-monitor[.]com e um canister do Internet Computer Protocol (ICP), identificado como cjn37-uyaaa-aaaac-qgnva-cai.

O ICP funciona como uma infraestrutura descentralizada de blockchain, complicando a derrubada do canal de comando e controle, uma vez que não existe um servidor centralizado a ser desabilitado. Quando uma chave RSA está presente no pacote, os dados são criptografados com um esquema híbrido AES-256-CBC e RSA-OAEP-SHA256 antes do envio.

Worm com capacidade de autopropagação no npm e no PyPI

A principal preocupação do ataque é sua lógica de autopropagação. Se o malware detectar tokens de publicação npm no ambiente comprometido, seja em variáveis de ambiente ou no arquivo ~/.npmrc, ele determina os pacotes que a vítima pode publicar, injeta o payload malicioso nesses pacotes e republica com versão alterada.

Os novos pacotes infectados repetem o processo ao serem instalados por outros desenvolvedores, criando um ciclo de propagação contínua. A StepSecurity descreveu esse comportamento como um worm de cadeia de suprimentos capaz de injetar código em todos os pacotes que um token acessível pode publicar.

O malware também contém lógica de propagação para o PyPI. Se credenciais do Python estiverem disponíveis, o script cria um payload baseado em arquivo .pth que se executa automaticamente ao iniciar o Python, utilizando o Twine para publicar pacotes Python infectados, expandindo a ameaça para múltiplos ecossistemas.

Sobreposição técnica com CanisterWorm

Pesquisadores da Socket notaram uma significativa sobreposição com o CanisterWorm, uma campanha anterior atribuída ao grupo TeamPCP, que também utilizava canisters ICP como canal de C2.

O payload atual compartilha métodos centrais: execução durante a instalação, roubo de credenciais, exfiltração de dados e autopropagação via tokens roubados. O código malicioso inclui menção explícita a um método TeamPCP/LiteLLM. Contudo, a Socket ainda não fez uma atribuição definitiva com base nas evidências disponíveis.

Uma indicação adicional de comprometimento é a falta de tags Git correspondentes no repositório público do pgserve para as versões 1.1.12 e 1.1.13, pois o repositório só possui tags públicas até a versão 1.1.10, sugerindo que as versões maliciosas foram publicadas de forma irregular.

O que desenvolvedores devem fazer

Considerando as versões identificadas, todas devem ser tratadas como maliciosas e removidas urgentemente dos ambientes de desenvolvimento e pipelines de CI/CD. É crucial também rotacionar todos os tokens npm, tokens do GitHub, credenciais de nuvem, chaves SSH e outros segredos que possam ter estado nos sistemas onde esses pacotes foram instalados.

A Socket ainda recomenda auditar pacotes relacionados que contenham o mesmo arquivo public.pem, o mesmo host de webhook ou o mesmo padrão de postinstall, além de comparar os tarballs publicados no npm com tags e releases públicas no GitHub para identificar possíveis discrepâncias.

Acompanhe o TecMania nas redes sociais. Para mais notícias sobre segurança e tecnologia, inscreva-se na nossa newsletter e no canal do YouTube.

Rolar para cima