Las finanzas descentralizadas (DeFi) no se libran de los hackeos de nuevo esta semana. Un atacante consiguió robar 30 millones de dólares del protocolo Grim Finance, gracias a un ataque de reentrada relativamente conocido.
Grim Finance tiene 30 millones de dólares robados
Grim Finance (GRIM), un protocolo de finanzas descentralizadas (DeFi), confirmó la noticia en su cuenta de Twitter. Este sábado fue víctima de un ataque que provocó la pérdida de 30 millones de dólares en activos digitales. El fallo afecta directamente a las bóvedas, y todos los fondos de los usuarios están actualmente en riesgo.
El protocolo se implementa en la blockchain Fantom Opera, construida en el lenguaje Solidity y compatible con Ethereum (ETH). Grim Finance afirma ser un «optimizador de retorno compuesto», lo que significa que promete dar un retorno a tus tokens al encerrarlos temporalmente en sus bóvedas.
Hola Comunidad Grim,
Con gran pesar les informamos que nuestra plataforma fue explotada hoy por un atacante externo hace aproximadamente 6 horas. La dirección de los atacantes ha sido identificada con más de 30 millones de dólares de robo aquí https://t.co/qA3iBTSepb
– Grim Finance (@financegrim) December 19, 2021
En su documentación técnica, Grim afirma que quiere «ayudar a los usuarios a obtener más recompensas, sin complicaciones». Aparentemente no es cierto.
¿Qué es este ataque?
Según la información de Grim Finance, el hacker utilizó un ataque de «reentrada» bastante común. Se trata de iniciar una solicitud de retirada y, a continuación, realizar otras simultáneamente mientras se ejecuta la primera. De este modo, el atacante engaña al protocolo y realiza una retirada que supera el importe total de la caja fuerte.
En estos casos, los protocolos sólo suelen tener seguridad en el inicio y la finalización de su solicitud. Primero comprueban que su caja fuerte tiene fondos suficientes para realizar la retirada. A continuación, hay una comprobación adicional en la validación de la transacción, principalmente para calcular las tasas cobradas.
Suponiendo que se realicen simultáneamente varias solicitudes de retirada de fondos de toda la caja fuerte antes de que se valide alguna de ellas. Entonces se autorizará cada una de ellas y podrá retirar más de lo que realmente tiene. Este es el principio (muy simplificado) de un «ataque de reentrada».
Detalles del ataque:
Este fue un ataque avanzado. El atacante atacó utilizando la función titulada beforeDeposit() de nuestra estrategia de bóveda introduciendo un contrato de token malicioso.
– Grim Finance (@financegrim) December 19, 2021
¿Cuál es el futuro de Grim Finance?
Los ataques de reentrada son relativamente comunes en Ethereum, y están empezando a ser bien entendidos por los protocolos. De hecho, Rugdoc.io, un grupo de vigilancia de DeFi formado por auditores expertos en contratos inteligentes, afirma en una serie de tuits que Grim Finance es directamente culpable. El código debería haber contenido una «guardia de reentrada», es decir, una protección específica contra este tipo de ataque.
Esperemos que todos los proyectos puedan aprender de este incidente. La mayoría de los desarrolladores experimentados de Solidity tienen muchos conocimientos al alcance de la mano. Si aún no lo has descubierto, no construyas proyectos multimillonarios. No te dejes auditar por empresas que todo el mundo sabe que no sirven para nada», reza uno de los tuits.
Grim Finance pasó por Solidity Finance para auditar la seguridad del código de los contratos inteligentes de su protocolo. Según su informe, «ReetrancyGuard se utiliza cuando es necesario para evitar ataques de reentrada». Se equivoca de nuevo.
Un golpe para la economía del ecosistema de Grim Finance, el token GRIM se vio rápidamente afectado por la noticia. El precio cayó más de un 80%, pasando de unos 0,8 dólares a sólo 0,15 dólares en su punto más bajo. En el momento de escribir este artículo, cotiza a 0,2 dólares.

Evolución del precio del token GRIM (Fuente: CoinGecko)
En la mañana del domingo, algunas cámaras acorazadas estaban abiertas temporalmente para que los usuarios pudieran retirar sus fondos. Sin embargo, a última hora de la tarde, todos los depósitos y retiros en las bóvedas de Grim Finance permanecen suspendidos para evitar cualquier otro incidente