Uma nova onda da campanha Mini Shai-Hulud comprometeu mais de 320 pacotes NPM na madrugada de 19 de maio. Os atacantes assumiram o controle da conta 'atool' e publicaram 639 versões maliciosas entre 01h56 e 02h56 UTC. O ataque atingiu bibliotecas populares do ecossistema de visualização de dados @antv e rouba credenciais de desenvolvedores e ambientes de CI/CD.
A conta comprometida tinha acesso a mais de 500 pacotes. Entre os atingidos está o timeago.js, que registra 1,5 milhão de downloads semanais. O echarts-for-react, com 1,1 milhão de downloads semanais, também foi infectado.
Nossos vídeos em destaque
Conta comprometida expôs milhões de downloads
O ataque começou às 01h56 UTC e terminou às 02h56 UTC. Os atacantes publicaram versões maliciosas de pacotes do namespace @antv, usado para criar gráficos, visualizações e mapas. Pacotes populares fora desse namespace também foram comprometidos.
)
A Microsoft alertou que o ataque se propagou para aplicações e ambientes de CI/CD muito além dos pacotes inicialmente infectados. A Socket, empresa de segurança, rastreia agora 1.055 versões comprometidas em 502 pacotes únicos ao longo de toda a campanha Mini Shai-Hulud.
Pesquisadores da Endor Labs destacaram que alguns pacotes afetados não recebiam atualizações legítimas há anos. O jest-canvas-mock, por exemplo, ainda tem 10 milhões de downloads mensais mas está inativo há três anos. Isso significa que não tinham recursos de segurança mais recentes configurados.
Malware rouba credenciais e ataca ambientes de CI/CD
Cada pacote comprometido carrega um payload ofuscado que executa durante a instalação. O código malicioso lê a memória de processos do GitHub Actions para extrair segredos de CI/CD em texto simples. O malware também coleta credenciais de mais de 130 caminhos de arquivos diferentes.
)
Os alvos incluem contas da AWS, GCP, Azure, Kubernetes, HashiCorp Vault, carteiras de criptomoedas e ferramentas de desenvolvimento. A StepSecurity explica que o payload também busca tokens SSH, chaves Docker e credenciais de bancos de dados. O foco principal são estações de trabalho de desenvolvedores e ambientes de CI/CD.
Os dados roubados são serializados, comprimidos com Gzip e criptografados com AES-256-GCM. Depois, recebem uma camada adicional de criptografia RSA-OAEP. Isso dificulta a inspeção de rede pelos times de segurança.
Atacantes criam repositórios falsos no GitHub das vítimas
O malware usa duas formas de exfiltração dos dados roubados. O canal principal é a rede P2P Session, que funciona com tráfego criptografado ponta a ponta na porta TCP/443. Isso torna a detecção muito difícil, isso porque o tráfego é indistinguível de uso legítimo do aplicativo Session.
)
Quando o malware encontra credenciais do GitHub, ele usa a API para criar automaticamente novos repositórios na conta da vítima. Os dados roubados são enviados para esses repositórios. A Aikido identificou mais de 2.700 repositórios fraudulentos no GitHub com marcadores da campanha.
Esses repositórios possuem um arquivo Readme com a string "niaga og ew ereh :duluh-iahs". Isso é o reverso de "Shai-Hulud: Here We Go Again", frase usada no vazamento do malware Shai-Hulud na semana passada. Atualmente existem pelo menos 2.900 repositórios no GitHub gerados por este ataque.
Malware se propaga sozinho e gera assinaturas falsas
O payload tem capacidade de autopropagação. Ele valida tokens NPM roubados, enumera os pacotes que a vítima mantém e baixa os arquivos tarball desses pacotes. Depois, injeta o código malicioso, adiciona um hook de pré-instalação e republica as versões modificadas com números de versão incrementados.
)
A Endor Labs identificou uma nova capacidade nesta variante. O malware consegue gerar atestações de proveniência Sigstore válidas ao abusar de tokens OIDC de ambientes CI comprometidos. Basicamente, os pacotes maliciosos podem parecer legitimamente assinados e passar por verificações de proveniência padrão.
Backdoors em VS Code e Claude Code garantem persistência
A Aikido Security confirmou que esta variante apresenta diferenças técnicas importantes. O payload agora é menor e o malware instala backdoors persistentes nas configurações do VS Code e do Claude Code. Isso garante que os atacantes mantenham acesso mesmo após a limpeza inicial.
A Socket observou que o payload também baixa e executa código Python da infraestrutura dos atacantes. Isso fornece aos operadores capacidades de execução remota contínua nos sistemas comprometidos. A StepSecurity identificou mais de 2.200 repositórios do GitHub contendo dados exfiltrados.
O Python SDK Durabletask da Microsoft também foi comprometido nesta campanha. Três versões maliciosas foram enviadas ao PyPI em uma janela de 35 minutos. O GitHub Action actions-cool/issues-helper também foi comprometido e pode ser vinculado a esta campanha, segundo a Wiz.
Acompanhe o TecMundo nas redes sociais. Inscreva-se em nossa newsletter e canal do YouTube.
)
)
)
)
)
)
)