Pacote Popular 'node-ipc' Comprometido em Ataque à Cadeia de Suprimentos, Roubando Credenciais
Um novo ataque à cadeia de suprimentos visou o popular pacote **node-ipc**, injetando malware que rouba credenciais em versões publicadas recentemente. O pacote comprometido, amplamente utilizado para comunicação entre processos, representa um risco significativo para desenvolvedores e seus sistemas.
Hackers injetaram malware que rouba credenciais em versões recém-publicadas do **node-ipc**, um popular pacote de comunicação entre processos, em um novo ataque à cadeia de suprimentos visando o npm.
O pacote **node-ipc** é um módulo Node.js que permite que vários processos se comuniquem através de todas as formas de sockets, incluindo Unix, Windows, UDP, TLS e TCP.
Apesar do mantenedor ter publicado em março de 2022 [versões "armadas"](https://www.bleepingcomputer.com/news/security/big-sabotage-famous-npm-package-deletes-files-to-protest-ukraine-war/) que visavam sistemas baseados na Rússia e Bielorrússia com um módulo de sobrescrita de dados, em protesto à invasão russa da Ucrânia, o pacote ainda tem mais de 690.000 downloads semanais no npm.
### Descoberta do Ataque
O recente ataque à cadeia de suprimentos foi detectado por várias empresas de segurança de aplicações, incluindo **Socket**, **Ox Security** e **Upwind**, que confirmaram as seguintes três versões como maliciosas:
* [email protected]
* [email protected]
* [email protected]
O código malicioso se esconde no ponto de entrada CommonJS (node-ipc.cjs) e executa automaticamente sempre que as aplicações são carregadas.
O malware é altamente ofuscado e identifica sistemas infectados, coleta variáveis de ambiente e arquivos locais sensíveis, comprime os dados roubados em arquivos e os exfiltra através de consultas DNS TXT.
O último comprometimento parece ser obra de um ator externo que comprometeu a conta de um mantenedor inativo chamado 'atiertant'.
### Dados Alvo do Malware
De acordo com os pesquisadores, o infostealer injetado nas novas versões do **node-ipc** coleta os seguintes tipos de informações de sistemas comprometidos:
* Credenciais de nuvem da **AWS**, **Azure**, **GCP**, **OCI**, **DigitalOcean** e outras
* Chaves SSH e configurações SSH
* Credenciais de Kubernetes, Docker, Helm e Terraform
* Tokens do npm, GitHub, GitLab e Git CLI
* Arquivos .env e credenciais de banco de dados
* Históricos de shell e segredos de CI/CD
* Arquivos do macOS Keychain e keyrings do Linux
* Arquivos de perfil e banco de dados de chaves do Firefox (no macOS)
* Armazenamento local do Microsoft Teams e caminhos do IndexedDB
O malware ignora arquivos maiores que 4 MiB e evita escanear os diretórios .git e node_modules para aumentar a eficiência e reduzir o ruído operacional no host.

### Exfiltração via Registros DNS TXT
Uma característica operacional notável é o uso de consultas DNS TXT em vez de tráfego convencional de comando e controle (C2) baseado em HTTP para exfiltração de dados. Os atacantes usam um domínio falso com tema Azure (sh[.]azurestaticprovider[.]net:443) como um resolvedor bootstrap, transmitindo os dados para 'bt[.]node[.]js' com prefixos de consulta como xh, xd e xf.
De acordo com o **Socket**, a exfiltração de um arquivo compactado de 500 KB poderia gerar aproximadamente 29.400 requisições DNS TXT, ajudando o tráfego a se misturar à atividade DNS normal.
Antes da submissão, o malware armazena os dados coletados em arquivos tar.gz temporários compactados, que são excluídos após a exfiltração para reduzir rastros forenses.
O malware não estabelece persistência nem baixa quaisquer payloads secundários, portanto, a operação parece focada em roubo rápido de credenciais e exfiltração.
### Passos de Mitigação
Desenvolvedores potencialmente impactados devem remover imediatamente as versões afetadas, rotacionar segredos e credenciais expostos e inspecionar lockfiles e caches do npm.