Sexta-feira 21 fevereiro 2025 o mundo cripto foi abalado pelo anúncio de Ben Zhou, o CEO da Bybit a exchange cripto de Dubai, a segunda do mundo em termos de volumes (depois da Binance) que tornou público um ataque hacker a um cold wallet (um wallet offline: sim, vocês leram corretamente, trata-se de um wallet não conectado à internet) capaz de subtrair ETH depositados em staking, mETH e outros tokens ERC20, totalizando mais de 1.4 bilhões de dólares, o maior roubo na história das criptomoedas.
A história desses ataques começa com a MtGox, uma exchange cripto japonesa hackeada duas vezes, a primeira em 2011, a segunda em 2014. O ponto é que esses ataques (que subtraíram bitcoins) dependeram de falhas nos protocolos de segurança da exchange, falhas que foram amplamente exploradas por mais de dez anos. E, no entanto, os roubos ainda acontecem. Entende-se que, se olharmos os relatórios de empresas de software que se dedicam à análise das blockchains, como a Chainalysis, os roubos no mundo dos ativos digitais acontecem continuamente, mas este obviamente ganhou notícia devido à sua magnitude e, em parte, porque parece ter sido perpetrado por um grupo bem conhecido de hackers coreanos “Lazarus Group” implicado em outros casos notórios e recentes: Ronin Network, DMM Bitcoin e WazirX, todos caracterizados pelo mesmo método.
No caso da MtGox, o “cúmplice” do ataque de 2014 foi um bug no protocolo de validação das transações, conhecido como transaction malleability. Tecnicamente, o ataque foi possível porque o hashing usado para identificar um bloco de transações e aquele usado para a assinatura digital (ou seja, o comando para transferir os fundos, que somente o detentor da chave privada pode dar) são realizados sobre dois conteúdos de informação diferentes. Provavelmente, o hacker solicitou à MtGox a devolução dos bitcoins que havia depositado na exchange, a qual emitiu uma transação de reembolso com um certo identificador hash. A transação era interceptada pelo hacker, que alterava seu conteúdo de modo a modificar o código hash da transação, mas não a assinatura digital, que permanecia válida. Reinseria, então, na rede a transação modificada para, em seguida, reclamar com a MtGox o não cumprimento da transação de reembolso. A exchange, uma vez constatado que a transação de reembolso (tendo o hacker alterado o identificador) não havia sido validada, emitia uma nova com um código hash diferente para evitar o double-spending, e o ataque continuava até subtrair cerca de 7% de todos os bitcoins em circulação na época.
No caso da Bybit, o ataque se concentrou em Ether e aproveitou uma inovação que, na época da MtGox, não existia: o smart contract. Vamos então entender melhor como os piratas informáticos conseguiram roubar esses ativos digitais. Uma análise precisa e completa foi fornecida pela SlowMist, uma empresa de cibersegurança especializada em blockchains que oferece seus serviços aos players mais conhecidos do setor. Nós tentaremos explicar o ataque de forma intuitiva. Primeiramente, ele ocorreu em três fases:
1) Uma transação benigna do cold wallet para um hot (ou warm, pouco importa) wallet;
2) A transação benigna continha a falha (o cavalo de Troia) que desencadeou a execução de um contrato malicioso;
3) O contrato malicioso transferiu os tokens para um endereço, de onde foram divididos e retransmitidos para 40 endereços diferentes e, daí, retransmitidos para dificultar o rastreamento.
A pergunta agora é. Como foi possível o disparo do contrato malicioso na fase 2? Por questões de segurança (proteção de chaves privadas, essencialmente) a Bybit, como muitos outros operadores, utiliza o GnosisSafe, um smart contract wallet que prevê um procedimento de assinatura múltipla para autorizar uma transação, neste caso, uma transação de um wallet offline para um wallet online. Em termos simples, o uso da chave privada para efetuar uma transação requer mais de uma confirmação (neste caso, exigia três). Quando se dispara uma transação na rede Ethereum, os parâmetros a serem aprovados (com a assinatura digital) são “to” (o destinatário) e “data” (o objeto da transação). Entretanto, o GnosisSafe prevê outro parâmetro “operation” que só pode assumir dois valores: “0”, que permite chamar a função execTransaction que executa o contrato desejado pelo usuário; ou pode assumir o valor “1” e, portanto, o GnosisSafe não chama mais execTransaction, mas DelegateCall, ou seja, uma função que ativa outro contrato: e é justamente assim que os hackers acionaram o contrato malicioso, que assumiu o controle do cold wallet, permitindo a execução de duas funções: sweepETH e sweepERC20 (não acreditamos ser necessário explicar o que essas duas funções fizeram).
Neste ponto, surge a pergunta: como é possível que três signatários diferentes (que são operadores de carne e osso) não tenham percebido a mudança de “0” para “1” no parâmetro “operation”? Surge a suspeita de que o parâmetro tenha sido “ofuscado” (representado como zero aos olhos do operador quando, na verdade, era um um: não simples de realizar!), mas talvez exista uma explicação ainda mais banal: pensemos em quando acessamos o nosso e-banking em vez do nosso webmail; quantos verificam a barra de URL para confirmar que o protocolo é https em vez do simples (e inseguro) http ou que o endereço está corretamente escrito (a mudança de uma única letra pode passar despercebida por qualquer olhar)?
E, acima de tudo, quantos esquecem de ativar a autenticação de dois fatores, que confere, de qualquer forma, maior segurança? Provavelmente, três verificações para um parâmetro que quase nunca é utilizado não são eficazes.
No entanto, no site do Reddit circula a hipótese de que os níveis de segurança da Bybit não eram de nível máximo (como acontece com outras plataformas, como Fireblocks ou Coinbase) para não sacrificar a velocidade das transações.
Enquanto isso, as investigações continuam para tentar rastrear o percurso dos tokens roubados e até são oferecidas recompensas para atrair hackers éticos a cooperar na busca. Contudo, não podemos deixar de evidenciar o mesmo roteiro ensaiado: o anúncio do ataque por parte dos altos escalões da plataforma atacada (veja o comunicado no site da Bybit), frequentemente feito primeiro nas redes sociais (como o X, por exemplo), a garantia de que a situação está sob controle e de que a exchange possui os meios para indenizar os usuários. Exatamente o que fez Ben Zhou: o cold wallet atacado é apenas um; os outros estão seguros; a Bybit tem os meios para indenizar, etc.
Continuamos a sustentar o mesmo ponto. As exchanges cripto são estruturas centralizadas (que, portanto, nada têm a ver com a filosofia básica das blockchains: a descentralização) totalmente semelhantes às bolsas tradicionais que conhecemos, com a diferença de que, em vez de transferir ativos fora da bolsa através de bancos de dados e conexões centralizadas, elas o fazem utilizando as blockchains, algo que, aliás, também poderiam fazer as bolsas tradicionais. Perguntamo-nos, então, por que essas estruturas não são regulamentadas e monitoradas como todas as bolsas em que operamos; por que ninguém pode controlar a capitalização e os valores efetivos que essas exchanges garantem aos investidores, mas é preciso confiar na palavra dos altos escalões? Por que – se de fato existem – ninguém impõe a todas essas estruturas (sem exceção alguma) os mais altos padrões de segurança existentes?
Disclaimer: O presente artigo expressa a opinião pessoal dos colaboradores da Custodia Wealth Management que o redigiram. Não se trata de conselhos ou recomendações de investimento, de consultoria personalizada e não deve ser considerado como um convite para realizar transações com instrumentos financeiros.