A confiança quase cega que muitos desenvolvedores depositam no ecossistema npm acaba de ser colocada em xeque. Uma nova campanha de malware, batizada de PhantomRaven, está explorando essa confiança para roubar tokens do GitHub, segredos de pipelines CI/CD e outras credenciais sensíveis diretamente das máquinas de desenvolvedores.
Segundo um relatório recente da Koi Security, mais de 86.000 instalações foram comprometidas por 126 pacotes maliciosos publicados no repositório oficial do npm. O objetivo do ataque PhantomRaven é claro: infiltrar-se em ambientes de desenvolvimento e comprometer a cadeia de suprimentos de software.
Neste artigo, você vai entender como o malware PhantomRaven opera, quais técnicas inéditas ele utiliza — incluindo slopsquatting e Dependências Dinâmicas Remotas (RDD) —, e como proteger seu ambiente Node.js contra ataques semelhantes.
O que é o malware PhantomRaven e como ele funciona?

O malware PhantomRaven é uma campanha avançada de ataque à cadeia de suprimentos voltada para o ecossistema npm, o principal gerenciador de pacotes do JavaScript e do Node.js.
A operação parece ter começado silenciosamente em agosto de 2025, com um crescimento gradual até alcançar grande escala nos últimos meses. Os pacotes maliciosos identificados incluem nomes aparentemente legítimos, como op-cli-installer, unused-imports, badgekit-api-client, entre outros — todos criados para parecerem ferramentas úteis e inofensivas.
Esses pacotes, no entanto, escondem scripts projetados para roubar tokens de autenticação e enviar dados confidenciais para servidores controlados pelos invasores.
As duas táticas inovadoras do PhantomRaven
O sucesso do PhantomRaven se deve a duas técnicas engenhosas que exploram tanto falhas humanas quanto lacunas técnicas no ecossistema npm.
1. Slopsquatting: Usando alucinações de IA para criar iscas
O termo slopsquatting descreve um fenômeno recente em que agentes maliciosos registram nomes de pacotes “plausíveis” que parecem legítimos, mas que foram “alucinados” por modelos de linguagem de IA (LLMs).
Imagine que uma IA como o Copilot ou o ChatGPT sugere importar um pacote inexistente, como string-helper-plus. Um invasor atento registra esse nome no npm com código malicioso. Assim, o desenvolvedor instala o pacote acreditando que ele é seguro — um golpe de engenharia social disfarçado de produtividade.
O PhantomRaven usa amplamente essa tática, aproveitando o crescimento do uso de ferramentas de IA em ambientes de desenvolvimento. O resultado: milhares de instalações de pacotes falsos apenas por parecerem “familiares”.
2. RDD: A técnica das dependências dinâmicas remotas
A segunda técnica, ainda mais sofisticada, é conhecida como Dependências Dinâmicas Remotas (RDD).
Em vez de listar dependências legítimas no arquivo package.json, o atacante insere um link HTTP externo, como http://packages.storeartifact[.]com, que é chamado durante a instalação.
Isso significa que o pacote pode baixar e executar código remoto — sem que o npm ou scanners de segurança percebam. O pacote aparenta ter “0 dependências”, o que o torna quase invisível para verificações automáticas.
De acordo com o pesquisador Oren Yomtov, essa técnica cria uma camada de invisibilidade para o malware, dificultando sua detecção por ferramentas de análise estática e pipelines de CI/CD automatizados.
A anatomia do ataque: Do install ao roubo de dados
O gancho de pré-instalação
Tudo começa no momento em que o desenvolvedor instala o pacote malicioso. O PhantomRaven utiliza um script de pré-instalação (pre-install hook) para acionar a dependência remota listada no arquivo package.json.
Essa etapa é crítica: o pacote contata o servidor do atacante, baixa um segundo estágio de código e o executa antes mesmo do pacote ser usado. Como o processo acontece dentro do fluxo normal de instalação, dificilmente desperta suspeitas.
A carga maliciosa
Após o download, o malware PhantomRaven começa sua operação de coleta de dados. Ele varre o ambiente local em busca de:
- Tokens do GitHub armazenados em cache ou variáveis de ambiente;
- Credenciais de CI/CD (como GitLab, Jenkins e Azure DevOps);
- Endereços de e-mail corporativos;
- Fingerprint do sistema, incluindo IP público e nome do host.
Essas informações são exfiltradas para servidores remotos via HTTP, frequentemente usando técnicas de camuflagem de tráfego para evitar alertas de antivírus ou proxies corporativos.
O fator mais perigoso é a capacidade do atacante de alternar o comportamento do pacote em tempo real. Ele pode servir código inofensivo para análise pública e ativar o payload malicioso apenas quando o pacote atinge popularidade, evitando detecção precoce.
Como se proteger do PhantomRaven e de ataques semelhantes
Audite suas dependências e scripts
A primeira linha de defesa é a auditoria proativa de dependências. Utilize o comando npm audit regularmente e inspecione manualmente o arquivo package-lock.json em busca de URLs suspeitas.
Ao instalar pacotes em ambientes não confiáveis ou de teste, use a flag --ignore-scripts para impedir a execução automática de scripts de instalação. Isso bloqueia ganchos como pre-install e post-install — vetores comuns de malware.
Desconfie de pacotes “plausíveis”
Antes de adicionar uma nova dependência, verifique:
- A idade do pacote (evite pacotes criados recentemente sem histórico);
- Número de downloads semanais (poucos downloads indicam risco);
- Autor e repositório associado (confirme se há perfil verificado).
Evite instalar pacotes sugeridos automaticamente por ferramentas de IA, especialmente se o nome parecer genérico ou desconhecido.
Monitore o tráfego de rede
Em pipelines de CI/CD, monitore o tráfego de rede de saída durante o processo de build. Qualquer tentativa de conexão com domínios não oficiais do npm ou endpoints HTTP externos deve ser tratada como um alerta de segurança.
Ferramentas como Falco, Wazuh ou Open Policy Agent podem ser integradas para rastrear comportamentos anômalos e evitar a execução de código remoto não autorizado.
Conclusão: Um ecossistema em alerta constante
O malware PhantomRaven representa uma evolução perigosa nos ataques à cadeia de suprimentos do npm. Combinando engenharia social (slopsquatting) e evasão técnica (RDD), os invasores exploram a confiança e a automação do desenvolvimento moderno.
A melhor defesa é o conhecimento e a vigilância constante. Se você desenvolve ou mantém pacotes JavaScript, audite suas dependências regularmente e monitore scripts e conexões de rede.
Você já auditou suas dependências hoje?
Compartilhe suas melhores práticas de segurança npm nos comentários.
