Pesquisar

Ataque Massivo ao npm: 2 Bilhões de Downloads Comprometidos

Em 8 de setembro de 2025, o ecossistema JavaScript foi abalado pelo que especialistas consideram o maior ataque à cadeia de suprimentos de software já registrado. Nesse artigo do blog Dolutech, analisaremos detalhadamente como atacantes conseguiram comprometer 20 pacotes populares do npm com mais de 2 bilhões de downloads semanais, expondo a vulnerabilidade crítica da nossa infraestrutura de desenvolvimento moderna.

O Que Aconteceu: Anatomia do Ataque

O ataque teve início quando cibercriminosos utilizaram técnicas sofisticadas de engenharia social para comprometer a conta do desenvolvedor Josh Junon (conhecido como “qix” no GitHub), mantenedor de pacotes extremamente populares como chalk, debug, ansi-styles e supports-color. A Dolutech identificou que este não foi um ataque aleatório, mas sim uma operação cuidadosamente planejada.

Vetor de Ataque: Phishing Sofisticado

Os atacantes criaram um domínio fraudulento (support@npmjs.help) que imitava perfeitamente o suporte oficial do npm. O e-mail de phishing utilizou uma estratégia psicológica eficaz, ameaçando o bloqueio da conta caso o desenvolvedor não atualizasse suas credenciais de autenticação de dois fatores (2FA) até 10 de setembro de 2025.

O e-mail fraudulento redirecionava para uma página que capturava username, senha e token 2FA, possivelmente utilizando um ataque adversário-no-meio (AitM) para burlar a autenticação dupla.

Pacotes Comprometidos e Impacto Global

Lista dos Pacotes Afetados

Os 20 pacotes comprometidos representam uma parcela significativa da infraestrutura JavaScript mundial:

  • chalk (300M downloads semanais) – Biblioteca para colorização de terminal
  • debug (358M downloads semanais) – Sistema de debug universal
  • ansi-styles (371M downloads semanais) – Estilos ANSI para terminal
  • supports-color (287M downloads semanais) – Detecção de suporte a cores
  • strip-ansi (261M downloads semanais) – Remoção de códigos ANSI
  • wrap-ansi (198M downloads semanais) – Quebra de linha com suporte ANSI
  • color-convert (194M downloads semanais) – Conversão de cores
  • ansi-regex (244M downloads semanais) – Regex para códigos ANSI

Nós, como especialistas em cibersegurança, sabemos que esses pacotes são dependências fundamentais em milhões de projetos JavaScript, amplificando exponencialmente o alcance do ataque.

Comando para verificar se está rodando pacotes comprometidos:

npm ls ansi-styles@6.2.2 debug@4.4.2 chalk@5.6.1 supports-color@10.2.1 strip-ansi@7.1.1 ansi-regex@6.2.1 wrap-ansi@9.0.1 color-convert@3.1.1 color-name@2.0.1 is-arrayish@0.3.3 slice-ansi@7.1.1 color@5.0.1 color-string@2.1.1 simple-swizzle@0.2.3 supports-hyperlinks@4.1.1 has-ansi@6.0.1 chalk-template@1.1.1 backslash@0.2.1 error-ex@1.3.3 proto-tinker-wc@1.8.7

Malware Focado em Criptomoedas

O código malicioso injetado funcionava interceptando requisições de transações de criptomoedas e substituindo silenciosamente endereços de carteiras por endereços controlados pelos atacantes. O malware tinha capacidade de:

  • Interceptar transações em Ethereum, Bitcoin, Solana, Tron, Litecoin e Bitcoin Cash
  • Modificar APIs Web3 em tempo real
  • Operar em múltiplas camadas (websites, APIs e aplicações)

Linha do Tempo do Ataque

8 de setembro de 2025:

  • 09:00 EST: Conta do desenvolvedor comprometida
  • 09:30 EST: Primeiras versões maliciosas publicadas
  • 11:30 EST: Comunidade detecta comportamento suspeito
  • 21:00 IST: Remoção das versões comprometidas

As versões maliciosas permaneceram ativas por aproximadamente 2,5 horas, mas foram instaladas cerca de 2,6 milhões de vezes durante esse período.

Consequências Financeiras e Técnicas

Surpreendentemente, apesar da escala massiva do ataque, pesquisadores da Aikido Security rastrearam apenas cerca de US$ 970 em fundos roubados para carteiras controladas pelos atacantes. Este baixo impacto financeiro pode ser atribuído à rápida resposta da comunidade e à natureza do malware, que só era ativado em contextos específicos de navegador.

Infraestrutura dos Atacantes

