Análise: como o hacker roubou 80k ETH da ponte Solana Wormhole PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Breakdown: Como o hacker roubou 80k ETH da ponte Solana Wormhole

Um dos piores hacks contra o blockchain Solana aconteceu na quarta-feira quando um hacker conseguiu transferir 80,000 ether (ETH), mais de US$ 214 milhões no momento da escrita, do sistema Solana e para o blockchain Ethereum através da ponte Wormhole – um serviço que fornece a capacidade de transferir fundos entre as diferentes blockchains.

Explicado em um tweet fio pelo perfil pseudônimo do Twitter contratos inteligentes, o hacker finalizou a exploração transferindo os 80,000 ETH do contrato inteligente Wormhole no Ethereum em um único transação. Como se viu, este foi apenas o movimento final de uma série de hacks que permitiram ao hacker roubar os fundos. 

“Embora seja dramática, esta transação é apenas o fim de uma série interessante de eventos. Eu tive que começar a trabalhar para trás para descobrir como isso era possível ”, tweets da smartcontracts.

Guardiões assinaram uma transferência falsa

Wormhole é uma chamada ponte, um smart contract, no Ethereum neste caso, que fornece uma maneira de mover ativos criptográficos entre diferentes blockchains. De acordo com a smartcontracts, do ponto de vista de alto nível, o Wormhole possui especificamente um conjunto de co-chamados guardiões que assinam transferências entre as blockchains.

Os guardiões do Wormhole de alguma forma assinaram essa transferência de 80,000 ETH como se fosse 100% legítima.

“A transação que retirou 80,000 ETH foi na verdade o invasor que transferiu 80,000 ETH de Solana para Ethereum. Originalmente, pensei que o contrato poderia ter validado incorretamente as assinaturas na transferência, mas as assinaturas [foram] completamente verificadas”.

De acordo com smartcontracts, o primeiro avanço e explicação parcial veio de um transação em Solana, que de alguma forma cunhou 120,000 “Wormhole ETH”, envolto em éter em Solana, do nada. Como o hacker conseguiu cunhar o Wormhole ETH em Solana, ele conseguiu retirá-lo corretamente de volta ao Ethereum.

“Solana é meio estranha”

Examinando o histórico de transações do hacker, há uma transação que ocorreu logo antes da cunhagem dos 120,000 Wormhole ETH. Nisso transação, o hacker cunha apenas 0.1 Wormhole ETH, como se o hacker estivesse testando a função com uma pequena quantidade.

Um exame mais aprofundado do histórico de transações do hacker revela que o hacker fez uma depositar de 0.1 ETH do Ethereum para Solana. Embora o invasor não tenha feito um depósito ETH de 120,000 ETH no contrato inteligente Wormhole no Ethereum, há algo interessante nesse depósito.

Como o smartcontract explica em seu tweet, as transações que cunharam o Wormhole ETH em Solana estavam acionando um contrato inteligente do Wormhole função chamado "completo_embrulhado“. Um dos parâmetros que esta função recebe é uma “mensagem de transferência”, basicamente um mensagem assinado pelos guardiões da ponte que diz qual ficha cunhar e quanto.

“A Solana é meio estranha, então esses parâmetros são na verdade contratos inteligentes. Mas o importante é como esses contratos de “mensagem de transferência” são criados. Aqui está o transação que fez a mensagem de transferência de 0.1 ETH”, tweets dos smartcontracts.

Quem está verificando as damas?

Este contrato de “mensagem de transferência” é criado acionando um função chamado "post_vaa“. O mais importante é que post_vaa verifica se a mensagem é válida verificando as assinaturas dos guardiões. Essa parte parece bastante razoável, diz a smartcontracts, mas é essa etapa de verificação de assinatura que quebrou tudo.

A função “post_vaa” na verdade não verifica as assinaturas. Em vez disso, no estilo típico de Solana, há outro contrato inteligente que é criado chamando o “verificar_assinaturas" função. Um dos inputs para a função “verify_signatures” está um programa “sistema” integrado da Solana que contém vários utilitários que o contrato pode usar.

Dentro de “verify_signatures”, o programa Wormhole tenta verificar se a execução que aconteceu logo antes desta função ser acionada, foi que o Sep256k1 função de verificação de assinatura foi executada.

“Esta função de verificação é uma ferramenta integrada que deve verificar se as assinaturas fornecidas estão corretas. Portanto, a verificação de assinatura foi terceirizada para este programa. Mas é aqui que entra o bug”, tweets dos smartcontracts.

Os contratos Wormhole usaram a função load_instruction_at para verificar se a função Sepp256k1 foi chamada primeiro, mas a função load_instruction_at foi obsoleta há relativamente pouco tempo porque não verifica se está sendo executado em relação ao endereço real do sistema!

Game Over

De acordo com os contratos inteligentes, o chamador deve fornecer como entrada o endereço do sistema para o programa que está sendo executado, mas o hacker forneceu um endereço de sistema diferente.

Aqui está o endereço do sistema sendo usado como entrada para o “verify_signatures” para o depósito legítimo de 0.1 ETH:

Entrada correta do endereço do sistema
Entrada correta do endereço do sistema

Mas aqui está a transação “verify_signatures” para o depósito falso de 120k ETH:

Entrada de endereço do sistema
Entrada de endereço do sistema falso 

Esse não é o endereço do sistema!

“Usando esse programa de sistema 'falso', o invasor pode mentir efetivamente sobre o fato de que o programa de verificação de assinatura foi executado. As assinaturas não estavam sendo verificadas de jeito nenhum!”, tuítes dos smartcontracts.

“Depois desse ponto, acabou o jogo. O atacante fez parecer que os guardiões haviam assinado um depósito de 120 mil no Wormhole em Solana, mesmo que não o tivessem feito. Tudo o que o invasor precisava fazer agora era tornar seu dinheiro “jogador” real, retirando-o de volta para o Ethereum. E uma retirada de 80k ETH + 10k ETH depois (tudo na ponte no Ethereum), tudo se foi.”

everdome

Boletim informativo CryptoSlate

Apresentando um resumo das histórias diárias mais importantes no mundo da criptografia, DeFi, NFTs e muito mais.

obter uma Beira no mercado de criptoassets

Acesse mais insights de criptografia e contexto em cada artigo como um membro pago de Borda CryptoSlate.

Análise on-chain

Instantâneos de preços

Mais contexto

Inscreva-se agora por $ 19 / mês Explore todos os benefícios

Fonte: https://cryptoslate.com/breakdown-how-the-hacker-stele-80k-eth-from-the-solana-wormhole-bridge/

Carimbo de hora:

Mais de CryptoSlate