Cyber Segurança

Ataque ao npm compromete centenas de pacotes e expõe credenciais de desenvolvedores

Nova campanha conhecida como ChainDrop explora a cadeia de fornecimento de software para distribuir código malicioso por bibliotecas JavaScript. O principal alvo são credenciais técnicas, tokens, chaves de nuvem e ambientes de desenvolvimen

Ataque ao npm compromete centenas de pacotes e expõe credenciais de desenvolvedores

Uma nova campanha de ataques contra o ecossistema npm voltou a colocar em alerta desenvolvedores e empresas que utilizam bibliotecas JavaScript em seus projetos. Batizada de ChainDrop, a operação comprometeu pacotes legítimos e utilizou a confiança existente nessas ferramentas para espalhar código destinado ao roubo de credenciais.

Segundo pesquisadores de segurança, o ataque começou após o comprometimento da conta de um mantenedor relacionado a bibliotecas amplamente utilizadas, como Keyv e Cacheable. A partir desse acesso, versões contaminadas passaram a circular pelo npm e permitiram que o código malicioso se propagasse para outros projetos.

As estimativas iniciais apontam para mais de mil versões comprometidas e centenas de pacotes afetados. As bibliotecas envolvidas acumulam, em conjunto, bilhões de downloads mensais, o que explica a preocupação com o alcance potencial da campanha.

O problema está na cadeia de dependências

O npm funciona como um dos maiores repositórios de pacotes do ecossistema JavaScript. Em vez de desenvolver todas as funções de uma aplicação do zero, programadores utilizam bibliotecas prontas para executar tarefas como comunicação com servidores, manipulação de dados, interfaces e autenticação.

Um projeto aparentemente simples pode depender de dezenas ou centenas de outros pacotes de maneira indireta.

É justamente essa estrutura que transforma ataques à cadeia de fornecimento em um problema de grande escala. Um desenvolvedor pode não instalar diretamente a biblioteca comprometida, mas recebê-la como dependência de outro componente utilizado no projeto.

O GitHub reconhece que ataques desse tipo se tornaram recorrentes no ecossistema open source. A empresa vem implementando novas barreiras no npm, incluindo verificação de pacotes antes da publicação, períodos de espera para atualizações automáticas e controles adicionais para contas responsáveis por bibliotecas de grande impacto.

Malware procura tokens e chaves de acesso

O objetivo da campanha não é necessariamente atacar o visitante de um site que utiliza JavaScript.

O alvo mais valioso está nos computadores dos desenvolvedores e nos sistemas usados para construir e publicar aplicações.

Pesquisadores observaram campanhas recentes contra o npm tentando localizar tokens do GitHub e npm, chaves SSH, credenciais de serviços em nuvem, segredos de pipelines CI/CD e outras informações armazenadas no ambiente de desenvolvimento. Em ataques anteriores da mesma família, sistemas Windows, macOS e Linux foram atingidos.

Isso cria um efeito em cadeia. Depois de roubar uma credencial com permissão para publicar software, o invasor pode utilizá-la para modificar outro pacote legítimo e atingir novos projetos.

A ChainDrop apresenta comportamento semelhante a um worm: procura credenciais que permitam alcançar outros pacotes e continuar a propagação.

Login com Google ou Apple não elimina o risco

Utilizar sistemas como Entrar com Apple ou autenticação semelhante pode reduzir a quantidade de senhas diferentes mantidas pelo usuário e oferecer proteções adicionais contra determinadas formas de roubo de credenciais.

Entretanto, esse tipo de login não resolve sozinho um ataque à cadeia de desenvolvimento.

Se um pacote malicioso for executado em uma máquina que possui tokens técnicos ou chaves de API acessíveis, essas credenciais podem ser capturadas independentemente da forma utilizada para entrar em sites comuns.

Em outras palavras, a senha pessoal do desenvolvedor pode continuar protegida enquanto uma chave capaz de acessar um serviço de nuvem ou publicar uma aplicação é comprometida.

Atualizar automaticamente também virou um risco

Outro problema é a velocidade.

Ferramentas modernas podem atualizar dependências automaticamente logo depois da publicação de uma nova versão. Em um ataque à cadeia de fornecimento, isso pode fazer com que uma versão contaminada alcance projetos antes que pesquisadores consigam identificá-la.

Para reduzir esse risco, o Dependabot passou a adotar por padrão um período de espera de três dias antes de sugerir determinadas atualizações de versão. A intenção é criar uma janela para que problemas sejam detectados antes da adoção em larga escala.

O npm também está mudando o comportamento dos scripts executados durante uma instalação. A versão 12 passou a adotar controles mais rígidos para scripts preinstall, install e postinstall, mecanismos frequentemente explorados para executar código assim que uma dependência é instalada.

Quem deve se preocupar

O risco é maior para desenvolvedores, empresas de software e projetos que utilizam Node.js, npm e sistemas automatizados de construção.

Ter JavaScript em um site não significa, por si só, estar comprometido. O ponto decisivo é saber se alguma das versões maliciosas foi instalada ou executada no ambiente responsável pelo desenvolvimento ou publicação da aplicação.

Especialistas recomendam tratar máquinas que efetivamente executaram uma versão contaminada como potencialmente comprometidas. Nesses casos, apenas remover a biblioteca pode não ser suficiente, porque as credenciais já podem ter sido copiadas.

O episódio reforça um problema cada vez mais importante para a indústria de tecnologia: softwares modernos dependem de enormes cadeias de componentes criados por terceiros.

Uma única conta comprometida pode, em poucas horas, transformar uma biblioteca confiável em uma porta de entrada para milhares de ambientes de desenvolvimento.

Fontes:

  • GitHub – Medidas recentes para reduzir ataques à cadeia de fornecimento no npm e GitHub Actions.
  • GitHub – Novos mecanismos de análise de malware durante a publicação de pacotes npm.
  • Microsoft Security – Pesquisas sobre campanhas npm voltadas ao roubo de credenciais de nuvem e ambientes CI/CD.
  • Aikido Security – Análises das campanhas Mini Shai-Hulud e de ataques derivados contra bibliotecas npm.
  • ITPro e TechRadar – Cobertura da campanha ChainDrop e do alcance dos pacotes comprometidos. 
COMUNIDADE

O que você achou?

Carregando comentários…