Caso de Estudio de Flujo de Fondos Ilícitos: Ataque a LI.FI
Contexto del Caso
El 16 de julio de 2024, Li.Fi, un agregador de puentes entre cadenas y DEX, sufrió una importante brecha de seguridad que explotó el Contrato Diamond de Li.Fi. Varios tokens estables y otros activos por un valor aproximado de $11,6M fueron robados a los usuarios. El atacante pudo vaciar los fondos de usuarios que habían otorgado aprobaciones infinitas al contrato atacado.
- Dirección del Atacante: 0x8b3cb6bf982798fba233bca56749e22eec42dcf3
- Contrato Vulnerable: 0x1231deb6f5749ef6ce6943a275a1d3e7486f4eae
- Ejemplos de Transacciones del Ataque: 0xd82f, 0x86fe, 0x606a
La vulnerabilidad se encontraba en la función depositToGasZipERC20() del contrato GasZipFacet. El contrato GasZipFacet fue desplegado por el equipo de LI.FI cinco días antes del ataque para habilitar la recarga de gas en transacciones de puente. La función depositToGasZipERC20() incluía un argumento controlado por el usuario _swapData, que posteriormente era pasado a la llamada de función LibSwap.swap(). Desafortunadamente, LibSwap.swap incluía una llamada de bajo nivel capaz de ejecutar funciones arbitrarias con el objetivo de la llamada y los datos especificados por el argumento _swapData controlado por el atacante. El atacante aprovechó esta "vulnerabilidad de llamada arbitraria" para ejecutar transferencias no autorizadas desde usuarios que habían otorgado aprobación infinita al contrato Diamond de Li.Fi.
Análisis del Flujo de Dinero
El 16 de julio de 2024, el atacante inició casi un centenar de transacciones explotando la vulnerabilidad de llamada arbitraria, transfiriendo aproximadamente $11 millones en tokens estables (USDT, USDC, DAI) a la dirección 0x8b3c en 30 minutos. Casi todos los tokens estables sustraídos fueron rápidamente intercambiados por el token nativo de Ethereum, ETH. Los DEX utilizados por el atacante incluyeron Uniswap, Metamask Swap, entre otros. Ejemplos de transacciones de intercambio: 0xdf9b, 0x11d, 0xb4a4.
Un ejemplo del flujo de fondos dentro de una transacción de intercambio 0x8e27 que interactúa con Metamask Swap Spender. El atacante intercambió los 333.258 USDT obtenidos ilegalmente por 97,16 ETH. Todos los pools y proxies se muestran claramente usando MetaSleuth.

En el transcurso de dos horas tras el ataque, todos los activos robados fueron transferidos a direcciones intermediarias controladas por el atacante, sin dejar nada en la dirección del ataque original. Hay un total de 32 direcciones intermediarias directamente conectadas a la dirección 0x8b3c (es decir, a un salto de la dirección del ataque original). De estas, 15 direcciones recibieron únicamente 0,1 ETH desde la dirección del ataque. A fecha del 22 de octubre de 2024, el ETH en poder de estas 15 direcciones no ha sido transferido. Las direcciones restantes procesaron el resto de los grandes montos de fondos ilícitos.
Parte del flujo de fondos desde las direcciones de las víctimas hacia las direcciones intermediarias controladas por el atacante:

Tras transferir los fondos ilícitos a las direcciones intermediarias a un salto de la dirección 0x8b3c, el atacante comenzó a mover los fondos en lotes. El proceso de transferencia (lavado) se prolongó durante casi tres meses. Casi la totalidad de los fondos ilícitos fueron finalmente transferidos a Tornado Cash (99,9%), y una pequeña porción fue enviada al exchange eXch para su conversión directa a efectivo. El atacante realizó un total de 114 transacciones para interactuar con el Router de Tornado Cash. Ejemplos de transacciones que mueven ganancias ilícitas a Tornado Cash: 0x07de, 0xfe82, 0x6a47, 0x8ea6. Ejemplos de transacciones que mueven ganancias ilícitas a eXch: 0xaa89, 0x7e65, 0x8572, 0x625c, 0x2dd2, 0xda71.
Una parte del flujo de fondos desde las direcciones de capa 2 (a 2 saltos de la dirección del ataque original 0x8b3c) hasta las direcciones de capa 4:

