Novos Worms no npm Surgem: IronWorm e Variante Miasma Atacam Segredos de Desenvolvedores e Ferramentas de IA
O ecossistema **npm** está sob ataque de campanhas sofisticadas de segurança na cadeia de suprimentos de software. Pesquisadores descobriram duas campanhas distintas: um **Rust**-based information stealer chamado **IronWorm** e uma nova variante altamente evasiva do worm **Miasma**. Ambas as ameaças visam comprometer credenciais de desenvolvedores, injetar código malicioso e se auto-propagar por ambientes de desenvolvimento e repositórios.
Múltiplos ataques à cadeia de suprimentos de software atingiram recentemente o ecossistema **npm**, com atores de ameaças implantando versões maliciosas e corrompidas de mais de 50 pacotes legítimos. Essas campanhas visam distribuir um **Rust**-based information stealer e um worm auto-propagável, representando riscos significativos para profissionais de segurança de TI e usuários preocupados com a privacidade.

## A Ascensão do IronWorm
A empresa de segurança **JFrog** detalhou o **Rust**-based information stealer, codinome **IronWorm**. Este malware sofisticado é projetado para coletar todos os segredos que puder encontrar na máquina de um desenvolvedor, empregando um **eBPF** kernel rootkit para discrição e comunicando-se com seus operadores via **Tor**.
**IronWorm** utiliza credenciais roubadas como mecanismo de propagação, traçando paralelos com o infame worm **Shai-Hulud**. Ao se publicar no registro **npm** através de pacotes trojanizados, ele alcança um vetor de ataque auto-replicante.
A atividade maliciosa foi rastreada até uma conta **npm** comprometida, "asteroiddao", que publicou versões de pacotes contendo o binário ELF **Rust** executado via um hook `preinstall`. O malware ataca 86 variáveis de ambiente e vários arquivos que podem conter credenciais para serviços como **OpenAI Codex**, **Anthropic**, **Claude**, **Google Gemini**, **Cursor**, **Amazon Web Services (AWS)**, **Docker**, **Kubernetes**, **npm**, configurações de vault e arquivos da carteira de criptomoedas **Exodus**.
Um detalhe incomum é a lógica do stealer para pular a própria carteira de criptomoedas do ator de ameaça, que atualmente não apresenta transações registradas.
**JFrog** descreve **IronWorm** como "uma arma de cadeia de suprimentos construída para encontrar segredos, modificar projetos e injetar código malicioso para se auto-propagar pelo **GitHub**." Commits maliciosos, abrangendo nove organizações **GitHub**, foram introduzidos sob o nome de autor "claude" ([email protected]) em uma tentativa aparente de imitar o chatbot de IA da **Anthropic**.
Análises adicionais revelaram que a conta **npm** comprometida `asteroiddao` corresponde à organização **GitHub** `asteroid-dao`, com `ocrybit` como membro. O malware roubou as credenciais de `ocrybit`, usando-as para enviar commits através de repositórios acessíveis, plantando malware em outros pacotes para infecção downstream.
Este payload também é equipado para trocar fluxos **GitHub Actions** existentes por um capaz de coletar segredos, escrevê-los em um arquivo de aparência inofensiva e enviá-los como um artefato de build, eliminando a necessidade de um servidor externo de comando e controle (C2). Em ambientes **CI**, ele abusa do fluxo **Trusted Publishing** do **npm** para obter tokens de curta duração e enviar versões corrompidas para o registro. O malware também incorpora um payload **eBPF** agindo como um rootkit em nível de kernel para ocultar processos, embora isso falhe em sistemas com lockdown de kernel habilitado.
## Worm Miasma Ressurge
Concomitantemente, **Endor Labs** e **StepSecurity** divulgaram uma campanha de ataque distinta na cadeia de suprimentos. Esta campanha comprometeu 57 pacotes **npm** em mais de 286 versões maliciosas para distribuir uma nova variante do worm **Miasma**. Este worm anteriormente infectou 32 pacotes em mais de 90 versões sob o namespace **npm** `@redhat-cloud-services` em 72 segundos.
Alguns dos pacotes afetados incluem:
* `ai-sdk-ollama`
* `autotel`
* `awaitly`
* `effect-analyzer`
* `eslint-plugin-awaitly`
* `executable-stories-cypress`
* `http-uploader-dev`
* `mountly`
* `node-env-resolver`
* `node-env-resolver-aws`

