playbook de worms npm

O Manual de Estratégias do Worm npm: O mesmo ataque, três vezes em oito meses.

Três vezes em oito meses, o mesmo padrão de ataque de worm npm funcionou. Ataques diferentes, pacotes diferentes, a mesma mecânica e o mesmo intervalo de tempo entre a publicação e a detecção que tornou cada um possível. Se você está se perguntando o que é um worm npm e por que o padrão continua se repetindo em vez de ser corrigido, esta é a resposta honesta: incidentes, mecânicas e a única lacuna que mesmo uma estrutura defensiva sólida ainda deixa aberta.

O que é um worm npm?

Um worm npm é um código malicioso publicado no registro npm que se propaga automaticamente para outros pacotes assim que é executado, geralmente roubando as credenciais de publicação de um mantenedor e usando-as para injetar a mesma carga maliciosa em todos os pacotes que esse mantenedor controla. É um "worm" no sentido clássico: não espera que alguém o instale deliberadamente, ele se propaga sozinho, de pacote para pacote, de conta para conta, na velocidade da máquina.

Essa autopropagação é o que diferencia um incidente com um worm do npm de um pacote malicioso comum. Um único pacote malicioso é uma agulha num palheiro. Um worm do npm transforma cada mantenedor comprometido em um novo ponto de distribuição, e o palheiro começa a gerar suas próprias agulhas.

Os maiores incidentes de worms do npm até agora

O último ano proporcionou ao padrão de worm npm três testes em situações reais, cada um mais eficiente que o anterior:

  • Shai-Hulud (setembro de 2025). O primeiro worm npm autopropagável documentado. Ele comprometeu as credenciais dos mantenedores e as usou para publicar versões maliciosas de todos os pacotes sob o controle desses mantenedores, transformando os próprios desenvolvedores no mecanismo de entrega para o próximo estágio do worm.
  • axios (março de 2026). Um malware de Estado-nação oculto dentro de um pacote baixado cerca de 100 milhões de vezes por semana. Não se trata de um worm no sentido estrito de propagação, mas sim de uma prova de que o mesmo modelo de confiança do ecossistema npm explorado por Shai-Hulud poderia transportar uma carga útil em uma escala verdadeiramente massiva.
  • SAP npm (abril de 2026). Descrito na época como um mini Shai-Hulud: o mesmo padrão de verme, repetido em grande escala, menos de um ano após o incidente original. O mecanismo não havia mudado. As defesas, em sua maioria, também não.

Três incidentes com o worm npm, um padrão repetitivoComprometer uma editora confiável, usar suas credenciais para propagar automaticamente a informação e contar com a lacuna entre a publicação e a detecção pela comunidade para fazer o resto.

Cronologia dos maiores ataques à cadeia de suprimentos do npm, 2025-2026 Oito ataques à cadeia de suprimentos do npm entre agosto de 2025 e junho de 2026. A cor laranja indica campanhas de worms autopropagáveis; a cor cinza indica comprometimento de credenciais ou tokens. 26 Agosto, 2025 Compromisso de angularidade Nx/s1 Token de publicação roubado 8 de setembro de 2025 sequestro de giz/depuração Conta de administrador comprometida por phishing 14 de setembro de 2025 Verme Shai-Hulud Primeiro verme autopropagável 24 Novembro, 2025 Shai-Hulud 2.0 Variante de verme mais evasiva Mar 2026 malware de estado-nação Axios Malware estatal, 100 milhões de downloads por semana abril 2026 Compromisso SAP npm Enterprise-padrão de verme em escala 11 de maio de 2026 TanStack CI/CD compromisso Roubo de token CI, 84 versões Junho 1, 2026 Compromisso de namespace da Red Hat SLSA válido, ainda malicioso. Verme autopropagável Comprometimento de credenciais ou tokens
Oito ataques à cadeia de suprimentos do npm, de agosto de 2025 a junho de 2026. A cor laranja indica campanhas de worms que se propagam automaticamente.

O padrão que se repete

