Back to Blog

Ataque de Manipulación de Precios en la Realidad (De Nuevo): Incidente de RariCapital

Code Auditing
May 9, 2021
4 min read

El 8 de mayo, Peckshield reportó un incidente de seguridad sobre RariCapital. Tras una cuidadosa investigación, encontramos que se trata de un tipo de ataque de manipulación de precios (indirecto) que fue descrito en nuestro artículo: DeFiRanger: Detecting Price Manipulation Attacks on DeFi Applications. En el artículo, nos centramos en la detección de dos tipos de nuevos ataques en aplicaciones DeFi, incluyendo ataques de manipulación de precios directos e indirectos. El primero significa que un atacante manipula directamente el precio del token en DEX realizando una operación no deseada en el mismo DEX al atacar la aplicación DeFi vulnerable. El segundo significa que un atacante manipula indirectamente el precio del token de la aplicación DeFi vulnerable. Este incidente de seguridad es un ejemplo de un ataque de manipulación de precios indirecto.

Causa Raíz

Analizamos la causa raíz del ataque y encontramos que la dependencia de precios insegura es la razón. Específicamente, el precio del token LP de Rari depende del valor del token LP ibEth que posee Rari (en Ether). Desafortunadamente, el precio del token LP de ibEth puede ser manipulado por atacantes que invocan la función work de ibEth.

Rari_token_value_held_by_attacker = eth_reserve_in_Rari * Rari_token_number/Rari_token_total_supply

ibEth_token_value_held_by_Rari = eth_reserve_in_ibEth * ibEth_token_number/ibEth_token_total_supply

El eth_reserve_in_Rari se ve afectado por ibEth_token_value_held_by_Rari, que es manipulado por el atacante mediante el aumento del eth_reserve_in_ibEth (invocando la función work.)

Usando nuestro sistema DefiRanger, recuperamos fácilmente la semántica DeFi que se muestra en la figura. El número de tokens LP en la minería de liquidez (depositar Ether para obtener tokens LP) y la cancelación de liquidez (retirar tokens LP para obtener Ether) es diferente (con el círculo rojo) con el mismo número de Ether (con el fondo verde).

Proceso del Ataque

El proceso del ataque se muestra en los siguientes pasos.

  1. El atacante invoca la función work de ibEth.
  2. Esta función invoca la función SushiswapGoblin.work, que a su vez invoca el contrato controlado por el atacante (0x2f755e8980f0c2e81681d82cccd1a4bd5b4d5d46).
  1. El contrato primero deposita 58903.4755276693 Ether (tomado prestado del préstamo flash) en Rari y obtiene el token LP de Rari (146281892117489076580650).
  2. El atacante transfiere 3818.9022134987213 Ether a ibEth. Este es el paso crítico, que elevará el precio del token LP de ibEth (sin afectar su suministro total). Esto afecta además al precio del token LP de Rari. Esto se debe a que la reserva total de Ether en el fondo de Rari aumenta debido al precio elevado del token LP de ibEth que posee. Nótese que el atacante no puede manipular el precio del token de Rari o ibEth añadiendo liquidez, ya que esto también aumentaría el suministro total del token.
  3. El atacante retira el Ether. Dado que el precio del token de Rari es mayor, el atacante puede usar menos tokens LP de Rari (146196247321127203315331 en lugar de 146281892117489076580650) para obtener el mismo número de Ether y devolver el préstamo flash.
  1. El atacante obtiene el Ether devuelto al final de la función work.

Resumen

En conclusión, la brecha de seguridad que enfrentó RariCapital es un claro recordatorio de las sofisticadas amenazas que se ciernen sobre las aplicaciones DeFi. A través de una ingeniosa estrategia de explotación, los atacantes realizaron un ataque de manipulación de precios indirecto. El incidente ha revelado vulnerabilidades críticas asociadas con el uso de dependencias de precios inseguras en contratos inteligentes. Este ataque destaca la urgente necesidad de que los proyectos DeFi adopten sistemas de detección robustos como DeFiRanger para protegerse contra tácticas de manipulación tanto directas como indirectas que amenazan la integridad y seguridad del floreciente ecosistema DeFi.

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 con mejorar la seguridad y la usabilidad del 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 de seguridad y el bloqueo proactivo de amenazas, la plataforma MetaSleuth para el seguimiento e investigación de fondos, y la extensión MetaDock para que los constructores de web3 naveguen eficientemente en el mundo cripto.

Hasta la fecha, la empresa ha prestado servicios a más de 300 destacados clientes como MetaMask, Uniswap Foundation, Compound, Forta y PancakeSwap, y ha recibido decenas de millones de dólares estadounidenses en dos rondas de financiación de inversores prominentes, incluyendo Matrix Partners, Vitalbridge Capital y Fenbushi Capital.

Sitio web oficial: https://blocksec.com/

Cuenta oficial de Twitter: https://twitter.com/BlockSecTeam

Best Security Auditor for Web3

Validate design, code, and business logic before launch. Aligned with the highest industry security standards.

BlockSec Audit