Por: Doris@Equipo de seguridad de SlowMist
fondo
El 10 de junio de 2024, según el sistema de monitoreo de seguridad SlowMist MistEye, UwU Lend, una plataforma que brinda servicios de préstamo de activos digitales en la cadena EVM, fue atacada, lo que resultó en una pérdida de aproximadamente 19,3 millones de dólares. El equipo de seguridad de SlowMist analizó el incidente y compartió los resultados de la siguiente manera:
https://x.com/SlowMist_Team/status/1800181916857155761 Información relacionada
Dirección del atacante:
0x841ddf093f5188989fa1524e7b893de64b421f47
Dirección de contrato vulnerable:
0x9bc6333081266e55d88942e277fc809b485698b9 transacción de ataque: 0xca1bbf3b320662c89232006f1ec6624b56242850f07e0f1dadbe4f69ba0d6ac3
0xb3f067618ce54bc26a960b660cfc28f9ea0315e2e9a1a855ede1508eb4017376
0x242a0fb4fde9de0dc2fd42e8db743cbc197ffa2bf6a036ba0bba303df296408b
Atacar el núcleo
El punto central de este ataque es que el atacante puede manipular directamente el oráculo de precios realizando grandes intercambios en el pool de CurveFinance, afectando el precio del token sUSDE y utilizando el precio manipulado para evacuar otros activos del pool.
Proceso de ataque
1. Los préstamos flash toman prestado activos y reducen el precio del USDE: el atacante primero toma prestada una gran cantidad de activos a través de préstamos flash e intercambia algunos de los tokens USDE prestados por otros tokens en el grupo Curve que pueden afectar el precio de sUSDE.
2. Cree una gran cantidad de posiciones de préstamo: bajo la actual caída del precio de sUSDE, preste una gran cantidad de tokens sUSDE depositando otros tokens subyacentes.
3. Manipular el oráculo nuevamente para hacer subir el precio de sUSDE: al realizar una operación de intercambio inverso en el grupo de curvas anterior, el precio de sUSDE aumentó rápidamente.
4. Liquidación a gran escala de posiciones pasivas: a medida que el precio de sUSDE aumentó rápidamente, los atacantes pudieron liquidar grandes cantidades de posiciones previamente prestadas para obtener uWETH.
5. Deposite el sUSDE restante y preste otros tokens subyacentes en el contrato: el atacante nuevamente deposita el sUSDE actualmente de alto precio para prestar más tokens de activos subyacentes con fines de lucro.
No es difícil ver que el atacante obtuvo ganancias principalmente manipulando repetidamente el precio del sUSDE, pidiendo prestado una gran cantidad cuando el precio era bajo y liquidando y rehipotecando cuando el precio era alto. Damos seguimiento al contrato de Oracle sUSDePriceProviderBUniCatch que calcula el precio de sUSDE:
Se puede ver que el precio de sUSDE se determina obteniendo primero los diferentes precios de 11 tokens USDE del grupo USDE y del grupo UNI V3 en CurveFinance, y luego ordenando y calculando la mediana en función de estos precios.
En la lógica de cálculo aquí, los precios de 5 USDE se obtienen directamente utilizando la función get_p para obtener el precio al contado en tiempo real del grupo Curve. Esto permite al atacante afectar directamente el precio medio intercambiando grandes cantidades dentro de una transacción. Resultados del cálculo numérico.
Análisis de seguimiento de niebla
Según el análisis de la herramienta de seguimiento en cadena MistTrack, el atacante 0x841ddf093f5188989fa1524e7b893de64b421f47 obtuvo aproximadamente 19,3 millones de dólares en ganancias con este ataque, incluidas las monedas ETH, crvUSD, bLUSD y USDC. Posteriormente, los tokens ERC-20 se intercambiaron por ETH.
Al rastrear las tarifas de manejo de la dirección del atacante, se descubrió que los fondos iniciales en la dirección provenían de 0,98 ETH transferidos desde Tornado Cash y, posteriormente, la dirección también recibió 5 fondos de Tornado Cash.
Ampliando el mapa de transacciones, se encontró que el atacante transfirió 1292,98 ETH a la dirección 0x48d7c1dd4214b41eda3301bca434348f8d1c5eb6. El saldo actual de la dirección es 1282,98 ETH; el atacante transfirió los 4000 ETH restantes a la dirección 0x050c7e9c62bf991. 84182 7f37745ddadb563feb70, el saldo actual de esta dirección es 4.010 ETH.
MistTrack ha bloqueado la dirección correspondiente y seguirá monitoreando la transferencia de fondos robados.
Resumir
El núcleo de este ataque es que el atacante utiliza la falla de compatibilidad del oráculo de precios para obtener directamente el precio instantáneo al contado y el precio medio calculado para manipular el precio de sUSDE, realizando así préstamos y liquidaciones bajo la influencia de serias diferencias de precios para obtener ganancias inesperadas. El equipo de seguridad de SlowMist recomienda que el equipo del proyecto mejore las capacidades antimanipulación del oráculo de precios y diseñe un mecanismo de alimentación de precios del oráculo más seguro para evitar que incidentes similares vuelvan a ocurrir.