Desglose: Cómo el hacker robó 80k ETH del puente Solana Wormhole PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Desglose: cómo el hacker robó 80k ETH del puente Solana Wormhole

Uno de los peores hacks contra la cadena de bloques de Solana sucedió el miércoles cuando un hacker logró transferir 80,000 214 ether (ETH), más de $XNUMX millones en el momento de escribir este artículo, fuera del sistema de Solana y a la cadena de bloques de Ethereum a través del puente Wormhole, un servicio que brinda la capacidad de transferir fondos entre las diferentes cadenas de bloques.

Explicado en un tweet o fresa de hueso denso por el perfil seudónimo de Twitter contratos inteligentes, el hacker finalizó el exploit transfiriendo los 80,000 ETH del contrato inteligente de Wormhole en Ethereum en un solo transaccional. Al final resultó que, este fue solo el movimiento final en una serie de hacks que permitieron al hacker robar los fondos. 

“Aunque es dramático, esta transacción es solo el final de una interesante serie de eventos. Tuve que empezar a trabajar hacia atrás para descubrir cómo esto era posible”, tuitea smartcontracts.

Guardianes firmaron una transferencia falsa

Wormhole es un llamado puente, un contrato inteligente, en Ethereum en este caso, que proporciona una forma de mover criptoactivos entre diferentes cadenas de bloques. De acuerdo con los contratos inteligentes, desde un punto de vista de alto nivel, Wormhole tiene específicamente un conjunto de guardianes co-llamados que aprueban las transferencias entre las cadenas de bloques.

Los guardianes de Wormhole habían firmado de alguna manera esta transferencia de 80,000 100 ETH como si fuera XNUMX % legítima.

“La transacción que sacó 80,000 ETH fue en realidad el atacante que transfirió 80,000 XNUMX ETH de Solana a Ethereum. Originalmente pensé que el contrato podría haber validado incorrectamente las firmas en la transferencia, pero las firmas [estaban] completamente verificadas”.

Según los contratos inteligentes, el primer avance y la explicación parcial provino de un transaccional en Solana, que de alguna manera acuñó 120,000 "Wormhole ETH", envolvió el éter en Solana, de la nada. Dado que el pirata informático pudo acuñar Wormhole ETH en Solana, pudo retirarlo correctamente de regreso a Ethereum.

“Solana es un poco rara”

Al examinar el historial de transacciones del pirata informático, hay una transacción que se produjo justo antes de la acuñación de 120,000 Wormhole ETH. En esto transaccional, el hacker acuña solo 0.1 Wormhole ETH, como si el hacker estuviera probando la función con una pequeña cantidad.

Un examen más detallado del historial de transacciones del hacker revela que el hacker hizo una depositar de 0.1 ETH de Ethereum a Solana. Aunque el atacante no hizo un depósito ETH de 120,000 XNUMX ETH en el contrato inteligente de Wormhole en Ethereum, hay algo interesante en este depósito.

Como explica smartcontract en su tweet, las transacciones que acuñaron Wormhole ETH en Solana desencadenaron un contrato inteligente de Wormhole. función llamado "completo_envuelto“. Uno de los parámetros que toma esta función es un “mensaje de transferencia”, básicamente un mensaje firmado por los guardianes del puente que dice qué token acuñar y cuánto.

“Solana es un poco rara, por lo que estos parámetros son en realidad contratos inteligentes en sí mismos. Pero lo importante es cómo se crean estos contratos de "mensaje de transferencia". Aquí esta la transaccional eso hizo el mensaje de transferencia de 0.1 ETH”, tuitea los contratos inteligentes.

¿Quién está revisando las damas?

Este contrato de "transferencia de mensaje" se crea activando un función llamado "post_vaa“. Lo más importante es que post_vaa comprueba si el mensaje es válido comprobando las firmas de los guardianes. Esa parte parece bastante razonable, dice smartcontracts, pero es este paso de verificación de firma lo que rompió todo.

La función “post_vaa” en realidad no verifica las firmas. En cambio, al estilo típico de Solana, hay otro contrato inteligente que se crea llamando al "verificar_firmas" función. Una de entradas a la función "verify_signatures" es un programa de "sistema" incorporado de Solana que contiene varias utilidades que el contrato puede usar.

Dentro de "verify_signatures", el programa Wormhole intenta verificar que la ejecución que sucedió justo antes de que se activara esta función, fue que el secp256k1 Se ejecutó la función de verificación de firma.

“Esta función de verificación es una herramienta integrada que se supone que verifica que las firmas proporcionadas sean correctas. Por lo tanto, la verificación de la firma se ha subcontratado a este programa. Pero aquí es donde entra el error”, tuitea smartcontracts.

Los contratos de Wormhole usaban la función cargar_instrucciones_en para verificar que la función Secp256k1 se llamó primero, pero la función load_instruction_at quedó obsoleta hace relativamente poco porque no comprueba que se está ejecutando contra la dirección real del sistema!

Game Over

De acuerdo con los contratos inteligentes, se supone que la persona que llama debe proporcionar como Las opciones de entrada la dirección del sistema al programa que se está ejecutando, pero el hacker proporcionó una dirección de sistema diferente.

Aquí está la dirección del sistema que se usa como entrada para "verify_signatures" para el depósito legítimo de 0.1 ETH:

Entrada correcta de la dirección del sistema
Entrada correcta de la dirección del sistema

Pero aquí está la transacción "verify_signatures" para el depósito falso de 120k ETH:

Entrada de dirección del sistema
Entrada de dirección de sistema falsa 

¡Esa no es la dirección del sistema!

“Usando este programa de sistema “falso”, el atacante podría mentir sobre el hecho de que se ejecutó el programa de verificación de firmas. ¡Las firmas no estaban siendo revisadas en absoluto!”, tuitea smartcontracts.

“Después de ese punto, se acabó el juego. El atacante hizo que pareciera que los guardianes habían firmado un depósito de 120k en Wormhole en Solana, aunque no lo habían hecho. Todo lo que el atacante necesitaba hacer ahora era hacer que su dinero "de juego" fuera real retirándolo a Ethereum. Y un retiro de 80k ETH + 10k ETH más tarde (todo en el puente de Ethereum), todo desapareció”.

domo eterno

Boletín de CryptoSlate

Con un resumen de las historias diarias más importantes en el mundo de las criptomonedas, DeFi, NFT y más.

conseguir una Edge en el mercado de criptoactivos

Acceda a más información y contexto sobre criptografía en cada artículo como miembro pago de Borde CryptoSlate.

Análisis en cadena

Instantáneas de precios

Más contexto

Únase ahora por $ 19 / mes Explore todos los beneficios

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

Sello de tiempo:

Mas de CryptoSlate