Los riesgos de seguridad de THORChain (RUNE)


Según el referencia del Riquezas del primer trimestre de 2022 de THORChain, publicado el 1 de abril, la condena experimentó un crecimiento de los ingresos a pesar del doble impacto de la cariño continua del mercado y los factores geopolíticos mucho volátiles. Los datos públicos muestran que THORChain reportó ingresos de $2.17 mil millones en el primer trimestre de 2022. Aclamado como la «lectura de cadenas cruzadas de UniSwap», THORChain ha ingresado al mercado comercial de cadenas cruzadas al capitalizar sus ventajas únicas y obtuvo un amplio examen entre los inversores.

Detrás de todo este elegancia, THORChain igualmente está profundamente preocupado por la piratería. La condena ha sufrido frecuentes brechas de seguridad desde su impulso en Ethereum, hecho que genera dudas sobre su seguridad. El 11 de abril, THORChain tuiteó sobre ataques de phishing y advirtió a los usuarios que no interactuaran con ellos. [DeTHOR] u otros tokens desconocidos en sus billeteras, lo que nuevamente generó preocupaciones sobre sus problemas de seguridad.

Al construir un sistema de seguridad sólido para los productos de CoinEx, el equipo de seguridad de CoinEx igualmente rastrea los incidentes de seguridad de blockchain para ayudar a los usuarios a comprender mejor la seguridad de varios proyectos desde una perspectiva de seguridad técnica y mitigar el peligro de inversión. Con el objetivo de mejorar los criterios de seguridad para el sector blockchain, el equipo de seguridad de CoinEx ha analizado los riesgos de seguridad de THORChain (RUNE). El equipo aplazamiento que THORChain pueda identificar y mitigar los siguientes riesgos al optimizar los códigos de arreglo inteligente relevantes. Encima, este artículo igualmente es una advertencia para los usuarios, recordándoles que sean más conscientes de la seguridad patrimonial y eviten pérdidas patrimoniales.

¿Qué tan seguro es THORChain (RUNE)?

Al analizar el código del arreglo y la deducción de THORChain (RUNE), el equipo de seguridad de CoinEx encontró los siguientes riesgos:

Primero, veamos el código de arreglo de THORChain (RUNE):

https://etherscan.io/address/0x3155ba85d5f96b2d030a4966af206230e46849cb#código

Podemos proponer que RUNE es un token ERC-20 harto tipificado. Junto a señalar que encima de la interfaz ERC-20, THORChain (RUNE) ofrece otra interfaz:

Según transferTo (como se muestra en la imagen de en lo alto), THORChain (RUNE) usa tx.origin, que es una de las causas de sus riesgos de seguridad. Aquí deberíamos explicar la diferencia entre tx.origin y msg.sender:

La ulterior imagen describe lo que sucede cuando una dirección regular fuego al arreglo inteligente:

En tales casos, msg.sender = account.address y tx.origin = account.address, lo que significa que msg.sender es exactamente lo mismo que tx.origin.

Esto es lo que sucede cuando una cuenta fuego al Convenio A y el Convenio A fuego al Convenio B:

Cuando el Convenio A fuego al Convenio B (como se muestra en lo alto), podemos ver que msg.sender es igual a tx.origin en el Convenio A.

Sin retención, en el arreglo B, msg.sender = contractA.address mientras que tx.origin = account.address. Por lo tanto, tx.origin es como una variable total que atraviesa toda la pila de llamadas y devuelve la dirección de la cuenta que envió originalmente la transacción. Este es el punto principal: hasta la aniversario, casi todos los ataques conocidos en THORChain (RUNE) se refieren a tx.origin.

Ahora averigüemos cómo los atacantes roban los tokens RUNE de los usuarios a través de tx.origin:

Ataque #1: Robar una chiva de un piara

Las direcciones en Ethereum se dividen en direcciones externas y direcciones de arreglo. La transferencia de ETH a estos dos tipos de direcciones por parte de direcciones externas es fundamentalmente diferente. Ese Documentación oficial de solidez establece que una dirección de arreglo debe implementar una función de recibimiento de éter antaño de que se puedan realizar las transferencias.

Dadas las capacidades de tx.origin, los piratas informáticos pueden crear un arreglo de ataque:

Cuando el arreglo Attack recibe una transferencia ETH de un adjudicatario, «robará una chiva de un piara»: el arreglo robará los tokens RUNE del adjudicatario en el proceso.

Ataque #2: Ataque Interno

Un ataque interno es un tipo particular de ataque. Al intentar robar la RUNE de un adjudicatario a través de un ataque interno, el hacker necesita un token mediano. Encima, el token igualmente debe invocar contratos de terceros. Según los registros de transferencia de RUNE en Ethereum, algunos atacantes piratearon RUNE a través de transferencias de tokens AMP.

AMP Token utiliza el tipificado ERC-1820 para cuidar el registro de ganchos y confirmar si los ganchos están registrados en cada transmisión. Si Hook está registrado, se fuego a Hook.

