A empresa de segurança Socket descobriu dez pacotes maliciosos no repositório npm que visam desenvolvedores em sistemas Windows, macOS e Linux. Esses pacotes, disponíveis desde julho, usam typosquatting e ofuscação sofisticada para instalar malware infostealer. O malware rouba credenciais de navegadores, chaves SSH e arquivos de configuração antes de exfiltrar dados para os atacantes.
Desde o início de julho, dez pacotes npm maliciosos têm circulado no gerenciador de pacotes JavaScript, acumulando 9.900 downloads antes de sua remoção por volta de fins de outubro. Descobertos pela Socket, uma empresa especializada em segurança da cadeia de suprimentos de software, os pacotes empregam táticas de typosquatting com nomes que imitam os legítimos, como typescriptjs (em vez de TypeScript), deezcord.js, dizcordjs, dezcord.js, etherdjs, ethesjs, ethetsjs, nodemonjs, react-router-dom.js e zustand.js.
A infecção começa durante a instalação por meio de um script postinstall no arquivo package.json. Esse script abre uma janela de terminal oculta específica do sistema operacional e executa um arquivo app.js. O app.js contém ofuscação em múltiplas camadas, incluindo codificação URL e instruções switch com cálculos hexadecimais e octais, para ocultar suas rotinas maliciosas. Para manter a aparência de legitimidade, ele exibe um CAPTCHA falso renderizado em arte ASCII, exigindo entrada do usuário que serve apenas como distração.
Ao ser ativado, o malware envia o endereço IP do alvo para um servidor do atacante e baixa um binário específico da plataforma. Em seguida, alterna para execução em Python usando PyInstaller, executando um aplicativo não ofuscado chamado data_extracter. Essa ferramenta vasculha diretórios do sistema em busca de dados sensíveis, incluindo perfis de navegadores Firefox e Chromium, chaves SSH, credenciais AWS em ~/.aws/credentials, bancos de dados SQLite, arquivos de configuração JSON, cookies de navegador, keyrings e tokens de autenticação. As informações roubadas são comprimidas em um arquivo ZIP e transmitidas aos atacantes.
Embora os pacotes não estejam mais disponíveis no npm a partir de fins de outubro, sua disponibilidade por três meses e a ofuscação avançada levantam preocupações sobre variantes não detectadas. Esse incidente destaca as vulnerabilidades contínuas no npm a ataques de cadeia de suprimentos, incentivando chamadas para que os desenvolvedores verifiquem pacotes e monitorem instalações de perto.