Ícone do site Criptonizando

Um ‘Bandido da Blockchain’ está adivinhando chaves privadas e levando milhões

bandido blockchain ethereum

Este é um artigo traduzido de Andy Greenberg, originalmente publicado no site Wired

No verão passado, Adrian Bednarek estava pensando em maneiras de roubar a criptomoeda Ethereum . Ele é um consultor de segurança; na época, ele estava trabalhando para um cliente na indústria de criptomoedas assolada por roubos. Bednarek foi atraído para a Ethereum, em particular, devido à sua notória complexidade e às potenciais vulnerabilidades de segurança que essas partes móveis poderiam criar. Mas ele começou com a mais simples das perguntas: e se um dono de criptomoedas Ethereum armazenasse seu dinheiro digital com uma chave privada — o número impossível de adivinhar de 78 dígitos que protege a moeda escondida em um determinado endereço — que tivesse o valor de 1?

Para surpresa de Bednarek, ele descobriu que uma chave simples tinha, de fato, uma vez detido moedas, de acordo com o blockchain que registra todas as transações da Ethereum. Mas o dinheiro já havia sido retirado da carteira Ethereum – quase certamente por um ladrão que havia pensado em adivinhar uma chave particular de 1 muito antes de Bednarek. Afinal, como acontece com o Bitcoin e outras criptomoedas, se alguém souber uma chave privada do Ethereum, ele poderá usá-la para derivar o endereço público associado que a chave desbloqueia. A chave privada permite então que eles transfiram o dinheiro para esse endereço como se fossem seu proprietário legítimo.

Essa descoberta inicial despertou a curiosidade de Bednarek. Então ele tentou mais algumas chaves consecutivas: 2, 3, 4, e depois mais algumas dúzias, todas igualmente esvaziadas. Então, ele e seus colegas da consultoria de segurança Independent Security Evaluators escreveram um código, ligaram alguns servidores em nuvem e testaram mais algumas dezenas de bilhões.

No processo, e como detalhado em um documento publicado na terça-feira (23), os pesquisadores não apenas descobriram que os usuários de criptomoedas armazenaram seus tesouros de criptoativos com centenas de chaves privadas facilmente adivinhadas, mas também descobriram o que chamam de “bandido blockchain”. Uma única conta do Ethereum parece ter desviado uma fortuna de 45.000 Ether — que em certo ponto chegou a valer mais de US $ 50 milhões — usando esses mesmos truques de adivinhação de chaves.

“Ele estava fazendo as mesmas coisas que nós, mas ele foi além”, diz Bednarek. “Quem quer que seja esse cara ou esses caras, eles estão gastando muito tempo de computação farejando novas carteiras, observando cada transação e vendo se eles têm a chave para eles.”

Procurando em um gazilhão de praias

Para explicar como funciona esse banditismo blockchain, é preciso entender que as chances de adivinhar uma chave privada Ethereum gerada aleatoriamente são de 1 em 115 quattuorvigintillion. (Ou, em fração: 1/2 256 ). Esse denominador é mais ou menos em torno do número de átomos no universo. Bednarek compara a tarefa de identificar uma chave Ethereum aleatória à tarefa de escolher um grão de areia em uma praia e depois pedir a um amigo que encontre o mesmo grão entre “bilhões de gazilhões” de praias.

Mas enquanto olhava para o blockchain Ethereum, Bednarek podia ver evidências de que algumas pessoas armazenaram Ether em chaves muito mais simples, ainda mais fáceis de adivinhar. Segundo ele, o erro foi provavelmente o resultado das carteiras Ethereum que cortam as chaves em apenas uma fração do tamanho pretendido devido a erros de codificação, ou permitem que usuários inexperientes escolham suas próprias chaves, ou até mesmo que incluam códigos maliciosos, corrompendo o processo de randomização para tornar as chaves fáceis de adivinhar para o desenvolvedor da carteira.

Bednarek e seus colegas do ISE eventualmente examinaram 34 bilhões de endereços blockchain em busca desses tipos de chaves fracas. Eles chamavam o processo de ethercombing, como beachcombing (ato de procurar coisas úteis na areia da praia), mas para grãos de areia mais fáceis de adivinhar entre a vasta entropia de Ethereum. Eles finalmente encontraram 732 chaves adivinhadas que em um determinado momento continham Ether, mas que haviam sido esvaziadas. Embora algumas dessas transferências fossem sem dúvida legítimas, Bednarek supõe que 732 ainda seja apenas uma pequena fração do número total de chaves fracas das quais o Ether foi roubado desde que a moeda foi lançada em 2015.

