- Ataques ativos na cadeia de suprimentos do NPM aproveitaram phishing e invasões de contas de mantenedores para enviar lançamentos trojanizados.
- O malware autopropagante "Shai-Hulud" roubou segredos e republicou pacotes comprometidos em grande escala.
- O GitHub está aplicando controles mais fortes: 2FA para publicação local, tokens granulares de curta duração e publicação confiável.
- A orientação do ecossistema enfatiza a rotação de tokens, auditorias de dependência e adoção de fluxos de trabalho 2FA baseados em FIDO e OIDC.

O código aberto impulsiona o desenvolvimento moderno, mas sua escala e abertura também criam uma ampla superfície de ataque onde segurança npm deve evoluir constantemente para acompanhar o ritmo dos adversários.
Nas últimas semanas, pesquisadores e registros detalharam uma série de incidentes focados em npm que combinam engenharia social, roubo de credenciais e publicação de pacote malicioso—culminando em uma campanha wormável capaz de se espalhar por meio dos fluxos de trabalho de lançamento dos próprios mantenedores confiáveis.
Onda recente de ataques contra o ecossistema npm

Vários relatórios descrevem phishing direcionado aos mantenedores do npm, seguido pelo rápido lançamento de novas versões cargas úteis pós-instalação que são executados em máquinas de desenvolvedores e sistemas de CI.
Uma campanha, rastreada como “Shai-Hulud”, entregou um worm multiestágio que vasculhou ambientes em busca de segredos, abusou das APIs do GitHub e tentou autopropagar publicando pacotes contaminados em contas comprometidas.
As equipes de segurança e os registros reagiram rapidamente: o GitHub removeu centenas de pacotes afetados e adicionou blocos vinculados a indicadores de comprometimento de malware, etapas que interrompeu a propagação em todo o registro.
Investigações separadas vincularam as táticas a incidentes anteriores (incluindo o roubo de fluxo de trabalho “S1ngularity”/Nx e uma onda de atualizações de pacotes populares), destacando uma clara escalada do roubo de credenciais isoladas para cadeia de suprimentos automatizada Abuso.
- Os pacotes confiáveis foram atualizados com scripts pós-instalação projetados para coletar tokens e exfiltrar dados.
- Contas comprometidas publicaram novas versões, multiplicando o risco entre projetos e dependências downstream.
Roteiro do GitHub para fortalecer a publicação npm
Para conter o abuso de tokens e conter malware wormable, o GitHub descreveu mudanças que estreitam a superfície de ataque de publicação e elevam o nível de segurança. autenticação do mantenedor.
- A publicação local exigirá autenticação de dois fatores (2FA), sem opção de bypass.
- Os tokens granulares usados para publicação terão um vida útil máxima de sete dias.
- Os tokens clássicos legados serão descontinuados e publicação via tokens será desabilitado por padrão.
- O 2FA baseado em TOTP será eliminado gradualmente em favor de FIDO/Autenticação Web métodos.
- A publicação confiável será expandida, com mais publicações elegíveis Provedores de CI/CD.
Estas medidas serão introduzidas gradualmente, com documentação e suporte de migração para ajudar os mantenedores a se ajustarem fluxos de trabalho com segurança minimizando ao mesmo tempo a interrupção; consulte o impacto do GitHub Copilot no desenvolvimento para entender mudanças em fluxos de trabalho.
Como funciona a campanha Shai-Hulud
Os agentes de ameaças geralmente começam falsificando o npm ou serviços relacionados para enganar um mantenedor e, em seguida, usam credenciais roubadas para publicar uma atualização que executa um pós-instalação maliciosa seqüência.
Uma vez executado, o payload enumera variáveis de ambiente locais, arquivos de configuração, configurações npm e chaves de nuvem; ele também abusa das APIs do GitHub para listar repositórios acessíveis, criar ramificações e soltar um fluxo de trabalho malicioso que automatiza a coleta e persistência de segredos.
Os investigadores observaram o uso de utilitários de varredura secreta (por exemplo, TruffleHog) para ampliar a rede de credenciais coletadas antes de limpar os rastros. Os dados eram transferidos para endpoints controlados pelo invasor e, em alguns casos, enviados para um repositório público recém-criado, denominado “Shai-Hulud” sob a conta da vítima.
A característica definidora do worm é a auto-replicação: se tokens npm forem encontrados, ele tenta publicar pacotes alterados, transformando efetivamente os privilégios dos mantenedores em um mecanismo para spread exponencial.
- Principais comportamentos: abuso pós-instalação, operações automatizadas da API do GitHub e injeção de fluxo de trabalho de repositório.
- As ameaças incluem comprometimento de conta na nuvem, roubo de IP por meio de espelhos de repositório completos e movimento lateral entre organizações.
Âmbito e impacto
As equipes de pesquisa catalogaram centenas de versões afetadas em diversos projetos, incluindo bibliotecas amplamente utilizadas com milhões de downloads semanais, aumentando o raio de explosão para consumidores desavisados.
Os resultados da telemetria e da resposta a incidentes indicam que as organizações na América do Norte e na Europa estavam entre as mais expostas a cargas úteis relacionadas, com riscos que variam de criptojacking e roubo de dados para interrupção nos pipelines de construção e implantação.
Descobertas relacionadas à segurança do NPM a serem observadas
Os analistas também sinalizaram o fezbox, um pacote npm de curta duração que incorporava um Carga útil baseada em código QR técnica para buscar e executar JavaScript para obter credenciais do navegador de cookies — uma forma incomum de evasão esteganográfica.
Embora muitos aplicativos evitem armazenar senhas em cookies hoje em dia, o método ressalta a rapidez com que os invasores iteram ofuscação e entrega dentro de ecossistemas de pacotes.
Publicação confiável: uma mudança mais ampla entre os registros
A publicação confiável — recomendada por grupos de segurança de código aberto — substitui chaves de API de longa duração por chaves de API de curta duração. Identidades apoiadas pelo OIDC de sistemas de CI, reduzindo a proliferação de tokens e o risco de exfiltração.
Visto pela primeira vez no PyPI e posteriormente adotado por RubyGems, crates.io, npm e NuGet, essa abordagem traz procedência criptográfica e garantias mais fortes sobre Como e onde um pacote foi construído.
O que os mantenedores podem fazer agora
Existem medidas imediatas que os mantenedores e as equipes podem tomar para reduzir a exposição enquanto as defesas em nível de registro são implementadas e melhoram o desempenho geral postura de segurança de seus projetos.
- Adote a publicação confiável com o OIDC e remova publicações de longa duração Tokens de API de CI/CD.
- Habilitar e aplicar FIDO/WebAuthn 2FA para provedores npm, GitHub e CI.
- Revisar e bloquear permissões de publicação; remover tokens e contas não utilizados.
- Dependências de auditoria (especialmente atualizações recentes) e versões de pinos para reduzir o desvio da cadeia de suprimentos.
- Gire as credenciais do npm, GitHub e nuvem; assuma qualquer segredo presente em um máquina de desenvolvimento poderia ser exposto.
- Verifique se há arquivos de fluxo de trabalho suspeitos (por exemplo, .github/workflows/shai-hulud-workflow.yml) e ramos inesperados.
Indicadores e ideias de caça
As equipes podem reforçar a detecção com indicadores e consultas compartilhados, adaptando-os às ferramentas locais e evitando ruídos falso-positivo.
- Exemplo de SHA-256 observado na natureza: 46faab8ab153fae6e80e7cca38eab363075bb524edd79e42269217a083628f09
- Artefato de webhook relatado: hxxps://webhooksite/bb8ca5f6-4175-45d2-b042-fc9ebb8170b7
- Fique atento à criação de repositórios públicos denominados “Shai-Hulud” em contas de contribuintes.
- Procurar script de pós-instalação padrões de execução e rotatividade repentina de dependências.
Exemplos de dicas de caça (adaptáveis à sua plataforma): monitorar conexões com domínios de webhooksites; sinalizar gravações de shai-hulud-fluxo de trabalho.yml; alertar sobre linhas de comando que invocam “trufflehog” em agentes de construção; e revisar mudanças recentes no repositório que introduzem Fluxos de trabalho de CI sem aprovação.
Destaques da linha do tempo
No final de agosto, houve uma violação direcionada ligada a uma falha de fluxo de trabalho que vazou um token de publicação e levou a lançamentos trojanizados; no início de meados de setembro, ocorreu uma greve mais ampla envolvendo pacotes npm populares, e então a campanha Shai-Hulud com propagação semelhante a um verme e colheita secreta agressiva.
Ao longo do tempo, a resposta coordenada dos operadores de registo e dos fornecedores de segurança removeu versões comprometidas, bloqueou IoCs conhecidos e acelerou os planos para impor uma abordagem mais forte. aut. e procedência para publicação npm.
Esses incidentes mostram a rapidez com que um agente de ameaça pode transformar a confiança do mantenedor em distribuição para código malicioso, e por que o ecossistema está migrando para FIDO 2FA, credenciais de curta duração e lançamentos atestados por CI para eliminar classes inteiras de ataques.
