Alerta NPM: Bibliotecas JavaScript importantes comprometidas

  • Uma campanha de phishing permitiu que versões maliciosas fossem publicadas no NPM e que bibliotecas JavaScript principais fossem comprometidas.
  • O malware agia como um crypto-clipper, substituindo endereços durante a assinatura de transações.
  • Baixo impacto econômico e rápida mitigação; vários provedores e carteiras não foram afetados.
  • Recomendações: Auditar dependências, corrigir versões, aplicar 2FA e verificar transações em carteiras de hardware.

Ilustração sobre JavaScript

A comunidade técnica investiga um ataque à cadeia de suprimentos do NPM que teve como alvo bibliotecas JavaScript amplamente utilizadas. De acordo com várias equipes de segurança, os invasores introduziram malware com funcionalidade de cripto-clipper em pacotes amplamente distribuídos, com potencial para alterar transações e desviar criptomoedas.

Embora o escopo potencial seja enorme devido à popularidade dessas dependências no ecossistema JavaScriptAs análises iniciais apontam para um impacto econômico limitado: pequenas quantias, abaixo de algumas centenas de dólares, teriam sido movimentadas enquanto fornecedores e o registro agiam para remover versões manipuladas.

Como a intrusão foi perpetrada

A intrusão começou com E-mails de phishing imitando o suporte oficial do npm, exigindo que os mantenedores de pacotes atualizem sua autenticação de dois fatores com urgência. Um site falso capturou credenciais e código, permitindo que invasores assumissem o controle de uma conta com permissões abrangentes (associada na comunidade ao pseudônimo "Qix") e publicar versões adulteradas de vários usos.

malware svg
Artigo relacionado:
Os invasores cibernéticos usam arquivos SVG para infectar com malware

Pesquisadores como a Aikido Security e o coletivo JDSTAERK descrevem uma campanha capaz de modificar conteúdo em sites, interceptar chamadas de API e alterar o que o usuário pensa que está assinando., aumentando o risco para serviços web que integram essas bibliotecas por meio de cadeias de dependência profundas.

Ecossistema de pacotes JavaScript

Pacotes afetados e escopo

A lacuna afetada utilidades muito básicas presentes em muitos projetos, portanto, mesmo computadores que não os instalam diretamente podem ter sido expostos por meio de dependências transitivas. Entre os nomes citados por empresas de segurança e desenvolvedores estão:

  • giz, giz-template, tira-ansi, fatia-ansi, wrap-ansi, suportes-cor
  • conversão de cor, nome da cor, sequência de cores
  • ansi-regex, estilos ansi, has-ansi
  • depurar, erro-ex, é-arrayish, swizzle simples
  • suporta-hiperlinks, barra invertida, proto-tinker-wc

Esses pedaços de software acumulam Milhões de downloads semanais e mais de um bilhão em registros históricos, atuando como blocos de construção fundamentais para servidores modernos, ferramentas de linha de comando e aplicativos da web.

Segurança em JavaScript

Como o malware opera

O código malicioso funcionou como um cripto-clipper:Ao detectar ambientes com carteiras de software (por exemplo, extensões como MetaMask), ele interceptou dados de transação pouco antes de assinar e substituiu o endereço de destino por outro controlado pelos atacantes.

Se não identificasse uma carteira ativa, o implante tentava uma exfiltração passiva de informações para servidores externos. Em cenários de carteira ativa, além de manipular chamadas de API, monitorava a área de transferência para reescrever endereços copiados pelo usuário, um truque clássico nesse tipo de fraude.

Especialistas apontam que aqueles que validar os detalhes de uma carteira de hardware na tela Eles têm uma barreira física que impede esse vetor: a confirmação final é feita no dispositivo e o endereço exibido não pode ser alterado pelo navegador ou pela web.

Impacto real até agora

Apesar da magnitude da exposição, o dinheiro movimentado pelos atacantes teria sido muito pequeno (dezenas a algumas centenas de dólares), de acordo com vários rastros da cadeia tornados públicos pelos pesquisadores. Vários fornecedores imediatamente alertaram e o registro desabilitou as postagens comprometidas dentro de algumas horas.

Equipes de carteira e serviço de criptomoedas, como Ledger, Trezor, MetaMask, Phantom ou Uniswap Eles relataram não terem sido afetados pelas versões alteradas nem estarem protegidos por defesas em camadas. No entanto, recomendam revisar cuidadosamente cada transação assinada e manter boas práticas de verificação.

O aviso para os desenvolvedores é claro: se um projeto dependências atualizadas durante a janela de confirmação, é uma boa ideia auditar toda a árvore e reconstruí-la com versões limpas, mesmo que o aplicativo não lide com criptomoedas diretamente.

O que desenvolvedores e equipes devem fazer

Além da remediação imediata, as organizações devem adotar controles da cadeia de suprimentos para reduzir a superfície de ataque em ambientes JavaScript e Node.js. As medidas prioritárias incluem:

  • Fixando versões e usando arquivos de bloqueio; desabilitando atualizações automáticas na produção.
  • Verificar assinaturas, somas de verificação e procedência; implementar políticas de revisão pré-publicação.
  • Habilite 2FA com chaves de segurança FIDO e girar tokens e segredos expor.
  • Integre scanners de dependência e SBOMs; monitore alterações inesperadas em pacotes críticos.
  • Reproduza compilações limpas e reverta rapidamente em caso de sinais de comprometimento.

Para os usuários finais, o conselho passa por verifique o endereço e o valor no dispositivo Antes de assinar, tenha cuidado com pop-ups inesperados e operações de pausa se você detectar comportamento estranho em sites comuns ou dApps.

Cronologia e protagonistas

A comunidade detectou a campanha no início da semana, altura em que se registaram números do sector como CTO da Ledger, Charles Guillemet, alertou sobre o risco dessas bibliotecas penetrarem em praticamente qualquer pilha JavaScript. Algumas horas depois, equipes como Blockaid e Aikido compartilharam listas de pacotes e artefatos analisados.

O mantenedor vinculado à conta comprometida confirmou nas redes sociais que foi vítima de um golpe de redefinição de 2FA e pediu desculpas enquanto coordenava com o NPM a remoção das postagens maliciosas. O provedor do registro indicou que está trabalhando com pesquisadores para sanar dúvidas e fortalecer os controles.

Embora tudo aponte para dano econômico limitadoO episódio deixa claro que a segurança do ecossistema JavaScript depende da proteção das identidades dos mantenedores, do reforço dos lançamentos de pacotes e da suposição de que as dependências são um elo crítico; reforçar esses pontos reduz a probabilidade de um incidente semelhante abrir portas para invasores novamente.