OrionProtocol sufrió un ataque de reentrada con una pérdida de 2.9 millones de dólares

robot
Generación de resúmenes en curso

Análisis del incidente de ataque de reentrada de OrionProtocol

El 2 de febrero de 2023 a las 15:40:20 UTC, el contrato de OrionProtocol en Ethereum y Binance Smart Chain fue atacado por reentrada debido a una vulnerabilidad. Los atacantes obtuvieron ganancias de 2,844,766 USDT en la cadena de Ethereum y 191,606 BUSD en la cadena de Binance Smart, con un total de aproximadamente 2.9 millones de dólares.

Análisis del proceso de ataque

El atacante primero implementó un contrato de Token personalizado y realizó las operaciones de transferencia y autorización correspondientes, preparándose para el ataque posterior.

Luego, el atacante realiza un préstamo a través del método swap de un DEX y llama al método ExchangeWithAtomic.swapThroughOrionPool de OrionProtocol para intercambiar tokens. La ruta de intercambio se establece en [USDC, Token del atacante, USDT].

Durante el proceso de intercambio, debido a la lógica de llamada de retorno contenida en el contrato Token creado por el atacante, se desencadena una llamada recursiva al método ExchangeWithAtomic.depositAsset durante la operación de Transfer, lo que provoca que el monto del depósito se acumule varias veces. Al final, el atacante completa la obtención de ganancias a través de la operación de retiro.

Análisis de ataque de reentrada de OrionProtocol con PoC

Flujo de fondos

Los fondos iniciales del atacante provienen de la cuenta de la billetera caliente de una plataforma de intercambio. De los 1,651 ETH obtenidos, 657.5 ETH aún permanecen en la dirección de la billetera del atacante, mientras que el resto se ha transferido a través de un servicio de mezcla.

Análisis de ataque de reentrada de OrionProtocol con PoC

Análisis de vulnerabilidades

El problema central radica en la función doSwapThroughOrionPool del contrato ExchangeWithAtomic. Esta función actualiza la variable curBalance después de realizar la transferencia del Token, lo que crea condiciones propicias para un ataque de reentrada. El atacante aprovecha la función de transferencia del Token personalizado para llamar al método depositAsset, lo que provoca una actualización incorrecta de curBalance. Finalmente, después de reembolsar el préstamo relámpago, el atacante extrajo fondos en exceso a través de la función withdraw.

Análisis de ataque de reentrada de OrionProtocol con PoC

Análisis de ataques de reingreso de OrionProtocol con PoC

Análisis de ataque de reingreso de OrionProtocol con PoC

Análisis de ataque de reentrada de OrionProtocol con PoC

Análisis de ataque de reentrada de OrionProtocol con PoC

Análisis de ataque de reentrada de OrionProtocol con PoC

Análisis de ataque de reentrada de OrionProtocol con PoC

Análisis de ataque por reingreso de OrionProtocol con PoC

Análisis de ataque de reentrada de OrionProtocol con PoC

Sugerencias de seguridad

  1. En el diseño del contrato se deben considerar los riesgos de seguridad que pueden surgir de múltiples tokens y rutas de intercambio.

  2. Seguir el patrón "Checks-Effects-Interactions"(Checks-Effects-Interactions) al escribir el código del contrato, es decir, primero realizar la verificación de condiciones, luego actualizar las variables de estado y finalmente ejecutar las llamadas externas.

  3. Implementar un candado de reentrada en funciones clave para prevenir ataques de reentrada.

  4. Para los contratos de Token que son llamados externamente, se debe llevar a cabo una auditoría de seguridad estricta y una gestión de lista blanca.

  5. Realizar auditorías de seguridad de contratos de forma regular para detectar y corregir a tiempo posibles vulnerabilidades.

Al tomar estas medidas, se puede reducir eficazmente el riesgo de ataques a los contratos inteligentes y mejorar la seguridad general del proyecto.

TOKEN-6.52%
Ver originales
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
  • Recompensa
  • 5
  • Compartir
Comentar
0/400
DevChivevip
· hace9h
Otra máquina de tomar a la gente por tonta se ha enfriado.
Ver originalesResponder0
GasWastervip
· hace9h
Otra máquina de tomar a la gente por tonta está condenada
Ver originalesResponder0
SleepTradervip
· hace9h
Otra vez tomar a la gente por tonta.
Ver originalesResponder0
BearMarketLightningvip
· hace10h
Otra vez me han dado cupones de clip.
Ver originalesResponder0
DoomCanistervip
· hace10h
Otra vez es el viejo problema de los contratos inteligentes.
Ver originalesResponder0
Opere con criptomonedas en cualquier momento y lugar
qrCode
Escanee para descargar la aplicación Gate
Comunidad
Español
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)