10 pacotes NPM maliciosos roubam credenciais no Linux e Windows

Alerta! 10 pacotes NPM usam typosquatting para roubar credenciais de desenvolvedores no Linux, macOS e Windows.

Escrito por
Jardeson Márcio
Jardeson Márcio é Jornalista e Mestre em Tecnologia Agroalimentar pela Universidade Federal da Paraíba. Com 8 anos de experiência escrevendo no SempreUpdate, Jardeson é um especialista...

Um novo alerta de segurança acendeu a luz vermelha para desenvolvedores e equipes de DevOps que utilizam o registro NPM. Pesquisadores da empresa Socket descobriram 10 pacotes NPM maliciosos projetados para roubar credenciais sensíveis diretamente do sistema operacional — afetando Windows, Linux e macOS.

O mais preocupante é que esses pacotes já somam mais de 9.900 downloads e ficaram disponíveis por meses antes da remoção. O ataque combina técnicas de typosquatting, ofuscação de código e roubo de credenciais do keychain, mostrando o quanto a cadeia de suprimentos de software permanece vulnerável.

Este artigo explica em detalhes como o ataque funciona, lista os pacotes maliciosos, e fornece orientações práticas para verificar se você foi afetado e como se proteger de ameaças semelhantes.

Imagem malware BeaverTail em pacotes npm

O que aconteceu? O alerta da Socket

A descoberta foi feita pelo pesquisador Kush Pandya, da empresa Socket, especializada em segurança da cadeia de suprimentos de software. Segundo o relatório, os pacotes foram publicados em julho de 2025 e permaneceram ativos por vários meses antes de serem detectados.

Esses pacotes tentavam se passar por bibliotecas legítimas amplamente utilizadas por desenvolvedores JavaScript e Node.js — uma prática conhecida como typosquatting.

A lista completa dos 10 pacotes NPM maliciosos é a seguinte:

  • deezcord.js
  • dezcord.js
  • dizcordjs
  • etherdjs
  • ethesjs
  • ethetsjs
  • nodemonjs
  • react-router-dom.js
  • typescriptjs
  • zustand.js

Esses nomes foram cuidadosamente escolhidos para confundir os desenvolvedores que digitam rapidamente comandos de instalação — como npm install react-router-dom.js em vez de react-router-dom.

Como funciona este ataque sofisticado

Os pesquisadores identificaram que o ataque foi minuciosamente planejado e envolvia múltiplas fases de execução e evasão.

Fase 1: A isca do typosquatting

O typosquatting é uma técnica em que o atacante cria pacotes com nomes muito semelhantes aos de bibliotecas populares, explorando erros de digitação comuns.

Neste caso, pacotes como discord.js, ethers.js, nodemon, zustand e react-router-dom foram os alvos principais. Ao instalar um pacote falso com nome parecido, o usuário iniciava o processo de infecção sem perceber.

Fase 2: A instalação e a evasão

Ao ser instalado, o pacote executava um script pós-instalação (post-install). Esse script iniciava uma sequência de engenharia social: um falso prompt CAPTCHA e mensagens de instalação aparentemente legítimas eram exibidos para mascarar o comportamento malicioso.

Em seguida, o malware abria uma nova janela de terminal (como Prompt de Comando, Terminal GNOME, xterm ou Terminal do macOS) e a fechava rapidamente, executando o código nocivo fora do processo principal do NPM — o que dificultava a detecção por ferramentas de segurança.

Fase 3: O roubo de informações

O payload principal era um programa de 24 MB empacotado com PyInstaller, chamado data_extracter.

Esse arquivo executava uma sequência de quatro camadas de ofuscação, incluindo cifras XOR, codificação de URL e operações hexadecimais, tornando a análise extremamente complexa.

A primeira ação do malware era identificar o endereço IP da vítima e enviá-lo para um servidor remoto de comando e controle, estabelecendo um canal de comunicação para a extração dos dados roubados.

O alvo principal: Por que atacar o ‘keychain’ do sistema é tão perigoso

O objetivo final desses pacotes NPM maliciosos era o roubo de credenciais do chaveiro do sistema (System Keychain).

Esses chaveiros armazenam senhas e tokens utilizados por diversos aplicativos e serviços, incluindo:

  • Clientes de e-mail como Outlook e Thunderbird
  • Serviços de nuvem como Google Drive e Dropbox
  • Conexões VPN e SSH
  • Gerenciadores de senhas
  • Chaves de autenticação de bancos de dados e credenciais de produção

O malware utilizava a biblioteca npm keyring para extrair esses segredos de forma descriptografada, contornando as camadas de segurança em nível de aplicativo.

Isso significa que, mesmo que um sistema utilize autenticação de dois fatores ou firewalls rigorosos, o atacante pode acessar diretamente tokens e chaves privadas do desenvolvedor — abrindo caminho para ataques à infraestrutura corporativa e roubo de código-fonte confidencial.

O que fazer agora? Como verificar e se proteger

Verifique suas dependências imediatamente

Se você é desenvolvedor ou mantém projetos em Node.js, a primeira medida é auditar imediatamente suas dependências.

Execute os seguintes comandos no terminal:

npm ls <nome-do-pacote>

ou

npm audit

Isso ajudará a identificar se algum dos pacotes maliciosos foi instalado — direta ou indiretamente — no seu projeto.

Se identificar algum dos pacotes listados anteriormente, remova-o imediatamente e troque quaisquer credenciais (SSH, tokens de API, senhas) que possam ter sido expostas.

Boas práticas para evitar ataques futuros

1. Verifique o nome do pacote antes de instalar
Pequenas diferenças, como typescriptjs em vez de typescript, podem custar caro. Sempre valide a grafia e o número de downloads no site oficial do NPM.

2. Use o npm audit regularmente
O comando npm audit é essencial para detectar vulnerabilidades conhecidas em dependências.

3. Utilize arquivos de lock (package-lock.json ou yarn.lock)
Esses arquivos ajudam a garantir instalações reprodutíveis e reduzem a chance de dependências maliciosas entrarem inadvertidamente no seu projeto.

4. Desconfie de scripts pós-instalação
Pacotes legítimos raramente executam scripts complexos durante a instalação. Se notar comportamentos incomuns, investigue o código-fonte antes de prosseguir.

5. Mantenha-se atualizado sobre ameaças na cadeia de suprimentos
Acompanhar relatórios de empresas como Socket, Sonatype e Snyk é fundamental para detectar novas famílias de malware no ecossistema JavaScript.

Conclusão: A vigilância é a nova norma na cadeia de suprimentos

Os pacotes NPM maliciosos detectados em 2025 reforçam uma dura realidade: a cadeia de suprimentos de software é o novo campo de batalha digital.

Mesmo ações rotineiras, como executar um simples npm install, podem servir de porta de entrada para ataques sofisticados capazes de comprometer sistemas inteiros.

A lição é clara: a vigilância contínua e as boas práticas de segurança devem fazer parte do ciclo de desenvolvimento.

Você já encontrou pacotes suspeitos em seus projetos? Compartilhe suas experiências e melhores práticas nos comentários — e ajude a fortalecer a comunidade contra ameaças emergentes.

Compartilhe este artigo
Nenhum comentário