Quando as dependências te trairam: a campanha de npm que rouba credenciais e carteiras de criptomoedas

Publicada 5 min de lectura 178 leituras

Hoje voltamos a ver como a segurança do software é atingida com a engenharia social e a economia do crime organizado: pesquisadores descobriram uma rajada de pacotes maliciosos publicados no registro de npm que, disfarçados de utilidades e livrarias legítimas, vêm roubar credenciais e carteiras de criptomoedas a desenvolvedores e administradores desprevenidos.

A origem da detecção provém de uma análise detalhada que descreve uma campanha multi-etapa: as livrarias pesquisadas mostram durante a instalação o que parecem ser logs autênticos de npm e acrescentam retardos aleatórios para simular descargas reais, até que saltam mensagens que indicam falta de permissões de escrita em /usr/local/lib/node_modules. Esse aviso é usado como pretexto para solicitar a senha de administrador ou root. Se o usuário a escrever, o próximo passo é silencioso: um “downloader” que conta os canais no Telegram para obter o URL do payload final e a chave para decifrar. O resultado é a entrega de um troiano de acesso remoto (RAT) ou um stealer capaz de exfiltrar dados sensíveis, incluindo credenciais de navegadores, chaves SSH, configurações de fornecedores na nuvem e carteiras de criptomoedas.

Quando as dependências te trairam: a campanha de npm que rouba credenciais e carteiras de criptomoedas
Imagem gerada com IA.

ReversingLabs foi das assinaturas que documentaram esta metodologia e a bautizou em seu relatório como parte da campanha que estão rastreando. Você pode ler sua análise técnica em detalhes em seu blog: ReversingLabs — npm fake install logs RAT. Paralelamente, outras pesquisas públicas encontraram padrões muito semelhantes em repositórios do GitHub que primeiro atuam como projetos inofensivos e, após ganhar certa reputação, introduzem scripts de instalação maliciosos que desencadeiam a cadeia de infecção. Jamf Threat Labs publicou uma desagregação que mostra como esses repositórios se apoiam mesmo em fluxos de trabalho orientados para a IA para parecer legítimo: Jamf — GhostClaw & GhostLoader analysis.

Um aspecto particularmente preocupante é a paciência do atacante: publicar código aparentemente benigno, acumular “stars” e atividade para criar confiança e depois atualizar ou adicionar um README que induza a executar um script na equipe do desenvolvedor. Em alguns casos, o instalador inclui uma variável de ambiente que permite alternar entre uma interface de instalação completa – com barras de progresso e perguntas ao usuário – e um modo minimalista que só recolhe credenciais. Esse grau de sofisticação demonstra que não se trata de scripts improvisados, mas de uma operação planejada para maximizar a probabilidade de engano.

As peças maliciosas vistas nos relatórios suplantavam ferramentas e SDKs comuns: desde utilitários para otimização de React até supostos bots de trading e utilitários para macOS, com nomes que buscavam aproveitar confiança ou relevância temática entre desenvolvedores. As vítimas potenciais recebem instruções para executar comandos que requerem privilégios elevados; esse momento é crítico porque permite à cadeia de ataque plantar componentes com permissões suficientes para acessar dados protegidos e persistir na máquina.

A ex-filtração da informação também revela engenho operacional: em alguns casos, os dados roubados são enviados para bots do Telegram associados a diferentes “socios” de acordo com um identificador de campanha, e a monetização é completa através de redesireções de afiliados armazenadas em contratos inteligentes de Binance Smart Chain, de modo que o ator malicioso pode atualizar rotas e monetizar sem tocar o código do malware distribuído. Uma análise que aprofundou esta economia criminosa apareceu no blog da Panther: Panther — Phantom Menace: Ghost Loader infostealer campaign.

Que lição deixa tudo isso para aqueles que trabalham com Node.js, repositórios de código e fluxos de trabalho modernos? A primeira é que a confiança por defeito na cadeia de abastecimento já não é segura. Executar programas sugeridos num README ou introduzir sudo para “optimizar o sistema” deve activar imediatamente os alarmes. Em vez disso, convém verificar o que executa exactamente os programas de instalação (os programas pós-install em package.json), rever a atividade e a história do maintainer, e preferir ferramentas que não exijam elevar privilégios do sistema para instalações globais. A documentação oficial de Node sobre gestores de pacotes e a recomendação de usar gestores de versões como nvm para evitar instalações globais com sudo é um recurso útil para reduzir a superfície de ataque: nvm (Node Version Manager) e os guias de Node.js sobre instalações seguras são bons pontos de partida.

Além disso, os equipamentos devem reforçar o processo de incorporação de dependências com revisões automatizadas e controlos: revisar pacotes que executam programas pós-install, auditar mudanças em repositórios que são usados como fontes de dependências, e lançar ferramentas de segurança da cadeia de fornecimento como as que propõem iniciativas comunitárias e plataformas de código. O GitHub Security Lab e o OpenSSF oferecem guias e recursos para mitigar riscos no software supply chain: GitHub Security Lab e OpenSSF.

Quando as dependências te trairam: a campanha de npm que rouba credenciais e carteiras de criptomoedas
Imagem gerada com IA.

Se você acha que foi afetado, atua com cautela: muda senhas e chaves comprometidas, revisa processos e conexões salientes da máquina afetada, e, se foi uma conta com acesso a repositórios ou infraestruturas, rota credenciais e tokens. Reportar pacotes maliciosos à equipe de segurança de npm e às plataformas onde se alojavam os repositórios ajuda a cortar a disseminação; npm dispõe de canais para reportar abuso e vulnerabilidades em pacotes publicados.

Em última análise, a campanha mostra que os atacantes estão adaptando suas táticas ao ecossistema de desenvolvimento: combinam engenharia social, abuso de plataformas legítimas como npm e GitHub, e canais modernos de controle como o Telegram para construir uma cadeia de ataque completa. A defesa exige não só ferramentas automáticas, mas também prudência e processos claros ao instalar software e conceder privilégios. Manter-se informado e aplicar hábitos simples — não executar scripts de fontes não verificadas, evitar sudo desnecessário, e auditar dependências — reduz muito o risco de se tornar a próxima vítima.

Para ampliar informações técnicas e ver os achados completos, revisa os relatórios citados de ReversingLabs, Jamf e Panther, que desmenuzan as fases de instalação, persistência e exfiltração dessas campanhas: ReversingLabs, Jamf e Panther.

Cobertura

Relacionadas

Mas notícias do mesmo assunto.