El código de arreglo del token AMP muestra que la implementación final de la transferencia es: _transferByPartition. Ahora hay dos llamadas a TransferHook: _callPreTransferHooks (antaño de confirmar) y _callPostTransferHooks (posteriormente de confirmar). Específicamente, _callPreTransferHooks representa la dirección de origen, mientras que _callPostTransferHooks representa la dirección de destino (es proponer, de recibimiento).

Para los usuarios habituales, robar tokens de uno mismo no tiene sentido. Por lo tanto, los atacantes pueden explotar _callPostTransferHooks. Ahora veamos los códigos de _callPostTransferHooks.

IAmpTokensRecipient(Implementación del destinatario).tokensReceived()

Podemos proponer que la única devolución de convocatoria que los atacantes podrían servirse es IAmpTokensRecipient(recipientImplementation).tokensReceived().

A continuación, ilustramos cómo se puede usar esta convocatoria para transferir el RUNE de un adjudicatario mientras se realiza una transferencia de token AMP.

Paso 1: Se requiere un plan de llamadas (como se muestra a continuación):

Paso 2: Implemente el arreglo para obtener la dirección de ataque.

Paso 3: Llame a la interfaz de arreglo ERC-1820 (setInterfaceImplementer) para registrar la interfaz.

Dirección ERC-1820: 0x1820a4B7618BdE71Dce8cdc73aAB6C95905faD24

Interfaz de arreglo: setInterfaceImplementer(dirección aAddr, Bytes32 InterfaceHash, implementador de direcciones)

En particular, toAddr es la dirección de recibimiento de la transmisión AMP,

InterfaceHash – AmpTokensRecipient – Hash:

0xfa352d6368bbc643bcf9d528ffaba5dd3e826137bc42f935045c6c227bd4c72a

interfaceHash es el hash de AmpTokensRecipient:

0xfa352d6368bbc643bcf9d528ffaba5dd3e826137bc42f935045c6c227bd4c72a

El implementador es la dirección de ataque obtenida en el paso 2.

Paso 4: Engañar a un adjudicatario para que transfiera AMP a toAddr para activar una devolución de convocatoria mientras roba su RUNE.

Ataque #3: Ataque de phishing

Como sugiere el nombre, en un ataque de phishing, el atacante promete regalar beneficios increíbles para engañar a los usuarios para que realicen ciertas operaciones de arreglo. Aquí presentamos un ataque de phishing global.

Paso 1: El atacante emite un token ERC-20 y puede escribirlo en cualquier interfaz de arreglo que incluya firmas.

Paso 2: Cree un par comercial en Uniswap o cualquier otro intercambio;

Paso 3: Ofrezca airdrops a todos los usuarios/direcciones que tengan tokens RUNE;

El trabajo original del ataque de phishing se completa básicamente con los pasos anteriores. Luego, el atacante solo tiene que esperar a que los usuarios intercambien un intercambio y los usuarios corren el peligro de perder su RUNE una vez que realizan operaciones como aprobación, transferencia, etc.

Encima, para confirmar aún más el peligro de seguridad del código de arreglo de THORChain, CoinEx ha discutido con el equipo de seguridad de SlowMist y PeckShield, dos agencias de seguridad muy conocidas en la industria. Confirmado por SlowMist y PeckShield, existe la vulnerabilidad de seguridad antedicho.

Hasta ahora, hemos cubierto diferentes tipos de ataques, así como los riesgos de seguridad que enfrentan los usuarios.

¿Cómo debería optimizar el equipo del tesina el código del arreglo para hacerse más seguro y proteger los activos de los usuarios?

La única respuesta es tener cuidado al usar tx.origin.

¿Cómo pueden los usuarios comunes mitigar los riesgos y proteger sus activos de ataques que parecen inevitables? El equipo de seguridad de CoinEx hace las siguientes sugerencias:

  1. Para el Ataque n.º 1: Realice un seguimiento del uso estimado de gasolina al realizar una transferencia. Para una transferencia regular de ETH, una tarifa de gas de 21 000 es más que suficiente. Tenga cuidado si el consumo de gas supera con creces este número.
  2. Para el Ataque n.° 2: aísle sus tokens usando diferentes billeteras. Puede acumular diferentes tokens en diferentes direcciones. Se debe tener particular precaución cuando se tráfico de la dirección de la billetera caliente que ofrecen los intercambios.
  3. Para el Ataque No.3: La codicia es la fuente de todo mal. No asistas a ciegas a un evento de airdrop.

La seguridad siempre ha sido una preocupación importante en el sector de las cadenas de bloques. Todas las partes interesadas, incluidos los equipos de proyectos y los intercambios, deben priorizar la seguridad durante las operaciones del tesina, suministrar los activos de los usuarios seguros y protegidos y promover juntos el sólido crecimiento de la industria de la condena de bloques.



Source link