- Sete pacotes npm disfarçados com o Adspect usavam filtragem de tráfego, CAPTCHAs falsos e truques anti-pesquisa; um deles atuava como isca.
- Um spam em larga escala, apelidado de "IndonesianFoods", explorou scripts inativos, nomes padronizados e encadeamento de dependências para inundar o registro.
- O escopo foi ampliado de dezenas de milhares para mais de 150,000 pacotes; o Amazon Inspector e o OpenSSF coordenaram a identificação de malware (MAL-ID) e a remoção dos mesmos.
- As medidas de mitigação incluem auditorias de dependências, direitos de publicação restritos, SCA para arquivos inativos, limitação de taxa, SBOMs e verificação de conta mais robusta.
Como o centro mais movimentado do ecossistema JavaScript, o registro npm está lidando com duas ameaças muito diferentes ao mesmo tempo.Um pequeno conjunto de pacotes que redirecionam silenciosamente os usuários por meio de camuflagem, e uma campanha extensa que publica em massa conteúdo irrelevante para obter recompensas em criptomoedas. Ambos os problemas, embora distintos, revelam lacunas já conhecidas em defesas da cadeia de suprimentos.
Pesquisadores de diversas equipes relatam que Os atacantes combinaram camuflagem de tráfego, automação e distribuição de código aberto. Seja para direcionar as vítimas a destinos suspeitos ou inundar o índice com pacotes de baixo valor em uma escala sem precedentes, esses casos destacam como incentivos e ferramentas podem ser distorcidos contra a comunidade quando as medidas de segurança não acompanham a criatividade dos atacantes.
Redirecionamentos baseados em camuflagem transformam pacotes npm em portões de tráfego.
Os investigadores identificaram sete pacotes npm ligados a um único ator que usar o serviço Adspect para separar usuários reais de pesquisadores e ocultar a verdadeira carga útilOs pacotes, atribuídos a uma conta agora removida chamada “dino_reborn”, apareceram entre setembro e novembro de 2025 com contagens de downloads na casa das centenas.
Seis dos pacotes continham um componente de aproximadamente 39 kB que Identifica o ambiente, bloqueia ferramentas de desenvolvedor no navegador. (para dificultar a análise) e executa imediatamente através do padrão IIFE do JavaScript assim que é importado. Um sétimo pacote, “signals-embed”, destacou-se por Entregar uma página branca inofensiva como isca. em vez de comportamentos abertamente maliciosos.
Quando os sites implantados são carregados, o tráfego é enviado através de um endpoint proxy em associação-googlexyz/adspect-proxyphp, que ajuda a determinar se o visitante parece ser uma vítima ou um pesquisador. Se classificado como vítima, o usuário vê um CAPTCHA falso que, em última instância, redireciona para páginas com temática criptográfica que se fazem passar por serviços. (ex.: StandX). Se sinalizada como uma possível analista, a página exibe uma visualização falsa e até inclui um texto padrão relacionado a uma empresa fictícia chamada Offlido.
A Aspect se apresenta como uma Serviço de camuflagem na nuvem para bloquear tráfego "indesejado", como bots ou rastreadores de antivírus., oferecendo planos com diferentes níveis e prometendo “invisibilidade à prova de balas”. Observando esse tipo de filtragem no estilo da tecnologia de anúncios incorporado A presença de pacotes npm continua sendo incomum, e os pesquisadores observam que isso é eficaz. encapsula a lógica de controle de tráfego em uma distribuição de código aberto. Assim, o código decide em tempo real quem recebe a carga útil real.
Porque a lógica é executada assim que o recurso é carregado, Nenhuma interação do usuário é necessária para ativar o comportamento.Esse fluxo de execução imediato — e os bloqueios em nível de navegador nas ferramentas de desenvolvedor — complicam a análise e ajudam a manter o esquema fora da vista de uma inspeção casual.
Uma extensa operação de spam no npm impulsionada por recompensas em tokens.
Em um desenvolvimento separado, as equipes de segurança descobriram um amplo conjunto de pacotes npm de spam publicado em ondas ao longo de aproximadamente dois anos, inicialmente parecendo inofensivo, mas concebido para replicação e ganho financeiro. Conhecido coletivamente como “IndonesianFoods”, o projeto utilizou um esquema de nomenclatura consistente que combina Nomes próprios indonésios aleatórios com termos relacionados à comida e vários sufixos para gerar milhares de nomes de pacotes com sonoridade plausível.
À primeira vista, muitas inscrições pareciam legítimas — algumas até foram enviadas. Modelos funcionais do Next.jsMas, enterrados lá dentro, havia arquivos não utilizados como auto.js or publishScript.js que, quando executado manualmente, produzia novos pacotes em alta velocidade., versões modificadas e remoção de proteções de privacidade. É essa automação fácil de implementar — e não um comportamento verdadeiramente autônomo semelhante a um verme — que impulsionou a rápida expansão.
A rede de spam frequentemente fazia referência a oito ou dez outras dependências falsas. ampliando o impacto por meio de cadeias de dependênciaAo instalar uma delas, o npm pode silenciosamente baixar dezenas de outras, aumentando a desordem no registro sem causar danos imediatos e óbvios às máquinas dos desenvolvedores.
A monetização parece estar ligada a Recompensas de código aberto do protocolo TEAVários pacotes incluídos chá.yaml apontando para contas e endereços de carteira específicos — sugerindo um esforço para Inflar as pontuações de impacto e extrair pagamentos simbólicos.Em alguns casos, a documentação até mencionava esses ganhos, reforçando a noção de um plano coordenado e orientado para o lucro, em vez de experimentação aleatória.
Diferentes grupos de pesquisa mediram a onda em vários estágios: as descobertas variaram de aproximadamente 43,000 uploads de spam no início da campanha para mais de 100,000 posteriormente, com O Amazon Inspector acabou relatando mais de 150,000 pacotes. em várias contas até meados de novembro de 2025. O crescimento exposto limites de taxa de registro, verificações de metadados e detecção de padrão como áreas que necessitam de atenção.
Por que os scanners não detectaram e o que mudou?
Um dos principais motivos para a campanha ter durado tanto tempo é que a maioria das ferramentas automatizadas busca por malware de tempo de instalação—por exemplo, suspeito pós-instalação ganchos ou atividade do sistema de arquivos. Aqui, a carga útil estava ociosa e sem referências, então as heurísticas comuns a rotularam como inofensiva. Sem gatilhos ativos, os scanners frequentemente tratou os arquivos extras como desordem inofensiva..
Outro fator foi a escala e a frequência das publicações: Os scripts poderiam enviar novos pacotes a cada poucos segundos., criando um volume enorme sem acionar as assinaturas clássicas de malware. Relatórios indicam que vários sistemas de dados de segurança foram inundados com avisos, incluindo picos massivos em alertas vinculados ao OSV.
Até o final de outubro de 2025, o Amazon Inspector implementou uma nova regra de detecção. combinado com padronização orientada por IA para identificar características reveladoras, como a presença do arquivo tea.yaml, código clonado ou mínimo, nomes previsíveis, impressões digitais de geração automatizada e cadeias de dependência circulares. Após confirmar os padrões no início de novembro, a equipe coordenou com o Fundação de Segurança de Código Aberto (OpenSSF) Para atribuir IDs MAL rapidamente, o tempo médio de resposta era de cerca de 30 minutos.
Uma nuance importante: alguns comentários iniciais chamaram a campanha de "verme". Atualizações posteriores esclareceram que A lógica de replicação não é autopropagável.; deve ser executada. Essa correção é importante, mas o resultado—inundação rápida e industrializada de pacotes—infraestrutura de registro e confiança ainda fragilizadas.
Medidas práticas para reduzir a exposição
As organizações devem abordar a redução de riscos do npm como um processo contínuo e em camadas, combinando uma higiene proativa de dependências com controles baseados em políticas e registros. As medidas a seguir refletem as recomendações de pesquisadores e gestores de ecossistemas.
- Verificar dependências em relação a listas de editores notoriamente ruins e remover pacotes suspeitos ou de baixa qualidade.
- Restringir publicação do npm Permissões para CI/CD e mantenedores verificados; prevenção da execução acidental de scripts de replicação.
- Adotar análise de composição de software (SCA) capaz de sinalização de arquivos inativos, nomenclatura padronizada ou redes de dependência circular..
- Introduzir monitoramento comportamental e de limitação de taxa Para envios em grande volume, considere o uso de CAPTCHA e uma verificação de conta mais rigorosa.
- Reforce seu oleoduto com SBOMs, fixação de versão e CI/CD isoladoAlém disso, são realizadas verificações rigorosas de assinatura e procedência.
Quando combinadas, essas medidas Reduzir o ruído no registro, ao mesmo tempo que facilita a detecção de comportamentos maliciosos ou manipuladores.Eles também reduzem o raio de explosão caso um pacote defeituoso entre na área de cobertura.
Em ambos os incidentes, o fio condutor é simples: Os atacantes seguem incentivos e pontos cegos.Seja por meio de lógica de ocultação que impede a identificação de vítimas ou por meio de mineração automatizada de tokens que ofusca o trabalho legítimo, a resposta reside em maior visibilidade, colaboração mais ágil e políticas que dificultem e encareçam o abuso em larga escala.
