Según el informe del proyecto LI.FI y el twitter de Daniel Von Fange, observamos el ataque a LI.FI el 20 de marzo de 2022. Dado que no existe un análisis técnico detallado de esta vulnerabilidad, analizamos el ataque a continuación. Encontramos que la causa raíz de este ataque es una llamada externa sin verificación.
Transacción del Ataque
Comenzamos desde la transacción del ataque para ilustrar el proceso del ataque. La siguiente captura de pantalla muestra el resultado de nuestro sistema de visualización de transacciones.

Como se muestra en la imagen anterior, todo el proceso del ataque es bastante simple, el cual no involucra contratos inteligentes maliciosos desplegados ni préstamos flash. El único paso que realizó el atacante fue invocar la función swapAndStartBridgeTokensViaCBridge(0x01c0a31a) del
contrato CBridgeFacet, que luego transfiere varios tokens (p. ej., USDC, MATIC, RPL, GNO, USDT, MVI, AUDIO, AAVE, JRT y DAI) de diferentes gastadores a la EOA controlada por el atacante.
Análisis del Código
Luego profundizamos en los códigos del contrato lógico víctima.


Según el código anterior, swapAndStartBridgeTokensViaCBridge es la entrada de una transacción entre cadenas en la cadena de origen.

El proyecto LIFI afirma que puede encontrar la mejor ruta para los usuarios, denominada Enrutamiento Inteligente, que ocurre fuera de la cadena. En particular, el sitio web front-end calcula la mejor ruta y codifica los parámetros (incluidos el contrato de intercambio y la ruta de enrutamiento) en los parámetros de la función swapAndStartBridgeTokensViaCBridge.
Claramente, el proyecto LIFI no considera que la función pueda ser invocada por cualquier cuenta en la blockchain, ya que la función no realiza ninguna verificación de los parámetros, como lista blanca y deslizamiento del intercambio. La parte más grave es que el contrato CBridgeFacet requiere que los usuarios aprueben tokens, lo que pone en riesgo el dinero de los usuarios.
Ganancias
Como resultado, el atacante roba el dinero de los usuarios de LIFI que aprobaron sus tokens al contrato CBridgeFacet al invocar la función swapAnStartBridgeTokensViaCBridge, que luego invoca las funciones transferFrom de diferentes tokens. Las estadísticas de pérdidas se muestran en la tabla a continuación. Las pérdidas totales son aproximadamente $596K, lo que es básicamente igual a las estadísticas del proyecto LIFI.
| Token | Cantidad | Precio |
|---|---|---|
| GNO | 0.94 | 310.22 |
| USDC | 202,012.28 | 0.999655 |
| MATIC | 3,144.89 | 1.46 |
| AUDIO | 1,202.37 | 1.10 |
| AAVE | 8.99 | 149.99 |
| RPL | 44.86 | 31.2 |
| MVI | 22.95 | 131.82 |
| USDT | 368,745.29 | 1 |
| DAI | 8,421.49 | 0.999847 |
| JRT | 136,805.06 | 0.03789613 |
Lecciones
Este LIFI es un agregador de puentes entre cadenas, y el contrato víctima es la entrada de la transferencia entre cadenas. La vulnerabilidad no se debe a una lógica compleja entre cadenas, como se ha demostrado en incidentes de seguridad anteriores en los puentes entre cadenas. En cambio, la causa raíz de este ataque es la llamada externa sin verificación, que es uno de los 10 problemas más comunes en Solidity.
A medida que los proyectos DeFi se vuelven más complejos, los desarrolladores de proyectos deben prestar más atención a escribir código seguro además de escribir código de negocio correcto. Recomendamos enfáticamente que los proyectos NO desplieguen contratos no auditados en blockchains.
Acerca de BlockSec
BlockSec es una empresa pionera en seguridad blockchain establecida en 2021 por un grupo de expertos en seguridad de renombre mundial. La empresa está comprometida a mejorar la seguridad y la usabilidad para el emergente mundo Web3 con el fin de facilitar su adopción masiva. Con este fin, BlockSec proporciona servicios de auditoría de seguridad para contratos inteligentes y cadenas EVM, la plataforma Phalcon para el desarrollo seguro y el bloqueo proactivo de amenazas, la plataforma MetaSleuth para el rastreo e investigación de fondos, y la extensión MetaDock para que los desarrolladores de web3 naveguen eficientemente en el mundo cripto.
Hasta la fecha, la empresa ha atendido a más de 300 clientes distinguidos como MetaMask, Uniswap Foundation, Compound, Forta y PancakeSwap, y ha recibido decenas de millones de dólares en dos rondas de financiación de inversores prominentes, incluidos Matrix Partners, Vitalbridge Capital y Fenbushi Capital.
Sitio web oficial: https://blocksec.com/
Cuenta oficial de Twitter: https://twitter.com/BlockSecTeam