Em meio a esses endereços vazios, entretanto, Bednarek ficou intrigado ao ver 12 que pareciam ter sido esvaziados pelo mesmo bandido. Eles haviam sido transferidos para uma conta que agora continha uma horda notável de 45.000 Ether. À taxa de câmbio de hoje, isso vale US $ 7,7 milhões.

Caçando Ether

Bednarek tentou colocar o valor de um dólar em um endereço fraco que o ladrão havia esvaziado anteriormente. Em segundos, o valor foi arrebatado e transferido para a conta do bandido. Bednarek tentou então colocar um dólar em um novo endereço de chave fraca, não utilizado anteriormente. Ele também foi esvaziado em segundos, desta vez transferido para uma conta que continha apenas alguns milhares de dólares em Ether. Mas Bednarek podia ver nas transações pendentes no blockchain da Ethereum que o bandido de Ether mais bem-sucedido tentou pegá-lo também. Alguém o havia vencido por meros milissegundos. Os ladrões pareciam ter uma vasta lista de chaves pré-geradas e estavam examinando-as com uma velocidade desumana e automatizada.

Na verdade, quando os pesquisadores examinaram o histórico da conta do bandido na blockchain no ledger da Ethereum, a conta havia extraído Ether de milhares de endereços nos últimos três anos sem nunca ter tirado nada — movimentações de dinheiro que Bednarek acredita terem sido provavelmente automatizados em prol de furtos. No pico da taxa de câmbio da Ethereum em janeiro de 2018, a conta do bandido tinha 38.000 Ether, valendo mais de US $ 54 milhões na época. No ano desde então, o valor da Ethereum despencou, reduzindo o valor da aquisição do bandido em cerca de 85%.

“Você não se sente mal por ele?” Bednarek pergunta com uma risada. “Você tem um ladrão aqui que acumulou esta fortuna e depois perdeu tudo quando o mercado caiu.”

Apesar de rastrear essas transferências, Bednarek não tem idéia de quem é o ladrão da blockchain. “Eu não ficaria surpreso se fosse um ator estatal, como a Coréia do Norte, mas isso é apenas especulação”, diz ele, referindo-se ao suposto envolvimento do governo da Coréia do Norte com vários roubos a exchanges e outras vítimas, somando mais de meio bilhão de dólares em criptomoedas nos últimos anos.

Fraco nas chaves

Bednarek também não consegue identificar as carteiras defeituosas ou corrompidas que produziram as chaves fracas. Em vez disso, ele só pode ver a evidência da criação das chaves fracas e os roubos resultantes. “Podemos ver pessoas sendo roubadas, mas não podemos dizer quais carteiras são responsáveis”, diz ele. Para o bandido da blockchain em particular, não está claro se simples roubos de chaves fracas compõem a maioria de sua riqueza roubada. O bandido poderia ter implantado outros truques, como adivinhar as frases secretas para “brain wallets” – endereços que são protegidos por palavras memorizáveis , que são mais facilmente forçadas a do que as chaves totalmente aleatórias. Uma equipe de pesquisadores de segurança encontrou evidências em 2017 de 2.846 bitcoins roubados com roubos de carteira, valendo mais de US $ 17 milhões às taxas de câmbio atuais. Um único roubo de brain-wallet da Ethereum no final de 2015 levou 40.000 Ether, quase tão grande quanto o bandido da blockchain.

O ISE ainda não conseguiu replicar seu experimento na blockchain original do Bitcoin. Mas Bednarek fez algumas verificações pontuais de cerca de 100 chaves fracas de Bitcoin e descobriu que o conteúdo das carteiras correspondentes também tinha sido roubado, embora nenhuma tenha sido tomada por um peixe grande como o bandido de Ethereum que eles haviam identificado — talvez evidência de uma concorrência mais feroz e mais distribuída entre os ladrões que visam o Bitcoin em comparação com o Ethereum.

Bednarek argumenta que a lição da ethercombing da ISE é, para os desenvolvedores de wallet, auditar o código cuidadosamente para encontrar qualquer bug que possa truncar as chaves e deixá-las vulneráveis. E os usuários devem cuidar de qual carteira eles escolhem. “Você não pode ligar para o help desk e pedir para que revertam uma transação. Quando perder uma quantia, ela se foi para sempre”, diz Bednarek. “As pessoas devem usar carteiras confiáveis e baixá-las de uma fonte confiável”. Taxas de flutuação da exchange Ethereum de lado, o bandido da blockchain não precisa de mais doações.

Receba artigos sobre Bitcoin e Criptomoedas no seu email

*Obrigatório
Sair da versão mobile