El primer gran lote de transferencias ocurrió durante la primera semana tras el ataque, entre el 16 y el 22 de julio. El atacante transfirió aproximadamente $500k en activos ilícitos desde la dirección 0x6a6d a Tornado Cash. La transferencia de fondos ilícitos por parte del atacante mostró características distintivas: movió los fondos hacia direcciones intermediarias alejadas de la dirección del ataque (dirección de alto riesgo), canalizando gradualmente una porción hacia Tornado Cash. En el primer lote, la ruta de transferencia más larga alcanzó hasta 20 saltos. El atacante utilizó rutas de lavado extremadamente profundas para ocultar los flujos de dinero ilícito. Entre agosto y octubre, los fondos ilícitos restantes fueron transferidos gradualmente a Tornado Cash en lotes de transferencia con las mismas características.
Un ejemplo de un lote de transferencias que mueve fondos desde la dirección 0x8e85 (a un salto de 0x8b3c) al Router de Tornado Cash:

Como ilustra la figura, entre el 13 y el 16 de agosto de 2024, el atacante transfirió gradualmente 206 ETH a Tornado Cash a través de una ruta de 12 saltos. En la dirección 0xe9f7, el atacante dividió 204 ETH en dos transacciones: 100 ETH fueron enviados a Tornado Cash, mientras que 104 ETH fueron reenviados a direcciones de lavado adicionales. Este patrón de división fue consistente a lo largo de todo el proceso de transferencia. Es decir, el atacante utilizó una dirección nueva y más profunda en cada interacción con Tornado Cash.
Esfuerzos de Respuesta
Dos días después del ataque, LI.FI publicó oficialmente un informe del incidente, afirmando que habían deshabilitado con éxito el facet del contrato vulnerable en todas las cadenas e impedido cualquier acceso no autorizado adicional. LI.FI inició un plan de compensación y reembolsó íntegramente a los usuarios afectados. Respecto a la recuperación de los activos sustraídos, afirmaron que continuarían colaborando con las autoridades policiales y terceros relevantes, incluidos equipos de seguridad de la industria, para rastrear e intentar recuperar los fondos drenados. A fecha del 22 de octubre de 2024, casi la totalidad de los fondos ilícitos han sido transferidos a Tornado Cash y Li.Fi aún no ha publicado informes de rastreo.
Algunas Direcciones y Transacciones Relevantes
| Direcciones | Transacciones | Flujos de Dinero Ilícito |
|---|---|---|
| 0x8e85eace2fa757c1d97c5ebfb8b0622e5f23c5a1 | 0xe237, 0x0d23 | 206,49 ETH |
| 0xcb7c341dc6172b642dcf4a14015be70a27e5b31e | 0x050c, 0x37d4 | 873.568 USDT + 36,48 ETH |
| 0x7b93fa16c04cdcf91949d4f5f893f740992ae57e | 0x57ea, 0x52ac | 332,02 ETH |
| 0x3462d2523cded523ad47c14111aa1dcbe7773675 | 0xc66d, 0xc0ff | 120,55 ETH |
| 0xd0be9c4c84068a9964c3781f540f703c300db268 | 0x0c3b, 0x1670 | 275,38 ETH |
Descripción general del flujo de fondos:

Ver más en MetaSleuth: https://metasleuth.io/result/eth/0x14c1597cc833783ed8ac08ecc9b704b0a398201d?source=c8cd3609-0402-45eb-bb9e-2f710bd66554