Se abstrairmos os detalhes, todos os incidentes com worms do npm seguem os mesmos quatro padrões:

  • Comprometimento da conta. Token de publicação de um mantenedor, npm Conecte-seOu seja, as credenciais de CI são roubadas, geralmente por meio de phishing, vazamento de segredos ou comprometimento de uma dependência em um nível superior da cadeia de suprimentos.
  • Injeção silenciosa. O atacante envia uma nova versão de um pacote legítimo e confiável com código malicioso adicionado, geralmente dentro de um script de pós-instalação ou outro script de ciclo de vida que é executado automaticamente no momento em que alguém o instala.
  • Propagação automática. Se o responsável pela manutenção do pacote comprometido controlar outros pacotes, ou se o próprio script malicioso coletar mais credenciais, o worm se espalha para o próximo pacote e o próximo responsável pela manutenção sem que o atacante precise fazer mais nada.
  • O atraso na detecção. O pacote permanece ativo no registro, instalável por qualquer pessoa, até que alguém o perceba, o denuncie e ele seja removido. Esse intervalo, que em alguns casos leva horas, em outros, dias, é toda a janela de tempo necessária para o worm se propagar.

Reconhecer que o quarto instante é o que realmente importa para a defesa. Toda estratégia de mitigação para um incidente de worm npm é, em sua essência, uma tentativa de reduzir ou contornar essa defasagem na detecção.

Uma estrutura que vale a pena citar: a resposta da SIP ao problema do tempo de espera.

Nem toda resposta a esse padrão vem de um fornecedor. Uma das mais claras é SIP, Plano de Segurança Imediata de Mohammad-Ali A'râbi, uma estrutura de emergência com cinco controles para riscos na cadeia de suprimentos de software, que surgiu de uma pergunta muito prática feita ao final de uma sessão da SafeDev: “Se pudermos fazer apenas algumas coisas, o que devemos fazer primeiro?”

O segundo controle do SIP visa diretamente o problema do worm npm: congelar dependências não verificadas com um período de espera de cinco dias e desativar scripts de ciclo de vida para que um script de pós-instalação malicioso não possa ser executado automaticamente durante a instalação. Na prática, isso é min-release-age=5 e ignore-scripts=true em um projeto .npmrc, implementado na CI para que um arquivo de bloqueio não possa resolver silenciosamente um pacote publicado ontem. É um controle realmente sólido e de baixo esforço, que visa diretamente a mesma lentidão de detecção da qual todos os incidentes de worms do npm dependem. Veja mais:

Onde o período de recarga ainda deixa uma lacuna

Um período de espera é uma aposta: que a comunidade perceba e denuncie um pacote malicioso antes do término desse período. Na maioria das vezes, essa aposta se confirma. Uma parcela significativa de pacotes comprometidos é sinalizada nos primeiros dias após a publicação, e é exatamente por isso que um período de cinco dias é um padrão razoável.

Mas um worm npm não se comporta como um pacote malicioso típico, e isso muda o que um período de espera fixo pode ou não fazer por você.

Para ser précise sobre velocidade: Um worm de propagação rápida não burla o tempo de espera em si. Se você impõe uma idade mínima de lançamento estrita, os pacotes publicados durante a onda inicial ainda são muito recentes para entrar em uma compilação, não importa quantos pacotes o worm comprometa nesse meio tempo. A velocidade importa, mas importa para todos os usuários subsequentes que não estão sujeitos a um tempo de espera, não para burlar um que já esteja em vigor.

A verdadeira limitação é a paciência. Uma carga útil mais cuidadosa pode permanecer inativa após o período de resfriamento, ativando-se somente após o término do prazo e quando o pacote atingir a zona de "confiabilidade".cisSim, porque sabe que um tempo de recarga está sendo observado. Esse é o cenário em que um tempo de recarga fixo por si só não é suficiente, e exatamente onde algo como a detecção baseada em evidências do MEW precisa estar presente em conjunto, e não em substituição a ele.

Nenhum dos modos de falha representa uma falha no raciocínio do SIP. Um período de espera é uma aposta na detecção pela comunidade, e a detecção pela comunidade tem um limite: ela não consegue detectar o que ainda não foi relatado. Essa não é uma lacuna exclusiva do SIP, mas sim uma limitação estrutural de qualquer sistema de defesa que aguarda a existência de uma assinatura, um aviso ou um relatório público antes de agir.

