OrionProtocol sufrió un ataque de reentrada con una pérdida de 2.9 millones de dólares. Análisis de vulnerabilidades de seguridad y recomendaciones de 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 por la tarde, Orion Protocol en Ethereum y Binance Chain fue objeto de un ataque de reingreso debido a una vulnerabilidad en el contrato, con pérdidas de aproximadamente 2.9 millones de dólares, que incluyen 2,844,766 USDT en Ethereum y 191,606 BUSD en BSC.

Análisis del proceso de ataque

El atacante primero crea un contrato de Token y realiza operaciones de transferencia y autorización, preparándose para el ataque posterior. Luego, el atacante toma prestado a través del método swap de UNI-V2 y llama al método swapThroughOrionPool del contrato ExchangeWithAtomic para intercambiar tokens. La ruta de intercambio se establece en [USDC, Token creado por el atacante, USDT].

Durante el proceso de intercambio, debido a la funcionalidad de retroalimentación en el contrato de Token creado por el atacante, el atacante continuó llamando al método ExchangeWithAtomic.depositAsset a través de Token.Transfer, logrando así un ataque de reentrada. Esto llevó a que la cantidad depositada se acumulara continuamente, y finalmente el atacante completó su ganancia a través de una 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 1651 ETH obtenidos, 657.5 aún permanecen en la dirección de la billetera del atacante, mientras que el resto ha sido transferido a través de servicios de mezcla.

Análisis de ataque de reentrada de OrionProtocol con PoC

Análisis de vulnerabilidades

El problema central de la vulnerabilidad se encuentra en la función doSwapThroughOrionPool. Esta función actualiza la variable curBalance después de ejecutar la transferencia de tokens, lo que crea una oportunidad para el atacante. El atacante añade una función de callback en la función transfer del token falso, que llama a la función depositAsset, lo que provoca una actualización incorrecta de curBalance. Finalmente, tras reembolsar el préstamo relámpago, el atacante retira fondos en exceso a través de la función withdraw.

Análisis de ataques de reentrada 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 ataque de reentrada de OrionProtocol con PoC

Reproducción de ataques

Los investigadores proporcionaron parte del código POC, simulando el proceso de ataque. Los resultados de las pruebas mostraron que el atacante logró aprovechar la vulnerabilidad del contrato para obtener USDT adicional.

Análisis de ataque de reentrada de OrionProtocol con PoC

Análisis de ataques 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 reingreso de OrionProtocol con PoC

Sugerencias de seguridad

Para los proyectos con funciones de intercambio de tokens, es necesario considerar los riesgos de seguridad que pueden surgir de múltiples tokens y rutas de intercambio. Se sugiere seguir la norma de codificación "primero verificar, luego escribir en variables, y después realizar llamadas externas" (modelo Checks-Effects-Interactions) para mejorar la seguridad y estabilidad del contrato. Además, los desarrolladores del proyecto deben eliminar los riesgos del contrato fuera de la cadena siempre que sea posible, para garantizar el funcionamiento seguro del ecosistema Web3.

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
  • 3
  • Compartir
Comentar
0/400
VirtualRichDreamvip
· 07-15 08:57
¿Quién va a investigar si fue un traidor el que lo hizo?
Ver originalesResponder0
HallucinationGrowervip
· 07-12 12:30
¿Qué se ha hecho sin el trabajo de seguridad?
Ver originalesResponder0
degenonymousvip
· 07-12 12:23
Los contratos generalmente tienen muchas vulnerabilidades.
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)