Análisis del proyecto Jarvis Network a partir de un ataque de reentrada de préstamos flash
Recientemente, un ataque contra el proyecto Jarvis Network ha llamado la atención de la industria. Según el monitoreo de datos en la cadena, el ataque ocurrió el 15 de enero de 2023, lo que provocó una pérdida de 663,101 tokens MATIC para el proyecto.
A través del análisis de la pila de llamadas de la transacción de ataque, descubrimos que el atacante aprovechó una combinación de Flash Loans y una vulnerabilidad de reentrada. Durante el proceso de eliminación de liquidez, el atacante ejecutó con éxito un ataque de reentrada, lo que provocó que la misma función devolviera valores completamente diferentes antes y después de la reentrada.
La investigación en profundidad reveló que el problema radica en la función remove_liquidity. Esta función es responsable de eliminar la liquidez y devolver los tokens al usuario. Dado que la cadena de Polygon es compatible con EVM, se activó la lógica de reentrada del contrato durante el proceso de transferencia.
La vulnerabilidad clave radica en la variable self.D utilizada en el cálculo de precios. Normalmente, self.D debería actualizarse a tiempo al retirar liquidez. Sin embargo, debido a un defecto en la lógica del código, la actualización de self.D se retrasó hasta después de la llamada externa. Esto brinda a los atacantes la oportunidad de insertar operaciones intermedias y aprovechar el valor no actualizado de self.D para realizar arbitraje.
Aunque la función remove_liquidity utiliza el decorador @nonreentrant('lock') para prevenir la reentrada, los atacantes eludieron ingeniosamente este mecanismo de protección. Lo hicieron a través de la reentrada en la funcionalidad de préstamo de otros contratos, en lugar de reentrar directamente en la función remove_liquidity, lo que les permitió eludir las restricciones del candado de reentrada.
El ataque pone de manifiesto la importancia de varios principios de seguridad clave en el desarrollo de contratos inteligentes:
Siga estrictamente el patrón Comprobaciones-Efectos-Interacciones.
Asegúrese de que la actualización de las variables críticas se complete antes de cualquier llamada externa.
Utilice múltiples fuentes de datos para la adquisición de precios para mejorar la solidez del sistema.
Una auditoría de seguridad completa es crucial para detectar y reparar vulnerabilidades potenciales.
Este evento nos recuerda nuevamente que, en un ecosistema de blockchain en rápida evolución, la seguridad siempre debe ser la principal preocupación. Los equipos de desarrollo de proyectos deben mantenerse al tanto de las últimas prácticas de seguridad y realizar revisiones de código y pruebas de vulnerabilidades de manera regular para garantizar la seguridad de los activos de los usuarios.
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.
6 me gusta
Recompensa
6
7
Compartir
Comentar
0/400
MidnightSnapHunter
· 07-18 10:01
Los errores en los contratos son realmente difíciles de prevenir.
Ver originalesResponder0
StablecoinEnjoyer
· 07-17 23:27
¡Otro proyecto ha sido hackeado!
Ver originalesResponder0
OnChainSleuth
· 07-17 00:48
Otro proyecto ha sido despojado.
Ver originalesResponder0
shadowy_supercoder
· 07-17 00:40
Tsk, otro ataque de reentrada, no aprenden.
Ver originalesResponder0
DeFi_Dad_Jokes
· 07-17 00:37
¡Otro proyecto ha estallado!
Ver originalesResponder0
DecentralizeMe
· 07-17 00:30
¡Otra vez invadido!
Ver originalesResponder0
0xSherlock
· 07-17 00:24
Hey, otra vez vienen a tomar a la gente por tonta.
La red Jarvis sufrió un ataque de reentrada por Flash Loans, con una pérdida de 660,000 tokens MATIC.
Análisis del proyecto Jarvis Network a partir de un ataque de reentrada de préstamos flash
Recientemente, un ataque contra el proyecto Jarvis Network ha llamado la atención de la industria. Según el monitoreo de datos en la cadena, el ataque ocurrió el 15 de enero de 2023, lo que provocó una pérdida de 663,101 tokens MATIC para el proyecto.
! Análisis de incidentes de ataque de reentrada de préstamos flash de Jarvis Network
A través del análisis de la pila de llamadas de la transacción de ataque, descubrimos que el atacante aprovechó una combinación de Flash Loans y una vulnerabilidad de reentrada. Durante el proceso de eliminación de liquidez, el atacante ejecutó con éxito un ataque de reentrada, lo que provocó que la misma función devolviera valores completamente diferentes antes y después de la reentrada.
! Análisis de incidentes de ataque de reentrada de préstamos flash de Jarvis Network
La investigación en profundidad reveló que el problema radica en la función remove_liquidity. Esta función es responsable de eliminar la liquidez y devolver los tokens al usuario. Dado que la cadena de Polygon es compatible con EVM, se activó la lógica de reentrada del contrato durante el proceso de transferencia.
! Análisis de incidentes de ataque de reentrada de préstamos flash de Jarvis Network
La vulnerabilidad clave radica en la variable self.D utilizada en el cálculo de precios. Normalmente, self.D debería actualizarse a tiempo al retirar liquidez. Sin embargo, debido a un defecto en la lógica del código, la actualización de self.D se retrasó hasta después de la llamada externa. Esto brinda a los atacantes la oportunidad de insertar operaciones intermedias y aprovechar el valor no actualizado de self.D para realizar arbitraje.
! Análisis de incidentes de ataque de reentrada de préstamos flash de la red Jarvis
Aunque la función remove_liquidity utiliza el decorador @nonreentrant('lock') para prevenir la reentrada, los atacantes eludieron ingeniosamente este mecanismo de protección. Lo hicieron a través de la reentrada en la funcionalidad de préstamo de otros contratos, en lugar de reentrar directamente en la función remove_liquidity, lo que les permitió eludir las restricciones del candado de reentrada.
El ataque pone de manifiesto la importancia de varios principios de seguridad clave en el desarrollo de contratos inteligentes:
Este evento nos recuerda nuevamente que, en un ecosistema de blockchain en rápida evolución, la seguridad siempre debe ser la principal preocupación. Los equipos de desarrollo de proyectos deben mantenerse al tanto de las últimas prácticas de seguridad y realizar revisiones de código y pruebas de vulnerabilidades de manera regular para garantizar la seguridad de los activos de los usuarios.
! Análisis de incidentes de ataque de reentrada de préstamos flash de red de Jarvis