Uma operação sofisticada de cibercriminosos comprometeu pacotes oficiais do protocolo dYdX, uma corretora deascentralizada de criptomoedas, distribuindo malware que rouba carteiras digitais e instala trojans de acesso remoto.
A campanha, descoberta pela empresa de cibersegurança Socket em 27 de janeiro de 2026, atingiu simultaneamente os ecossistemas npm (JavaScript) e PyPI (Python), as duas linguagens mais utilizadas para automação de trading e desenvolvimento de finanças quantitativas.
O que é o dYdX e por que virou alvo
O dYdX é uma exchange descentralizada de derivativos de criptomoedas. Ao longo de sua história, a plataforma movimentou mais de US$ 1,5 trilhão, com volume diário médio entre US$ 200 e 540 milhões.
Os pacotes @dydxprotocol/v4-client-js (npm) e dydx-v4-client (PyPI) fornecem ferramentas essenciais para desenvolvedores criarem aplicações que interajam com a plataforma, incluindo assinatura de transações, colocação de ordens e gerenciamento de carteiras.
Como o ataque funciona
Os atacantes comprometeram as credenciais dos desenvolvedores legítimos, permitindo que publicassem versões maliciosas dos pacotes em ambos os repositórios simultaneamente. O código malicioso foi inserido profundamente dentro da estrutura legítima dos pacotes, modificando arquivos essenciais como registry.ts, registry.js e account.py.
Esses arquivos são essenciais porque funcionam como o coração do sistema, já que são eles que gerenciam como as carteiras são criadas, como as transações são assinadas e como os dados são organizados. Quando a vítima usa o pacote normalmente, o código malicioso é executado silenciosamente em segundo plano.
O malware no npm
No pacote JavaScript, os atacantes modificaram a função createRegistry(). Quando a vítima passa sua frase semente, ou seed phrase, uma senha de 12 a 24 palavras aleatórias extraídas de uma lista com 2,048 termos, a chave mestra que dá acesso total à carteira de criptomoedas, o código malicioso captura essa informação e a envia secretamente para um servidor controlado pelos atacantes no endereço dydx.priceoracle.site.
A seed phrase ou frase semente é a chave mestra que dá acesso total à carteira de criptomoedas. Ela funciona como a combinação de um cofre bancário, mas quem possui essa combinação tem controle total e irreversível sobre os fundos, já que transações em blockchain não podem ser desfeitas. Não existe gerente de banco, nem sistema de recuperação, nem segunda via.
Junto com a seed phrase, o malware coleta uma impressão digital do dispositivo da vítima, reunindo informações como endereço MAC (um identificador único da placa de rede, como a impressão digital do seu computador na internet), nome do computador, sistema operacional, versão do sistema e arquitetura do processador.
Essas informações são transformadas em um código único através de um hash SHA-256, um processo matemático que pega todas essas informações e gera uma sequência única de caracteres, como criar um código de barras exclusivo para cada vítima, permitindo que os atacantes rastreiem vítimas específicas e identifiquem alvos de alto valor.
O código usa um bloco try-catch vazio que captura erros silenciosamente. Em programação, try-catch funciona como uma rede de segurança, o usuário “tenta” executar algo e, se der erro, “captura” o problema.
Normalmente isso serve para lidar com erros de forma elegante. Aqui, porém, se algo der errado ao enviar os dados roubados, o erro é simplesmente ignorado e nada aparece no console, aquela tela preta onde programadores veem mensagens do sistema. A vítima continua acreditando que tudo funcionou perfeitamente.
O malware no PyPI
A versão Python não apenas rouba credenciais, mas também instala um Trojan de Acesso Remoto (RAT), um tipo de malware que dá ao atacante controle remoto completo sobre o computador da vítima. O roubo de credenciais funciona de forma similar à versão JavaScript, mas disfarçado em uma função chamada list_prices() que supostamente consultaria preços de negociação.
O RAT vem escondido em três componentes: config.py contém o payload malicioso – o código que realmente faz o trabalho sujo – como uma string de 5.527 caracteres codificada em base64. Base64 é uma forma de transformar qualquer tipo de dado em texto puro, como traduzir uma imagem para uma sequência de letras e números. Aqui, serve para esconder o código malicioso fazendo-o parecer apenas um texto incompreensível.
O arquivo _bootstrap.py é executado automaticamente quando a vítima importa o pacote – imagine como um vírus que se ativa no momento em que você abre um arquivo; e a desobfuscação acontece em 100 iterações que invertem a string, decodificam de base64 e descomprimem usando zlib.
Ofuscação é o ato de embaralhar e esconder o código propositalmente para dificultar a leitura. É como escrever uma mensagem de trás para frente, depois em código morse, depois em outra língua. Quanto mais camadas de ofuscação, mais difícil é para antivírus detectarem o código malicioso.
O que o trojan faz
Uma vez ativado, o RAT inicia uma thread daemon, uma espécie de fluxo de produção que executa tarefas de manutenção ou suporte, em segundo plano que roda secretamente enquanto o programa principal continua funcionando normalmente.
Thread é como uma linha de produção separada dentro de um programa, enquanto a linha principal continua trabalhando normalmente, a thread cuida de outra tarefa ao mesmo tempo. Daemon é um tipo especial de thread que roda em segundo plano executando tarefas de manutenção ou suporte, sem que o usuário veja. É como ter um assistente invisível trabalhando silenciosamente enquanto você faz outras coisas.
A cada 10 segundos, esse daemon se comunica com o servidor dos atacantes, perguntando se há comandos para executar. Se o servidor responder com código Python, o RAT executa imediatamente.
A execução acontece de forma completamente invisível. O RAT cria arquivos temporários com o código recebido, executa com todos os outputs (as mensagens e resultados que normalmente apareceriam na tela), redirecionados para /dev/null, um “buraco negro” do sistema, onde tudo que entra desaparece sem deixar rastro.
Depois apaga os arquivos temporários. No Windows, usa a flag CREATE_NO_WINDOW para que nenhuma janela apareça na tela. A vítima não vê absolutamente nada acontecendo.
Além disso, o RAT desabilita a verificação SSL, permitindo comunicação com o servidor dos atacantes mesmo com certificados de segurança inválidos. SSL, ou Secure Sockets Layer, é o protocolo de segurança que garante que a comunicação entre seu computador e um site é criptografada e confiável – é aquele cadeado verde que aparece no navegador.
Ao desabilitar essa verificação, o RAT permite comunicação com o servidor dos atacantes mesmo com certificados de segurança inválidos ou suspeitos, algo que normalmente seria bloqueado.
A infraestrutura dos atacantes
Os atacantes registraram o domínio priceoracle.site em 9 de janeiro de 2026, cerca de 3 semanas antes de publicarem os pacotes maliciosos. “Price oracle” é um termo comum em criptomoedas, fazendo o domínio soar técnico e legítimo. O subdomínio dydx.priceoracle.site adiciona outra camada de legitimidade aparente, podendo ser confundido com o domínio real dydx.xyz.
O domínio agora está bloqueado com status “server transfer prohibited” e “client hold” – códigos administrativos que significam que o domínio foi congelado e não pode ser transferido ou modificado, mas os atacantes provavelmente já coletaram muitas credenciais e estabeleceram backdoors em sistemas comprometidos.
O impacto real
Para vítimas do pacote npm que passaram seed phrases reais, os atacantes têm acesso total às carteiras de criptomoedas, significando roubo completo e irreversível.
Para vítimas do pacote PyPI, a situação é ainda pior. Além do roubo de carteiras, os atacantes têm controle completo sobre o sistema e podem executar código arbitrário ou roubar chaves SSH – credenciais que funcionam como senhas digitais para acessar servidores remotos de forma segura, muito usadas por desenvolvedores para conectar em servidores de trabalho.
Nesses casos, também é possível que os criminosos tenham garantido acesso a credenciais de APIs e código-fonte proprietário, instalado backdoors persistentes – portas dos fundos digitais que permitem aos atacantes voltarem ao sistema quando quiserem, mesmo depois que a vítima acha que se protegeu – exfiltrado arquivos sensíveis, monitorado atividades, modificado arquivos críticos e usado o computador como ponto de partida para atacar outras máquinas na rede.
Este não é o primeiro ataque ao dYdX. Em setembro de 2022, houve outro comprometimento de supply chain via npm – um ataque à cadeia de suprimentos, onde os criminosos não atacam o alvo diretamente, mas comprometem um fornecedor ou ferramenta que o alvo usa.
E em julho de 2024, um ataque de DNS hijacking, o sequestro do sistema de nomes de domínio, que redirecionava vítimas para um site falso.
Por que é grave
A simultaneidade entre npm e PyPI mostra planejamento extenso. A complexidade do RAT Python (100 iterações de ofuscação, execução silenciosa, daemon threads, bypass de SSL) indica proficiência técnica típica de grupos de cibercrime profissionais ou até operações de estados-nação.
O ataque explora a confiança fundamental do desenvolvimento moderno em pacotes de repositórios oficiais, uma vez que desenvolvedores confiam que quando baixam uma biblioteca do npm ou PyPI, estão recebendo código seguro e verificado.
A Socket detectou os pacotes maliciosos minutos após publicação e notificou o dYdX em 28 de janeiro de 2026, que confirmou publicamente o incidente no mesmo dia.
Para desenvolvedores, recomenda-se usar ferramentas de scanning automatizado, monitorar tráfego de rede, aplicar o princípio de menor privilégio, tratar dependências que manipulam credenciais como alto risco e nunca usar credenciais reais em ambientes de teste.
Como se proteger
Para desenvolvedores que trabalham com pacotes que manipulam credenciais sensíveis, especialmente no ecossistema de criptomoedas, algumas medidas são essenciais.
- Use ferramentas de scanning automatizado em seu pipeline de desenvolvimento;
- Monitore tráfego de rede de aplicações em desenvolvimento e produção;
- Aplique o princípio de menor privilégio: sistemas devem ter acesso apenas ao mínimo necessário;
- Trate qualquer dependência que manipula credenciais como alto risco;
- Verifique hashes e assinaturas de pacotes quando possível;
- Mantenha ambientes de desenvolvimento e produção completamente separados;
- Nunca use credenciais reais em ambientes de teste.
Acompanhe o TecMundo nas redes sociais. Para mais notícias de segurança e tecnologia, inscreva-se em nossa newsletter e canal do YouTube.