Segurança do npm sob pressão: ataques wormable, phishing de mantenedores e regras mais rígidas do GitHub

Última atualização: 09/23/2025
  • 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.

ilustração de segurança npm

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

segurança do registro 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

reforço da segurança do pacote

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.

API
Artigo relacionado:
Evolução da API: Novas Fronteiras em Integração, Segurança e IA Agêntica

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.

Artigos relacionados: