OrionProtocol sufrió un ataque de reentrada de 2.9 millones de dólares. Análisis del proceso del ataque y recomendaciones para la prevención.

robot
Generación de resúmenes en curso

Análisis del incidente de ataque de reentrada de OrionProtocol

El 2 de febrero de 2023, OrionProtocol sufrió un ataque de reentrada en Ethereum y Binance Smart Chain, lo que resultó en pérdidas de aproximadamente 2,9 millones de dólares. Los atacantes aprovecharon una vulnerabilidad del contrato, robando 2,844,766 USDT en la cadena de Ethereum y 191,606 BUSD en la cadena inteligente de Binance.

Proceso de ataque

El atacante primero creó un contrato de Token personalizado y realizó las operaciones de transferencia y autorización correspondientes. Luego, el atacante pidió un préstamo a través del método swap de un DEX y llamó al método ExchangeWithAtomic.swapThroughOrionPool para realizar el intercambio de tokens. La ruta de intercambio incluía la dirección del contrato de Token creado por el atacante.

Durante el proceso de intercambio, debido a la existencia de un mecanismo de callback en el contrato del Token del atacante, el atacante pudo seguir llamando al método ExchangeWithAtomic.depositAsset a través de Token.Transfer, lo que permitió llevar a cabo un ataque de reentrada. Esto resultó en la acumulación repetida del monto depositado, y finalmente el atacante completó la obtención de ganancias a través de la operación de retiro.

Análisis de ataque de reingreso de OrionProtocol con PoC

Flujo de fondos

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

Análisis de ataque de reingreso de OrionProtocol con PoC

Análisis de vulnerabilidades

El problema central de la vulnerabilidad se encuentra en la función doSwapThroughOrionPool. Esta función llama a la función _doSwapTokens, que actualiza la variable curBalance después de la operación de transferencia. El atacante aprovechó la funcionalidad de callback añadida en la función transfer del Token personalizado, llamando nuevamente a la función depositAsset antes de que curBalance se actualizara, lo que provocó una actualización incorrecta de curBalance. Finalmente, después de reembolsar el préstamo relámpago, el atacante extrajo fondos adicionales 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 reingreso de OrionProtocol con PoC

Análisis de ataques de reentrada de OrionProtocol con PoC

Análisis de ataque 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

Sugerencias de prevención

Para prevenir ataques similares, se recomienda que el equipo del proyecto preste atención a los siguientes puntos al diseñar el contrato:

  1. Considerar las posibles eventualidades que pueden surgir de múltiples tokens y múltiples rutas de intercambio.
  2. Seguir el patrón de codificación "Checks-Effects-Interactions", es decir, primero realizar la verificación de condiciones, luego actualizar las variables de estado y finalmente ejecutar las llamadas externas.
  3. Utilizar un candado de reentrada antes y después de operaciones clave para prevenir ataques de reentrada.
  4. Realizar una verificación de seguridad del contrato Token para llamadas externas.
  5. Realizar auditorías de código y pruebas de seguridad de forma regular para detectar y reparar vulnerabilidades potenciales a tiempo.

Al adoptar estas medidas, el proyecto puede mejorar significativamente la seguridad y estabilidad del contrato, minimizando el riesgo de sufrir ataques.

Ver originales
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Recompensa
  • 7
  • Compartir
Comentar
0/400
AirdropHunterXiaovip
· hace10h
El proyecto de Cadena de bloques ha sido aprovechado una vez más.
Ver originalesResponder0
MemecoinResearchervip
· hace10h
ngmi... parece que la maldición de la reentrancia ataca de nuevo fr fr
Ver originalesResponder0
NightAirdroppervip
· hace10h
Todo el tiempo siendo atacado, es muy triste.
Ver originalesResponder0
rugpull_survivorvip
· hace10h
tomar a la gente por tonta una vez más y habrá otra vez
Ver originalesResponder0
LightningLadyvip
· hace10h
Tienes buenas habilidades para programar.
Ver originalesResponder0
PrivacyMaximalistvip
· hace10h
Otro proyecto de Rug Pull.
Ver originalesResponder0
NotFinancialAdviservip
· hace10h
Otro proyecto ha sido estafado.
Ver originalesResponder0
  • Anclado
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)