Dados roubados desta campanha foram exfiltrados para uma conta **GitHub** agora inacessível, `liuende501`, que hospedou 236 repositórios. A origem da remoção da conta (GitHub ou o ator de ameaça) permanece desconhecida.
O pesquisador da **StepSecurity**, Sai Likhith, destacou uma técnica inovadora chamada "**Phantom Gyp**." Em vez de depender de scripts de ciclo de vida `preinstall` ou `postinstall` comumente monitorados, o atacante abusa de um arquivo `binding.gyp` de 157 bytes para acionar a execução de código durante `npm install`, contornando muitas verificações de segurança.
Semelhante a incidentes anteriores do **Miasma**, esta cadeia de ataque baixa e instala o runtime **Bun JavaScript**, usando-o para carregar um coletor abrangente de credenciais. Este coletor é adaptado para extrair segredos de **AWS**, **Google Cloud**, **Microsoft Azure**, **HashiCorp Vault**, **Docker**, **Kubernetes**, **GitHub Actions**, **npm**, **RubyGems**, **PyPI**, **SSH**, gerenciadores de senhas e assistentes de IA.
"A capacidade mais nova e preocupante desta variante é seu alvo em configurações de assistentes de codificação de IA", observou a **StepSecurity**. O malware injeta arquivos de backdoor persistentes em repositórios de projetos que executam sempre que um desenvolvedor abre o projeto em um IDE com assistência de IA.
Recomenda-se fortemente aos desenvolvedores que instalaram uma versão afetada que rotacionem credenciais, desabilitem scripts de instalação e reconstruções nativas por padrão e garantam que os pacotes sejam fixados com hashes de integridade.
A **Red Hat** revelou que a causa raiz do incidente anterior de cadeia de suprimentos **Miasma** foi provavelmente uma conta **GitHub** comprometida usada para enviar commits não autorizados para repositórios dentro da organização **GitHub** **RedHatInsights**.
A análise da **Microsoft** da campanha observou: "O payload operou em Linux, macOS e Windows baixando dinamicamente o runtime **Bun** correto para cada plataforma, embora os runners de CI/CD Linux parecessem ser o alvo principal." Em sistemas de desenvolvedores, o malware roubou chaves **SSH**, credenciais de interface de linha de comando (CLI), dados de navegador e carteira. Em ambientes de CI/CD, ele coletou a memória do runner **GitHub Actions** em busca de segredos, escalou privilégios usando `sudo` sem senha e republicou pacotes corrompidos com **proveniência de Supply-chain Levels for Software Artifacts (SLSA)** forjada para continuar a propagação downstream.
## Cadeia de Ataque e Persistência em Evolução
O payload **Miasma** é acreditado ser um derivado do worm **Shai-Hulud**, anteriormente usado pela **TeamPCP** em outras campanhas, com alterações em grande parte cosméticas. A atribuição dos ataques mais recentes permanece incerta, especialmente porque a **TeamPCP** lançou publicamente o código **Shai-Hulud**.

A **OX Security** descobriu estágios adicionais na cadeia de ataque **Miasma**, incluindo buscas por commits **GitHub** contendo a string "firedalazer" (substituindo o dead drop anteriormente sinalizado "**FIRESCALE**") para recuperar outro payload — um arquivo JavaScript (`index.js`) contendo uma versão alternativa do worm **Shai-Hulud**, criando efetivamente um loop de infecção perpétuo. Neste cenário, os dados roubados são exfiltrados para repositórios **GitHub** públicos.
Essas campanhas contínuas ressaltam a necessidade crítica de medidas robustas de segurança na cadeia de suprimentos, monitoramento contínuo e vigilância dos desenvolvedores para proteger contra malware cada vez mais sofisticado.