OrionProtocol sufrió un ataque de reentrada que resultó en una pérdida de 2.9 millones de dólares. Análisis de la vulnerabilidad de seguridad y recomendaciones de prevención.
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 Smart Chain sufrió un ataque de reentrada debido a una vulnerabilidad en el contrato, lo que resultó en pérdidas de aproximadamente 2.9 millones de dólares. Los atacantes aprovecharon la vulnerabilidad del contrato, creando contratos de Token especiales para realizar operaciones de devolución de llamada y llevar a cabo el ataque de reentrada.
Análisis del proceso de ataque
El atacante primero creó un contrato de Token especial y realizó las operaciones de transferencia y autorización correspondientes. Luego, el atacante tomó prestado a través del método swap de un DEX y llamó al método swapThroughOrionPool de OrionProtocol para intercambiar tokens. Durante el proceso de intercambio, el atacante utilizó su propio contrato de Token para realizar una llamada de retorno, invocando repetidamente el método depositAsset, lo que provocó que el monto del depósito se acumulase. Finalmente, el atacante completó su ganancia mediante una operación de retiro.
Flujo de fondos
Los fondos iniciales del atacante provienen de la cuenta de 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 herramientas de mezcla.
Análisis de vulnerabilidades
El problema central radica en la función doSwapThroughOrionPool. Esta función actualiza la variable curBalance después de realizar la transferencia de tokens, pero no toma en cuenta el posible riesgo de ataques de reentrada. Un atacante puede agregar lógica de callback en la función transfer de un Token personalizado, lo que provoca que curBalance se actualice incorrectamente, permitiendo así el ataque.
Reproducción de ataque
Los investigadores proporcionaron parte del código POC, simulando el proceso de ataque. Los resultados de las pruebas mostraron que, al explotar las vulnerabilidades en el contrato, se logró realizar un flujo de fondos similar al de un ataque real.
Consejos de seguridad
Al desarrollar contratos, se deben considerar los posibles riesgos que pueden surgir de múltiples tokens y rutas de intercambio.
Seguir la norma de codificación "Checks-Effects-Interactions" (Comprobaciones-Efectos-Interacciones), primero realizar la verificación, luego actualizar las variables de estado y finalmente ejecutar las llamadas externas.
Fortalecer las medidas de protección contra ataques de reentrada, como el uso de bloqueos de reentrada y otros métodos.
Realizar una auditoría de seguridad exhaustiva, prestando especial atención a las funciones que podrían ser explotadas para llevar a cabo ataques de reentrada.
Actualizar y optimizar periódicamente el código del contrato, reparando a tiempo las vulnerabilidades encontradas.
Este evento recuerda una vez más a los equipos de proyectos Web3 que deben prestar alta atención a la seguridad de los contratos inteligentes. Los desarrolladores de contratos deben manejar con mayor cuidado la lógica relacionada con la transferencia de fondos y considerar plenamente diversos escenarios de ataque posibles. Al mismo tiempo, realizar auditorías de seguridad regularmente y establecer programas de recompensas por vulnerabilidades también son métodos efectivos para garantizar la seguridad del proyecto.
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.
18 me gusta
Recompensa
18
7
Compartir
Comentar
0/400
MevTears
· 07-23 02:41
¡Estúpido! Otra vez la misma vieja reentrada.
Ver originalesResponder0
MetaMisery
· 07-21 02:18
Otra vez vienen a tomar a la gente por tonta, qué mal
Ver originalesResponder0
RetailTherapist
· 07-20 20:40
¿Quién más está atrapado?
Ver originalesResponder0
PositionPhobia
· 07-20 03:55
Otra vez los contratos inteligentes fallaron
Ver originalesResponder0
CryptoTherapist
· 07-20 03:55
hagamos una respiración consciente antes de desglosar este trauma de reentrada
Ver originalesResponder0
RektCoaster
· 07-20 03:45
El clásico truco de reentrada recursiva, un tema viejo.
Ver originalesResponder0
SnapshotDayLaborer
· 07-20 03:33
Otra vez me han dado cupones de clip, ¡qué tragedia!
OrionProtocol sufrió un ataque de reentrada que resultó en una pérdida de 2.9 millones de dólares. Análisis de la vulnerabilidad de seguridad y recomendaciones de prevención.
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 Smart Chain sufrió un ataque de reentrada debido a una vulnerabilidad en el contrato, lo que resultó en pérdidas de aproximadamente 2.9 millones de dólares. Los atacantes aprovecharon la vulnerabilidad del contrato, creando contratos de Token especiales para realizar operaciones de devolución de llamada y llevar a cabo el ataque de reentrada.
Análisis del proceso de ataque
El atacante primero creó un contrato de Token especial y realizó las operaciones de transferencia y autorización correspondientes. Luego, el atacante tomó prestado a través del método swap de un DEX y llamó al método swapThroughOrionPool de OrionProtocol para intercambiar tokens. Durante el proceso de intercambio, el atacante utilizó su propio contrato de Token para realizar una llamada de retorno, invocando repetidamente el método depositAsset, lo que provocó que el monto del depósito se acumulase. Finalmente, el atacante completó su ganancia mediante una operación de retiro.
Flujo de fondos
Los fondos iniciales del atacante provienen de la cuenta de 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 herramientas de mezcla.
Análisis de vulnerabilidades
El problema central radica en la función doSwapThroughOrionPool. Esta función actualiza la variable curBalance después de realizar la transferencia de tokens, pero no toma en cuenta el posible riesgo de ataques de reentrada. Un atacante puede agregar lógica de callback en la función transfer de un Token personalizado, lo que provoca que curBalance se actualice incorrectamente, permitiendo así el ataque.
Reproducción de ataque
Los investigadores proporcionaron parte del código POC, simulando el proceso de ataque. Los resultados de las pruebas mostraron que, al explotar las vulnerabilidades en el contrato, se logró realizar un flujo de fondos similar al de un ataque real.
Consejos de seguridad
Este evento recuerda una vez más a los equipos de proyectos Web3 que deben prestar alta atención a la seguridad de los contratos inteligentes. Los desarrolladores de contratos deben manejar con mayor cuidado la lógica relacionada con la transferencia de fondos y considerar plenamente diversos escenarios de ataque posibles. Al mismo tiempo, realizar auditorías de seguridad regularmente y establecer programas de recompensas por vulnerabilidades también son métodos efectivos para garantizar la seguridad del proyecto.