OrionProtocol sufrió un ataque de reentrada que resultó en una pérdida de 2.9 millones de dólares
El 2 de febrero de 2023, OrionProtocol sufrió un ataque de reingreso en Ethereum y Binance Smart Chain debido a una vulnerabilidad en el contrato, con una pérdida total de aproximadamente 2,9 millones de dólares. El atacante utilizó un contrato de token creado por él para realizar la llamada de retorno, eludiendo con éxito el mecanismo de seguridad del contrato.
Análisis del proceso de ataque
El atacante primero creó un contrato de Token personalizado y realizó una serie de preparativos. Luego, el atacante tomó un préstamo a través del método swap de algún DEX y llamó al método swapThroughOrionPool de OrionProtocol para intercambiar tokens. La ruta de intercambio incluía la dirección del contrato de Token creado por el atacante.
Durante el proceso de intercambio, un atacante utiliza el método transfer de un Token creado por él para activar una callback, llamando nuevamente al método depositAsset de OrionProtocol. Esto provoca que el monto del depósito se calcule de manera duplicada, lo que permite al atacante retirar fondos que superan la cantidad realmente depositada.
Flujo de fondos
Los fondos iniciales del atacante provienen de la billetera caliente de una plataforma de intercambio. De los 1651 ETH obtenidos del ataque, 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 un servicio de mezcla.
Análisis de vulnerabilidades
El núcleo de la vulnerabilidad radica en las funciones doSwapThroughOrionPool y _doSwapTokens. El contrato actualiza la variable curBalance solo después de ejecutar la operación de transferencia, lo que brinda a los atacantes la oportunidad de realizar un ataque de reentrada. Los atacantes, al agregar lógica de callback en la función transfer de un Token personalizado, provocan una actualización incorrecta de curBalance, lo que finalmente permite retiros excesivos.
Reproducción de ataque
Los investigadores proporcionaron parte del código POC, demostrando cómo utilizar la vulnerabilidad para llevar a cabo un ataque. Los resultados de las pruebas coincidieron con la pila de llamadas del ataque real, confirmando la existencia y la explotabilidad de la vulnerabilidad.
Consejos de seguridad
Para los contratos inteligentes con funciones de intercambio de tokens, los desarrolladores deben considerar los riesgos de seguridad que pueden surgir de múltiples tokens y rutas de intercambio. Se recomienda seguir la norma de codificación "primero verificar, luego escribir en variables y finalmente realizar llamadas externas" (modelo Checks-Effects-Interactions) para mejorar la seguridad y estabilidad del contrato.
Este evento vuelve a enfatizar la importancia de priorizar la seguridad en el desarrollo de contratos inteligentes, especialmente al manejar flujos de fondos. El equipo del proyecto debe fortalecer la auditoría de código y considerar la incorporación de un equipo profesional de seguridad en blockchain para una evaluación integral, con el fin de minimizar al máximo los riesgos potenciales.
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.
10 me gusta
Recompensa
10
3
Republicar
Compartir
Comentar
0/400
ZeroRushCaptain
· hace9h
Otra tarjeta de retiro me enseñó a retirarme del campo de batalla
Ver originalesResponder0
AirdropChaser
· hace9h
¿Otro más?
Ver originalesResponder0
ForkLibertarian
· hace9h
Si te lo quitan, es lo que mereces, ¿quién te pidió que fueras tan arrogante?
OrionProtocol sufrió un ataque de reentrada con pérdidas de 2.9 millones de dólares.
OrionProtocol sufrió un ataque de reentrada que resultó en una pérdida de 2.9 millones de dólares
El 2 de febrero de 2023, OrionProtocol sufrió un ataque de reingreso en Ethereum y Binance Smart Chain debido a una vulnerabilidad en el contrato, con una pérdida total de aproximadamente 2,9 millones de dólares. El atacante utilizó un contrato de token creado por él para realizar la llamada de retorno, eludiendo con éxito el mecanismo de seguridad del contrato.
Análisis del proceso de ataque
El atacante primero creó un contrato de Token personalizado y realizó una serie de preparativos. Luego, el atacante tomó un préstamo a través del método swap de algún DEX y llamó al método swapThroughOrionPool de OrionProtocol para intercambiar tokens. La ruta de intercambio incluía la dirección del contrato de Token creado por el atacante.
Durante el proceso de intercambio, un atacante utiliza el método transfer de un Token creado por él para activar una callback, llamando nuevamente al método depositAsset de OrionProtocol. Esto provoca que el monto del depósito se calcule de manera duplicada, lo que permite al atacante retirar fondos que superan la cantidad realmente depositada.
Flujo de fondos
Los fondos iniciales del atacante provienen de la billetera caliente de una plataforma de intercambio. De los 1651 ETH obtenidos del ataque, 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 un servicio de mezcla.
Análisis de vulnerabilidades
El núcleo de la vulnerabilidad radica en las funciones doSwapThroughOrionPool y _doSwapTokens. El contrato actualiza la variable curBalance solo después de ejecutar la operación de transferencia, lo que brinda a los atacantes la oportunidad de realizar un ataque de reentrada. Los atacantes, al agregar lógica de callback en la función transfer de un Token personalizado, provocan una actualización incorrecta de curBalance, lo que finalmente permite retiros excesivos.
Reproducción de ataque
Los investigadores proporcionaron parte del código POC, demostrando cómo utilizar la vulnerabilidad para llevar a cabo un ataque. Los resultados de las pruebas coincidieron con la pila de llamadas del ataque real, confirmando la existencia y la explotabilidad de la vulnerabilidad.
Consejos de seguridad
Para los contratos inteligentes con funciones de intercambio de tokens, los desarrolladores deben considerar los riesgos de seguridad que pueden surgir de múltiples tokens y rutas de intercambio. Se recomienda seguir la norma de codificación "primero verificar, luego escribir en variables y finalmente realizar llamadas externas" (modelo Checks-Effects-Interactions) para mejorar la seguridad y estabilidad del contrato.
Este evento vuelve a enfatizar la importancia de priorizar la seguridad en el desarrollo de contratos inteligentes, especialmente al manejar flujos de fondos. El equipo del proyecto debe fortalecer la auditoría de código y considerar la incorporación de un equipo profesional de seguridad en blockchain para una evaluación integral, con el fin de minimizar al máximo los riesgos potenciales.