Atuantes desconhecidos comprometeram o repositório do projeto SDK do Injective Labs no GitHub e o utilizaram para publicar um pacote malicioso no registro npm, com o objetivo de roubar chaves privadas de carteiras de criptomoedas e frases sementes mnemônicas. O incidente destaca os riscos crescentes de ataques à cadeia de suprimentos de software no ecossistema de criptoativos.
Descoberta e escopo do ataque
A versão comprometida do pacote, identificada como @injectivelabs/sdk-ts@1.20.21, veio embutida com uma funcionalidade de telemetria falsa que exfiltrava dados diretamente das carteiras de criptomoedas dos usuários. A descoberta foi feita por pesquisadores de segurança que notaram comportamentos anômalos no tráfego de rede associado ao pacote.
O ataque explora a confiança que os desenvolvedores depositam em bibliotecas de código aberto populares. Ao comprometer o repositório oficial do Injective Labs, os atacantes conseguiram publicar uma versão que parecia legítima, mas continha código malicioso oculto.
Mecanismo de exfiltração
O pacote malicioso foi projetado para interceptar e transmitir informações sensíveis, incluindo chaves privadas e frases sementes, que são essenciais para o acesso e controle de ativos digitais. A funcionalidade de telemetria falsa serviu como cobertura para a exfiltração de dados, enganando os usuários e administradores de sistemas sobre a natureza real do tráfego de rede.
Os atacantes utilizaram técnicas de ofuscação para dificultar a detecção por ferramentas de segurança tradicionais. O código malicioso foi integrado de forma que só fosse ativado sob condições específicas, aumentando as chances de passar despercebido durante revisões de código iniciais.
Impacto nos usuários
Qualquer usuário que instalou a versão comprometida do pacote está em risco de ter suas chaves de carteira roubadas. Isso pode resultar na perda total de fundos armazenados nessas carteiras, uma vez que as chaves privadas são o único meio de acesso aos ativos.
O impacto se estende além dos usuários individuais, afetando também as empresas e projetos que dependem do SDK do Injective Labs para suas operações. A confiança na integridade do código aberto é fundamental para a segurança do ecossistema, e incidentes como este podem abalar essa confiança.
Resposta e mitigação
O Injective Labs foi notificado sobre o comprometimento e tomou medidas para remover o pacote malicioso do registro npm. No entanto, os usuários que já instalaram a versão comprometida devem tomar as seguintes medidas imediatamente:
- Desinstalar o pacote: Remova imediatamente a versão @injectivelabs/sdk-ts@1.20.21 de todos os ambientes.
- Rotacionar chaves: Se houver suspeita de comprometimento, mova os fundos para novas carteiras com chaves geradas de forma segura.
- Monitorar atividades: Fique atento a transações não autorizadas ou atividades suspeitas nas carteiras afetadas.
- Atualizar dependências: Verifique se há versões mais recentes e seguras do pacote disponíveis no registro oficial.
Lições para a cadeia de suprimentos
Este incidente serve como um lembrete da importância de verificar a integridade do código de terceiros e de adotar práticas de segurança robustas na cadeia de suprimentos de software. As organizações devem considerar o uso de ferramentas de análise de dependências e verificação de assinaturas para garantir que o código instalado seja legítimo.
A transparência e a comunicação rápida entre os mantenedores do projeto e a comunidade de usuários são essenciais para mitigar o impacto de incidentes como este. O Injective Labs deve continuar a monitorar o repositório e o registro npm para prevenir futuras tentativas de comprometimento.
Perguntas frequentes
O que é o pacote @injectivelabs/sdk-ts?
É uma biblioteca de desenvolvimento de software (SDK) usada para integrar aplicações com a rede Injective.
Como saber se meu sistema foi afetado?
Verifique a versão do pacote instalado. Se for a 1.20.21, desinstale imediatamente e rotacione suas chaves.
Como prevenir ataques similares?
Utilize ferramentas de análise de dependências, verifique assinaturas de pacotes e mantenha suas dependências atualizadas.