Como MEW reduz a diferença na janela de recarga

Isto é précisapenas a lacuna Alerta Antecipado de Malware (MEW) da Xygeni O MEW foi desenvolvido para ser eficaz. Em vez de esperar por relatórios da comunidade ou por uma assinatura publicada, o MEW verifica continuamente o NPM, o PyPI e o Maven à medida que novos pacotes e versões são publicados, analisando o comportamento em vez de compará-los com ameaças conhecidas. Quando algo parece malicioso, é colocado em quarentena e a descoberta é confirmada por pesquisadores de segurança antes da divulgação pública, não depois.

Essa distinção é importante para ambos os modos de falha do worm npm mencionados acima. Contra um worm de propagação rápida, a detecção prévia à assinatura não precisa dos cinco dias que um período de espera pressupõe. Contra uma carga útil paciente e inativa, a análise comportamental do MEW não busca por idade ou reputação, mas sim pelo que o código realmente faz; portanto, esperar o período de espera não traz nenhuma vantagem ao atacante.

O Firewall de Dependências do MEW estende isso até o momento da instalação, bloqueando um pacote malicioso em tempo real, mesmo que ele tenha passado pelas verificações anteriores, e a mesma camada de detecção cobre o CI/CD Lado negativo de um incidente com um worm npm: o padrão unlock-branch, inject, re-lock que permite a um atacante enviar um arquivo malicioso. commit encobrir discretamente seus rastros, deixando um registro completo de auditoria caso isso aconteça.

SIP e MEW respondem à mesma pergunta, em níveis diferentes.

Nada disso torna o controle de cooldown do SIP errado, e vale a pena dizer claramente: um cooldown de cinco dias com scripts de ciclo de vida desativados ainda é uma das defesas mais rápidas e baratas que uma equipe pode implementar contra um incidente comum de worm npm, e deve fazer parte de qualquer plano sério de fortalecimento da cadeia de suprimentos. O que ele não consegue fazer, por design, é detectar o que a comunidade ainda não descobriu. Essa é uma tarefa para a detecção contínua baseada em comportamento, executada em segundo plano durante o cooldown, e não em vez dele.

Combinadas, as duas abordagens abrangem ambas as extremidades do mesmo problema: o SIP reforça a segurança da construção. pipeline, o congelamento de dependências e a imagem do contêiner em torno de um cenário de ameaças conhecido e divulgado, enquanto a detecção de pré-assinatura do MEW abrange os incidentes do worm npm que ainda não foram divulgados, aqueles que uma janela de resfriamento, por sua própria lógica, não consegue prever.

Perguntas frequentes

O que é um worm npm, em uma frase?
Código malicioso publicado no npm que se propaga automaticamente para outros pacotes, geralmente roubando as credenciais de um mantenedor e usando-as para injetar a mesma carga maliciosa em outros locais, sem necessidade de ação adicional por parte do atacante.

Todo pacote npm malicioso é um worm npm?
Não. Um pacote malicioso que não se propaga sozinho é um ataque à cadeia de suprimentos, mas não um worm. O que define especificamente um incidente de worm no npm é a etapa de autopropagação: uma invasão que leva automaticamente à próxima.

Um período de espera de dependência impede a propagação de um worm do npm?
Isso reduz significativamente o risco, já que a maioria dos pacotes maliciosos são relatados nos primeiros dias após a publicação. Mas um período de espera é uma aposta na velocidade de detecção da comunidade, e um worm npm de propagação rápida ou deliberadamente inativo pode ser criado especificamente para burlar essa janela de oportunidade.

O que, de fato, captura um worm do npm antes do período de resfriamento?
Análise contínua e baseada em comportamento que não depende da existência de uma assinatura ou de um relatório público. Essa é a lacuna específica que ferramentas de detecção pré-assinatura, como o MEW da Xygeni, visam preencher.

sca-tools-software-composição-análise-ferramentas
Priorize, corrija e proteja seus riscos de software
Crie sua conta gratuita.
Nenhum cartão de crédito é necessário.

Proteja seu desenvolvimento e entrega de software

com o Suíte de Produtos da Xygeni