Duas campanhas de ataque à cadeia de suprimentos do npm comprometeram mais de 90 pacotes com um stealer em Rust chamado IronWorm e uma nova variante do worm Miasma. Os malwares roubam credenciais de serviços em nuvem e configurações de assistentes de IA. JFrog e StepSecurity detalharam as operações nesta sexta-feira (5).

Pontos-chave:

  • IronWorm: stealer em Rust com rootkit eBPF, propagação via commits Git maliciosos, 36 pacotes afetados
  • Miasma Phantom Gyp: 57 pacotes comprometidos usando arquivo binding.gyp para bypassar segurança
  • Alvo principal: credenciais de AWS, GCP, Azure, Kubernetes, carteiras crypto e APIs de IA

Como o IronWorm se propaga

O IronWorm foi distribuído pela conta npm “asteroiddao”, que publicou versões trojanizadas de pacotes legítimos contendo um binário ELF em Rust, executado via hook de preinstall. O malware rastreia 86 variáveis de ambiente e arquivos de credenciais associados a OpenAI Codex, Anthropic Claude, Google Gemini, Cursor, AWS, Docker, Kubernetes e carteiras Exodus. O ciclo é auto-replicante: rouba credenciais, acessa repositórios GitHub do desenvolvedor e publica novas versões envenenadas, reiniciando a cadeia.

Segundo a JFrog, os commits maliciosos foram inseridos sob o nome de autor “claude@users.noreply.github.com” para simular o bot de IA da Anthropic. O malware também substitui workflows do GitHub Actions por versões que coletam secrets, gravam-nos em arquivos disfarçados e os carregam como artefatos de build — eliminando a necessidade de um servidor C2 externo. Em ambientes CI, o IronWorm abusa do Trusted Publishing do npm para obter tokens de curta duração e publicar pacotes envenenados diretamente no registro.

O componente eBPF funciona como rootkit de kernel para ocultar processos e dificultar análise forense. Em sistemas com kernel lockdown ativo, no entanto, os truques de ocultação falham e processos e sockets tornam-se visíveis.

Phantom Gyp evade detecção

A segunda campanha, documentada pela StepSecurity e Endor Labs, comprometeu 57 pacotes em mais de 286 versões maliciosas. A técnica “Phantom Gyp” usa um arquivo binding.gyp de 157 bytes para disparar código durante npm install, sem acionar os hooks de preinstall ou postinstall que as ferramentas de segurança monitoram. O payload baixa o runtime Bun e carrega um coletor de credenciais que extrai secrets de AWS, Google Cloud, Azure, HashiCorp Vault, Docker, Kubernetes, GitHub Actions, npm, RubyGems, PyPI, SSH, gerenciadores de senhas e assistentes de IA.

A campanha é uma evolução do ataque Miasma que comprometeu pacotes oficiais da Red Hat no início da semana. A capacidade mais relevante dessa variante é a injeção de arquivos de backdoor persistentes nos repositórios dos projetos. Esses arquivos são executados assim que o desenvolvedor abre o projeto em uma IDE com assistente de IA habilitado, ampliando a superfície de ataque para todo o fluxo de desenvolvimento.

Comparativo das duas campanhas

Aspecto IronWorm (JFrog) Miasma Phantom Gyp (StepSecurity)
Linguagem Rust (binário ELF) Bun (JavaScript runtime)
Pacotes afetados 36 57
Técnica de execução Hook preinstall binding.gyp (Phantom Gyp)
Rootkit eBPF kernel Não relatado
Comunicação C2 Tor GitHub (repositórios públicos)
Alvos de credenciais AWS, Docker, K8s, crypto, IA AWS, GCP, Azure, Vault, K8s, SSH, IA
Auto-replicação Sim (commits Git maliciosos) Sim (republish de pacotes)

O que desenvolvedores devem fazer

Quem instalou versões afetadas precisa rotacionar todas as credenciais imediatamente: tokens de GitHub Actions, chaves SSH, variáveis de ambiente de serviços em nuvem e chaves de API de assistentes de IA — alvo recorrente de pacotes maliciosos no npm. Desative scripts de instalação e rebuilds nativos por padrão configurando ignore-scripts=true no .npmrc. Fixe todos os pacotes com hashes de integridade via lockfile.

Equipes de segurança devem auditar repositórios buscando commits do autor “claude@users.noreply.github.com” e arquivos binding.gyp inesperados. Em ambientes CI/CD, restrinja o Trusted Publishing a pipelines verificados e monitore o consumo de recursos do kernel para detectar atividade eBPF anômala.

Fontes