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:
Mas aqui está a transação “verify_signatures” para o depósito falso de 120k ETH:
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.”
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
- "
- 000
- 11
- 7
- 9
- Sobre
- Segundo
- endereço
- Todos os Produtos
- Outro
- artigo
- Ativos
- Basicamente
- ser
- blockchain
- Caixa
- PONTE
- Bug
- a verificação
- Cheques
- contém
- contract
- contratos
- poderia
- cripto
- DeFi
- DID
- diferente
- Não faz
- ETH
- Ether
- Éter (ETH)
- ethereum
- Blockchain Ethereum
- eventos
- tudo
- Explorar
- falsificação
- Moda
- Figura
- Primeiro nome
- função
- fundos
- jogo
- cabouqueiro
- hacks
- história
- Como funciona o dobrador de carta de canal
- HTTPS
- importante
- insights
- IT
- juntar
- milhão
- dinheiro
- a maioria
- mover
- NTF`s
- preço
- Perfil
- Agenda
- fornecer
- fornece
- Série
- serviço
- conjunto
- pequeno
- smart
- smart contract
- Smart Contracts
- So
- Solana
- algo
- especificamente
- começo
- roubou
- Histórias
- .
- ensaio
- o mundo
- Através da
- token
- topo
- transação
- Transações
- Transferir
- Tweet
- Verificação
- trabalhar
- mundo
- escrita