3 pontos por GN⁺ 2025-10-31 | Ainda não há comentários. | Compartilhar no WhatsApp
  • Foi confirmado que mais de 100 pacotes maliciosos voltados ao roubo de credenciais foram enviados ao repositório NPM sem serem detectados desde agosto, somando mais de 86 mil downloads
  • A empresa de segurança Koi informou que uma campanha de ataque batizada de “PhantomRaven” distribuiu 126 pacotes maliciosos explorando o recurso Remote Dynamic Dependencies (RDD) do NPM
  • O RDD é uma estrutura que permite que pacotes baixem dinamicamente código de dependências a partir de domínios não confiáveis, o que impede a detecção por ferramentas de análise estática
  • Os invasores usaram esse recurso para baixar código malicioso por conexões HTTP, enquanto os metadados dos pacotes exibiam “0 Dependencies”, fazendo com que desenvolvedores e scanners de segurança não percebessem o problema
  • Essa vulnerabilidade estrutural expõe os limites da gestão de segurança do ecossistema NPM e os riscos do mecanismo de instalação automática

Disseminação de pacotes maliciosos no repositório NPM

  • Invasores aproveitaram uma fraqueza estrutural do repositório de código do NPM para enviar, desde agosto, mais de 100 pacotes voltados ao roubo de credenciais
    • A maioria dos pacotes foi distribuída sem detecção, e o total acumulado de downloads passou de 86 mil
  • A empresa de segurança Koi deu a esse ataque o nome de campanha PhantomRaven e analisou que um recurso específico do NPM foi explorado
    • Segundo a Koi, cerca de 80 dos 126 pacotes maliciosos ainda permaneciam no NPM no momento da publicação da matéria

Estrutura vulnerável do Remote Dynamic Dependencies (RDD)

  • O RDD é um recurso que permite que pacotes baixem dinamicamente código de dependências de sites externos
    • Normalmente, as dependências são baixadas da infraestrutura confiável do NPM, mas o RDD também permite downloads por conexões não criptografadas, como HTTP
  • Os responsáveis pelo ataque PhantomRaven usaram esse recurso para configurar o download de código a partir de URLs maliciosas (ex.: http://packages.storeartifact.com/npm/unused-imports)
    • Essas dependências ficam invisíveis para desenvolvedores e scanners de segurança e aparecem nas informações do pacote como “0 Dependencies”
  • Por causa do recurso de instalação automática do NPM, esse código de dependência “invisível” é executado automaticamente

Limites de detecção das ferramentas de segurança

  • Oren Yomtov, da Koi, afirmou que “o PhantomRaven é um caso de exploração sofisticada de um ponto cego das ferramentas de segurança existentes
    • O RDD não é detectado por ferramentas de análise estática
  • Com isso, os invasores conseguiram contornar a validação de segurança e distribuir código malicioso

Fatores adicionais de vulnerabilidade

  • A Koi explicou que as dependências baixadas via RDD são baixadas novamente do servidor do invasor a cada instalação
    • Como não há cache nem controle de versão, existe a possibilidade de que códigos maliciosos diferentes sejam injetados a cada instalação do mesmo pacote
  • Essa estrutura de download dinâmico dificulta a verificação de integridade dos pacotes

Estrutura e contexto do NPM

  • O NPM é um gerenciador de pacotes para JavaScript, administrado pela npm, Inc., subsidiária do GitHub
    • É o gerenciador de pacotes padrão do Node.js e é composto pelo cliente de linha de comando e pelo npm registry
    • O registry armazena pacotes públicos e privados pagos, que podem ser pesquisados pelo site
  • O caso é apontado como um exemplo de como a estrutura de gerenciamento automático de dependências do NPM pode ser explorada em ataques

Outras menções

  • No fim da matéria, é mencionada a opinião de que a execução desnecessária de JavaScript deve ser bloqueada
    • No entanto, ressalta-se que este ataque é um caso em que até mesmo código JavaScript essencial foi explorado

Ainda não há comentários.

Ainda não há comentários.