Euler Finance sufrió un ataque de flash loan de 200 millones de dólares. La vulnerabilidad en los contratos inteligentes fue la causa del desastre.

robot
Generación de resúmenes en curso

Euler Finance sufrió un ataque de flash loan, con pérdidas cercanas a 200 millones de dólares

Recientemente, el proyecto Euler Finance sufrió un ataque de flash loan debido a una vulnerabilidad en su contrato inteligente, lo que resultó en una gran pérdida de fondos. Este artículo realizará un análisis detallado de este evento.

Análisis de vulnerabilidad de Euler Finance: ¿cómo sufrir un ataque de flash loan y perder 197 millones de dólares!

Resumen del evento

El 13 de marzo de 2023, la función donateToReserves en el contrato Etoken del proyecto Euler Finance carecía de la verificación de liquidez necesaria, lo que fue aprovechado por los atacantes para llevar a cabo un ataque de flash loan. Los atacantes, mediante múltiples operaciones con diferentes criptomonedas, causaron una pérdida de aproximadamente 197 millones de dólares, que involucró a 6 tipos de tokens. Actualmente, los fondos robados siguen retenidos en la cuenta del atacante.

Análisis de vulnerabilidades de Euler Finance: ¡cómo sufrir un ataque de flash loan, con una pérdida de 1.97 millones de dólares!

Análisis del proceso de ataque

  1. El atacante primero pidió prestado 30 millones de DAI mediante un ataque de flash loan de alguna plataforma de préstamos y desplegó un contrato de préstamo y un contrato de liquidación.

  2. A través de la función deposit, se depositan 20 millones de DAI en el contrato del Euler Protocol, obteniendo 19.5 millones de eDAI.

Análisis de vulnerabilidad de Euler Finance: ¿cómo sufrió un ataque de flash loan, con pérdidas de 197 millones de dólares!

  1. Utilizando la función de apalancamiento de 10x de Euler Protocol, se prestaron 195.6 millones de eDAI y 200 millones de dDAI.

Análisis de vulnerabilidades de Euler Finance: cómo sufrir un ataque de flash loan, ¡pérdida de 197 millones de dólares!

  1. Utilizar los 10 millones de DAI restantes para pagar parte de la deuda y destruir la cantidad correspondiente de dDAI, y luego volver a pedir prestada la misma cantidad de eDAI y dDAI.

Análisis de vulnerabilidades de Euler Finance: ¿cómo sufrió un ataque de flash loan, perdiendo 197 millones de dólares!

  1. Llamar a la función donateToReserves para donar 100 millones de eDAI, y luego liquidar a través de la función liquidate para obtener 310 millones de dDAI y 250 millones de eDAI.

Análisis de vulnerabilidades de Euler Finance: cómo sufrir un ataque de flash loan, ¡pérdida de 197 millones de dólares!

  1. Finalmente, se retiraron 38.9 millones de DAI a través de la función withdraw, se devolvieron 300,000 DAI en un ataque de flash loan, obteniendo una ganancia neta de 8.87 millones de DAI.

Análisis de vulnerabilidades de Euler Finance: cómo sufrir un ataque de flash loan, ¡pérdida de 197 millones de dólares!

Análisis de la causa del fallo

Después de la revisión del código, se encontró que el problema radica en la función donateToReserves. En comparación con funciones clave como mint, la función donateToReserves carece del importante paso checkLiquidity.

Análisis de vulnerabilidades de Euler Finance: cómo sufrió un ataque de flash loan, ¡pérdida de 197 millones de dólares!

La función checkLiquidity generalmente invoca el módulo RiskManager para verificar al usuario, asegurando que la cantidad de Etokens sea mayor que la de Dtokens. Dado que la función donateToReserves no realiza esta verificación, un atacante puede aprovechar ciertas funciones del protocolo para colocarse primero en un estado que puede ser liquidado, y luego completar la liquidación para obtener ganancias.

Análisis de la vulnerabilidad de Euler Finance: ¿cómo sufrió un ataque de flash loan, perdiendo 197 millones de dólares!

Sugerencias de seguridad

Para este tipo de ataques, el equipo del proyecto debe tener en cuenta los siguientes puntos:

  1. Antes de lanzar el contrato, se debe realizar una auditoría de seguridad completa para garantizar la seguridad del contrato.

  2. Los proyectos de préstamos deben centrarse en aspectos clave como el reembolso de fondos, la detección de liquidez y la liquidación de deudas.

  3. Todas las funciones que puedan afectar el estado de los activos del usuario deben incluir mecanismos de verificación de seguridad necesarios.

  4. Realizar revisiones de código periódicas y un programa de recompensas por vulnerabilidades para detectar y corregir amenazas potenciales a tiempo.

  5. Establecer un mecanismo de respuesta de emergencia, para que se puedan tomar medidas de remedio de manera rápida en caso de un evento de ataque.

Análisis de vulnerabilidad de Euler Finance: ¿cómo sufrir un ataque de flash loan y perder 197 millones de dólares?!

Con el continuo desarrollo de los proyectos DeFi, los problemas de seguridad son cada vez más importantes. Los equipos de los proyectos deben mantenerse alerta en todo momento, tomar medidas de protección de seguridad integrales y proporcionar una fuerte garantía para la seguridad de los activos de los usuarios.

Análisis de vulnerabilidades de Euler Finance: ¿cómo sufrió un ataque de flash loan, perdiendo 197 millones de dólares!

EUL5.08%
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
BagHolderTillRetirevip
· 07-24 17:19
Jugar a proyectos duros no es mejor que comprar la caída BTC conmigo.
Ver originalesResponder0
RadioShackKnightvip
· 07-22 00:56
Otra tontos ha sido tomado a la gente por tonta.
Ver originalesResponder0
Blockblindvip
· 07-22 00:52
Otra RATS venenosa ha salido.
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)