Pesquisadores em segurança cibernética revelaram um ataque sofisticado à cadeia de suprimentos que comprometeu a popular biblioteca npm @solana/web3.js. Este pacote, essencial para o desenvolvimento de aplicativos na rede Solana, foi alvo de duas versões maliciosas, 1.95.6 e 1.95.7, que introduziram backdoors projetados para roubar chaves privadas de usuários.
Ataque à biblioteca npm Web3.js expõe carteiras de criptomoedas
As versões comprometidas, agora removidas do registro npm, representavam um grave risco para os desenvolvedores, pois eram amplamente utilizadas, acumulando mais de 400.000 downloads semanais. O código malicioso incluía uma função chamada addToQueue, que transmitia as chaves privadas por meio de cabeçalhos CloudFlare aparentemente legítimos.
Detalhes técnicos do ataque
Segundo Christophe Tafani-Dereeper, pesquisador da Datadog, a função maliciosa foi habilmente integrada ao código, tornando difícil sua detecção. As chaves roubadas eram enviadas para um servidor de comando e controle (C2) chamado sol-rpc[.]xyz, registrado pouco antes do ataque, mas atualmente fora de operação.
As investigações sugerem que o ataque teve origem em uma campanha de phishing direcionada aos mantenedores da biblioteca, comprometendo suas contas e permitindo a publicação de versões maliciosas.
Em uma nota oficial, Steven Luscher, um dos mantenedores, explicou que o incidente afeta apenas projetos que lidam diretamente com chaves privadas e que atualizaram para as versões comprometidas dentro de um intervalo específico em 2 de dezembro de 2024. Ele ressaltou que carteiras não custodiais provavelmente não foram impactadas, já que não expõem chaves privadas em transações.
Impacto e recomendações
Usuários da biblioteca @solana/web3.js foram orientados a atualizar imediatamente para a versão 1.95.8 e considerar a rotação de suas chaves privadas caso suspeitem de comprometimento.
Este incidente segue uma série de outros ataques direcionados ao ecossistema Solana, incluindo um pacote falso chamado solana-systemprogram-utils, projetado para desviar sorrateiramente 2% das transações de usuários. Além disso, pacotes npm disfarçados, como crypto-keccak e crypto-jsonwebtoken, também foram detectados com código malicioso para roubo de credenciais e fundos.
Desafios para o código aberto
Esses eventos destacam os riscos crescentes enfrentados pelo ecossistema de código aberto, no qual desenvolvedores confiam amplamente em bibliotecas externas. O malware, ao se infiltrar em pacotes legítimos, compromete não apenas indivíduos, mas também organizações, criando vulnerabilidades que podem se espalhar por ambientes corporativos.
Para proteger seus sistemas, desenvolvedores devem:
- Monitorar regularmente atualizações de pacotes e alertas de segurança.
- Evitar atualizar bibliotecas automaticamente sem auditoria prévia.
- Implementar práticas de segurança robustas, como autenticação multifator em contas de desenvolvedores.
O caso Web3.js reforça a importância de medidas de segurança proativas para mitigar o impacto de ataques à cadeia de suprimentos.