Retorno do Mini Shai-Hulud: novo ataque compromete 320 pacotes NPM e rouba credenciais em massa
Campanha de segurança conhecida retorna com nova onda de ataques à cadeia de suprimentos JavaScript. Mais de 320 pacotes NPM foram comprometidos, afetando milhões de instalações semanais e colocando credenciais de desenvolvedores em risco.
Lead
Uma nova onda da campanha de ataque à cadeia de suprimentos do JavaScript voltou com força no dia 19 de maio. O grupo TeamPCP conseguiu comprometer a conta de um mantenedor NPM e lançou centenas de versões maliciosas em poucas horas, afetando milhões de instalações semanais de bibliotecas populares. O ataque reutiliza código da operação anterior — batizada de Mini Shai-Hulud — e adiciona novas técnicas sofisticadas de roubo de credenciais.
Contexto Técnico e Histórico
O Mini Shai-Hulud é uma campanha conhecida nos círculos de segurança, marcada por ataques repetidos contra o registro NPM. Desta vez, os atacantes obtiveram acesso à conta atool, responsável por manutenção de 547 pacotes na plataforma. Em uma ação coordenada que durou aproximadamente 22 minutos no horário UTC, o grupo publicou mais de 300 versões comprometidas, atingindo pacotes do ecossistema @antv — uma suite popular de bibliotecas para visualização de dados incluindo g6 e echarts-for-react. A rapidez da operação — implementada em duas ondas consecutivas — demonstra automação sofisticada e conhecimento profundo da infraestrutura do npm.
Mecanismo de Execução e Propagação Autônoma
O vetor de ataque utilizado foi relativamente simples em aparência, mas devastador na prática. Os atacantes modificaram os arquivos package.json das bibliotecas comprometidas, injetando um comando preinstall que executava código JavaScript malicioso no momento da instalação. Uma vez dentro do ambiente da vítima, o malware coletava mais de 80 variáveis de ambiente e vasculhava mais de 100 caminhos de arquivo do sistema, extraindo credenciais de plataformas como AWS, Azure, Google Cloud, Kubernetes, Docker e registros npm. O código roubado era criptografado em múltiplas camadas — primeiro com AES-256-GCM e depois com RSA-OAEP — antes de ser exfiltrado para servidores de comando e controle do atacante. O malware possuía ainda capacidade de auto-propagação: validava tokens npm roubados, identificava outros pacotes mantidos pelas vítimas e reinjetava código malicioso em novos tarballs, propagando-se de forma autônoma. Pesquisadores descobriram que o grupo conseguiu até abusar de tokens OIDC de ambientes CI/CD comprometidos para gerar atestações Sigstore falsas, fazendo pacotes maliciosos aparecerem como legitimamente assinados.
Escala e Impacto Massivo
Os números revelam a magnitude da operação: 320 pacotes foram diretamente comprometidos na primeira onda, resultando em 639 versões maliciosas disponibilizadas no registro npm. Historicamente, a campanha Mini Shai-Hulud já atingiu 1.055 versões distribuídas em 502 pacotes únicos ao longo de todas as suas iterações. Os pacotes afetados acumulam aproximadamente 16 milhões de downloads semanais, o que significa que centenas de milhares de desenvolvedores e empresas potencialmente fizeram download de código malicioso sem saber. Entre as bibliotecas mais populares atingidas estão timeago.js com 1,5 milhão de downloads semanais e echarts-for-react com 1,1 milhão. Mais preocupante: o malware deixava backdoors persistentes em arquivos de configuração do VS Code e do Claude Code, permitindo acesso remoto contínuo mesmo após remoção dos pacotes comprometidos.
Recomendações e Encaminhamentos
A comunidade de desenvolvimento reage rapidamente ao risco. Analistas de segurança como Snyk, Palo Alto Networks Unit42 e Wiz publicaram avisos recomendando auditoria imediata de dependências. Desenvolvedores devem verificar históricos de instalação e renovar imediatamente todas as credenciais que possam ter sido expostas — incluindo tokens GitHub, AWS Access Keys, Azure credentials e qualquer outra forma de autenticação usada em máquinas de desenvolvimento ou CI/CD. O npm bloqueou as versões afetadas e empresas como a GitHub implementaram mitigações nos ambientes de Actions. Este incidente reforça a fragilidade crescente da cadeia de suprimentos do software aberto e a necessidade urgente de verificação criptográfica de pacotes e rotação contínua de segredos em pipelines de build.
Fontes: TecMundo, Snyk, SecurityWeek, Wiz, Palo Alto Networks Unit42.
Discussão no X
Intensidade da discussão: alta