A análise técnica revelou uma infraestrutura sofisticada:

  • Domínio de phishing: npmjs.help
  • CDN comprometida: static-mw-host.b-cdn.net e img-data-backup.b-cdn.net
  • Servidor de comando: websocket-api2.publicvm.com
  • Múltiplas carteiras Bitcoin: Mais de 20 endereços diferentes identificados

Como Mitigar Ataques à Cadeia de Suprimentos

Estratégias de Prevenção

1. Implementação de Políticas Rigorosas de Dependências

Utilize sempre arquivos de lock (package-lock.json, yarn.lock) em todos os ambientes e pipelines CI/CD. Isso garante reprodutibilidade e previne instalações não autorizadas de versões comprometidas.

2. Monitoramento Contínuo de Dependências

# Configuração no .npmrc para ignorar scripts potencialmente maliciosos
ignore-scripts=true

# Auditoria regular das dependências
npm audit
npm ls --depth=0

3. Repositórios Internos Confiáveis

Implemente repositórios npm internos onde pacotes podem ser escaneados e validados antes de entrar no ambiente de desenvolvimento. Ferramentas como Nexus Repository ou JFrog Artifactory oferecem essa funcionalidade.

4. Verificação de Integridade

# Verificação de checksum dos pacotes
npm config set package-lock false
npm ci --ignore-scripts

Ferramentas de Detecção Automática

Socket Security e Snyk oferecem detecção em tempo real de comportamentos suspeitos em dependências npm. Essas ferramentas utilizam machine learning para identificar padrões maliciosos baseados em:

  • Análise de código comportamental
  • Anomalias em metadados
  • Padrões de execução suspeitos

Lições Aprendidas e Recomendações

Para Desenvolvedores

  1. Sempre verifique e-mails de suporte: Nunca clique em links de e-mails não solicitados, mesmo que aparentem ser de fontes confiáveis
  2. Use autenticação forte: Implemente 2FA com tokens de hardware quando possível
  3. Monitore suas dependências: Configure alertas para mudanças em pacotes críticos

Para Organizações

A implementação de uma abordagem multi-camadas que combina ferramentas automatizadas, melhorias de processos e políticas organizacionais é essencial para proteger contra ataques à cadeia de suprimentos.

Políticas Organizacionais Essenciais:

  • Auditoria regular de todas as dependências de terceiros
  • Implementação de SBOM (Software Bill of Materials)
  • Treinamento em segurança para desenvolvedores
  • Processo de resposta a incidentes específico para supply chain

O Futuro da Segurança em Ecossistemas de Pacotes

Este ataque demonstra que ecossistemas de pacotes como npm e PyPI permanecem alvos recorrentes devido à sua popularidade e amplo alcance dentro da comunidade de desenvolvedores. A crescente sofisticação dos ataques, incluindo técnicas como typosquatting e “slopsquatting” (exploração de dependências alucinadas por IA), indica que precisamos evoluir nossas defesas.

Tendências Emergentes em Ataques

Typosquatting Avançado: Atacantes criam pacotes com nomes similares a bibliotecas populares, esperando que desenvolvedores instalem acidentalmente a versão maliciosa.

Dependency Confusion: Criação de pacotes públicos com os mesmos nomes de pacotes internos privados, mas com números de versão superiores.

Social Engineering para Transferência de Pacotes: Atacantes contatam mantenedores de pacotes populares mas abandonados, oferecendo-se para assumir a manutenção.

Conclusão

O ataque massivo ao npm de setembro de 2025 serve como um lembrete crítico da fragilidade de nossa cadeia de suprimentos de software moderna. Com mais de 2 bilhões de downloads semanais comprometidos, este incidente expôs como um único ponto de falha pode afetar todo o ecossistema JavaScript global.

A resposta rápida da comunidade limitou o dano financeiro, mas as implicações para a segurança de software são profundas. É imperativo que desenvolvedores e organizações implementem estratégias robustas de segurança da cadeia de suprimentos, incluindo monitoramento contínuo, verificação de integridade e políticas rigorosas de gestão de dependências.

Como especialistas em cibersegurança, devemos reconhecer que a era dos ataques à cadeia de suprimentos não é mais uma possibilidade futura – é nossa realidade presente. A preparação, vigilância e implementação de controles de segurança adequados são nossa melhor defesa contra essas ameaças cada vez mais sofisticadas.

Posto aqui a fonte dos comandos de verificação dos pacotes, foi postado por Filipe Deschamps:

Tabnews Artigo

Conheça nosso Canal do Youtube
Escute Nosso DoluCast
Melhores da Semana