Ciência e Tecnologia

Como um bug de criptografia levou a um saque descentralizado de US $ 200 milhões

O serviço de ponte de criptomoeda Nomad, que se descreve como “um protocolo de interoperabilidade otimista que permite comunicação segura entre cadeias”, foi drenado de tokens no valor de US$ 190,7 milhões se trocados por dólares americanos.

“Estamos trabalhando 24 horas por dia para resolver a situação e notificamos a aplicação da lei e retemos empresas líderes em inteligência e forense de blockchain”, disse o biz via Twitter. “Nosso objetivo é identificar as contas envolvidas e rastrear e recuperar os fundos.”

Nomad permite que detentores de criptomoedas negociem seus tokens em diferentes blockchains, os livros públicos distribuídos usados ​​para rastrear criptoativos.

Serviços de ponte desse tipo representam um risco de segurança conhecido entre aqueles que negociam tokens. Aqui está o cofundador da Ethereum, Vitalik Buterin, refletindo no Reddit sobre os “limites fundamentais de segurança das pontes”. Ponte Qubit (US$ 80 milhões); Ponte Wormhole (US$ 320 milhões); Ponte Meter.io (US$ 4,4 milhões); e Poly Network Bridge (US$ 610 milhões que foram devolvidos).

Finalmente, aqui está James Prestwich, conversando com a Wired em abril: “Qualquer capital na cadeia está sujeito a ataque 24/7/365 , então as pontes sempre serão um alvo popular.”

A Oracle já ganha o ‘bug de criptografia do ano’ com o desvio de assinatura digital Java

De acordo com o pesquisador de segurança da Paradigm “samczsun”, explorado como resultado de um bug no que as pessoas – alguns sem um toque de ironia – chamam de “contrato inteligente”.

Coincidentemente, esse bug parece ter sido citado entre várias falhas identificado em junho 6 de auditoria de segurança de 2022 do código do Nomad.

Identificado como “QSP-19 Proving With An Empty Leaf”, o relatório chama uma verificação de validação que aceita um vazio bytes32

e recomenda: “Validar se a entrada _leaf da função

A resposta da Nomad a esta recomendação foi descartá-la, ao que o auditor respondeu: “Acreditamos que a equipe da Nomad não entendeu o problema.”

O código insuficientemente validado parece residir dentro da função process() no Nomad ERC20 Bridge Contrato (Replica.sol:process

), em uma parte do programa que serve a um propósito semelhante ao prove()

função citada no relatório de auditoria. Destina-se a aceitar um valor de entrada e ver se faz parte de uma árvore Merkle, uma estrutura de dados semelhante a uma árvore que armazena os valores de dados com hash em seus nós folha. O código deve verificar as mensagens para ver se elas contêm uma raiz Merkle válida.

No entanto, a equipe Nomad aparentemente inicializou a raiz confiável com o valor 0x00, o que teve o efeito de validar cada mensagem.

Tudo o que você precisava fazer era encontrar uma transação que funcionasse, localizar/substituir o endereço da outra pessoa pelo seu e, em seguida, retransmiti-lo

O hack possibilitado por este erro provou ser tão simples que após o ataque inicial, várias dezenas de endereços realizaram copycat roubos copiando transações e inserindo seus endereços para receber fundos. Portanto, o incidente foi descrito como “saque de multidão descentralizado”, embora na verdade o termo “finanças descentralizadas” ou DeFi implique o mesmo.

“É por isso que o hack foi tão caótico – você não precisava saber sobre Solidity ou Merkle Trees ou qualquer coisa assim”, explicou “samczsu” via Twitter. “Tudo o que você precisava fazer era encontrar uma transação que funcionasse, encontrar/substituir o endereço da outra pessoa pelo seu e depois retransmiti-lo.”

Enquanto isso, a Nomad espera obter pelo menos alguns dos tokens roubados de volta, na suposição de que certos ladrões se envolveram em roubos de proteção para esgotar fundos para que os menos caridosos não os tivessem. De acordo com seu descritor auto-aplicado “otimista”, a empresa de criptomoedas agradeceu “nossos muitos amigos de chapéu branco que agiram proativamente e estão protegendo os fundos”.

Mostrar mais

Artigos relacionados

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Botão Voltar ao topo