Intercambio de bitcoins Intercambio de bitcoins
Ctrl+D Intercambio de bitcoins
ads
Casa > DOT > Info

Primer lanzamiento | Explicación detallada de las vulnerabilidades de los contratos inteligentes Opyn de la plataforma DeFi, atacantes de Empty White Wolf

Author:

Time:

El 5 de agosto de 2020, hora de Beijing, el contrato inteligente Opyn ETH Put de la plataforma de opciones DeFi Opyn fue pirateado, lo que resultó en una pérdida de aproximadamente US $ 370,000.

Opyn es un acuerdo de opciones generales, que se transformó en una plataforma de seguros en febrero de este año. Proporciona a las plataformas DeFi opciones de venta de ETH negociables a través de oTokens, a fin de anclar el precio de mercado de ETH y proporcionar una estabilidad relativa para el mercado DeFi altamente volátil.

Después de enterarse de que la plataforma Opyn fue atacada, el equipo de seguridad de PeckShield localizó rápidamente los puntos clave del problema:

El atacante descubrió que la interfaz de ejercicio (ejercicio) del contrato inteligente de Opyn tiene algunas fallas de procesamiento para el ETH recibido, y su contrato no verifica el monto de la transacción en tiempo real del comerciante, de modo que el atacante puede iniciar una transacción real en sí mismo Después eso, insertar una transacción falsa para engañar a los activos digitales hipotecados del vendedor, y luego darse cuenta de las manos vacías.

En pocas palabras, porque la función de ejercicio exercise() en el contrato inteligente Opyn ETH Put no realiza una verificación en tiempo real del ETH del comerciante. Según la lógica de negocio de la plataforma Opyn, el comprador de la opción de venta transfiere el valor correspondiente de ETH al vendedor para obtener los activos digitales hipotecados por el vendedor. El atacante astuto primero inicia una transacción encubierta para sí mismo y utiliza la característica reutilizable de este ETH para iniciar una transferencia al usuario vendedor nuevamente, defraudando así al vendedor de los activos digitales hipotecados.

Informe: El interés en los productos de inversión en criptomonedas se debilita aún más en julio: un nuevo informe de CryptoCompare destaca una caída en la actividad de acuerdos en el espacio de inversión en activos digitales, así como una caída en los activos totales bajo administración (AUM), informa Jinse Finance. El interés en los productos de inversión en criptomonedas siguió disminuyendo en julio, ya que el precio de bitcoin cayó por debajo de los $30 000. Los activos totales bajo gestión en bolsas y productos de inversión de activos digitales extrabursátiles cayeron un 14% a 34.800 millones de dólares desde junio, mostró el informe. Los productos en escala de grises representaron la gran mayoría con 27.900 millones de dólares (80,1 % del total), seguidos de XBT Provider (2.700 millones de dólares, 7,8 % del total) y 21Shares (949 millones de dólares, 2,7 % del total). El informe también encontró que la actividad comercial en productos de criptoinversión continuó desacelerándose, con volúmenes comerciales diarios totales hasta la fecha de julio de $ 319 millones, un 35% menos que los niveles de junio. [2021/7/23 1:10:39]

El siguiente es un análisis detallado de la causa de la vulnerabilidad y el proceso de ataque.

Análisis detallado del proceso de vulnerabilidades

Permítanme hablar primero sobre la lógica comercial de la plataforma Opyn: cuando un usuario usa el contrato Opyn para ejercer, es decir, para comprar y vender futuros (ejercicio), el comprador debe transferir una cantidad correspondiente de ETH o ERC20 Token al vendedor, y luego el contrato destruirá el correspondiente oToken del comprador, y luego El comprador obtendrá la propiedad que el vendedor ha hipotecado.

CI GAM presenta el prospecto final para CI Galaxy Bitcoin Fund: CI Global Asset Management ("CI GAM") anuncia que presentó ante las autoridades reguladoras de valores de todas las provincias y territorios de Canadá y obtuvo un recibo del prospecto final relacionado con el oferta pública del fondo (CI Galaxy Bitcoin Fund). Se espera que la oferta, que tiene un tamaño máximo de $ 350 millones, se cierre alrededor del 16 de diciembre y está sujeta a las condiciones de cierre habituales, incluida la recepción de todas las aprobaciones regulatorias necesarias. Noticias anteriores, Galaxy Digital y CI GAM lanzaron un nuevo fondo de bitcoin "CI Galaxy". (Reportero criptográfico) [9/12/2020 14:40:17]

Por ejemplo: Xiao Wang cree que el mercado ha entrado en una tendencia a la baja y ve una opción de venta de los $330 de Xiao Li en ETH pendiente de Opyn, por lo que ingresa al sistema de comercio, transfiere un ETH a Xiao Li y obtiene la cantidad equivalente de activos digitales hipotecados por Xiao Li. Si el mercado ha bajado a 300 dólares estadounidenses en este momento, Xiao Wang puede obtener la diferencia de precio.

Figura 1. La lista de direcciones de bóvedas pasadas se repite en la función de ejercicio()

Como se muestra en el fragmento de código de contrato anterior, la función de ejercicio exercise() es internamente un bucle, y la función de lógica de ejercicio real _exercise() se llama secuencialmente de acuerdo con la cantidad de direcciones en vaultsToExerciseFrom pasadas en el parámetro.

Figura 2. Reutilización del ETH transferido al contrato para obtener activos colaterales

Cuando la función maneja el token ERC20, usa transferFrom() como lo hacen la mayoría de los proyectos DeFi, como se muestra en la línea 1882 del código, para transferir dinero de msg.sender a address(this).

Pero cuando el activo procesado por la función es ETH, el método de procesamiento es completamente diferente. Porque en Solidity, msg.value significa la cantidad de ETH transferida al contrato por la persona que llama al contrato al llamar a la interfaz de pago, que es solo un valor, por lo que en la línea 1879 del código del contrato, verifique msg.value == amtUnderlyingToPay solo garantiza que el contrato haya recibido el monto amtUnderlyingToPay de ETH y no tendrá ningún impacto en el valor de msg.value.

Pero como se mencionó anteriormente, la función _ejercicio() se llamará cíclicamente en ejercicio(), lo que lleva al hecho de que, aunque el contrato en realidad solo recibe ETH una vez, se puede reutilizar durante el ciclo.

El punto de ataque está aquí. Dado que el contrato carece de un paso para verificar la cantidad de ETH en tiempo real, el atacante puede primero falsificar una transacción que apunta a sí mismo y luego usar el capital gastado nuevamente para completar una transacción con otros usuarios de la red. plataforma transacción normal.

Figura 3. Análisis de transacciones de ataques

En la Figura 3, mostramos el proceso de ataque a través del proceso de llamada que muestra el navegador Bloxy. Dado que el atacante ha consumido muchos pedidos, tomaremos una de las transacciones como ejemplo para mostrarle la lógica del ataque:

1. El atacante primero compró 75 oETH de Uniswap para prepararse para un mayor ejercicio de la función de llamada 2. El atacante creó una dirección de Vault como vendedor de opciones cortas e hipotecó 24 750 USDC para acuñar 75 oETH, pero no vendió estas opciones es equivalente a comprando el derecho a vender 75 ETH a un precio de 330 al mismo tiempo; 3. El atacante llama a exercise() en el contrato de Opyn. Transfirí 75 ETH a mi dirección de Vault, obtuve 24,750 USDC que hipotequé por adelantado, y luego reutilizó los 75 ETH para consumir con éxito 24 750 USDC de otro usuario, obteniendo así ganancias ilegales.

Soluciones sugeridas

El equipo de seguridad de PeckShield sugiere que en Solidity, los contratos pueden usar una variable local msgValue para almacenar ETH recibido (el valor de msg.value). De esta manera, al operar msgValue en los pasos posteriores, es posible marcar con precisión cuánto ETH se ha gastado, evitando así que los activos se reutilicen. Además, también podemos usar address(this).balance para verificar el saldo del contrato y evitar el riesgo de que se reutilice msg.value.

Tags:

DOT
Perspectivas del mercado de FTX: la tendencia de las monedas principales es muy consistente con los rendimientos de los proyectos DeFi de BTC que ya no aumentan constantemente

Aumento y disminución semanal BTC-PERP: +21,72 % | ETH-PERP: 26,95 %ALT: +26,49 % | MID: +8,89 % | MIERDA: 0,66 % | DEFI-PERP: +2,08 %BVOL: 14,97 % | iBVOL: -23,17 %HACHÍS: +5,19%FTT: +14,98 % | FTT/BTC: -5.

¿Puede Bancor romper el juego en DEX?

El contrato inteligente de Bancor V2 se ha implementado en la red principal de Ethereum. Bancor V2 tiene algunas funciones DEX sobresalientes.

Golden Observation丨La ambición del nuevo proyecto de pago F2 de Facebook: ¿unificar el mundo de los pagos?

Golden Finance Blockchain, 11 de agosto  Facebook lanzó un nuevo proyecto de pago "Facebook Financial" (F2), y formó un equipo de pago (incluido Libra).

Primer lanzamiento | Explicación detallada de las vulnerabilidades de los contratos inteligentes Opyn de la plataforma DeFi, atacantes de Empty White Wolf

El 5 de agosto de 2020, hora de Beijing, el contrato inteligente Opyn ETH Put de la plataforma de opciones DeFi Opyn fue pirateado, lo que resultó en una pérdida de aproximadamente US $ 370.

La tendencia dorada丨Conocer la historia y aprender del presente La tendencia BTC está lejos de alcanzar su punto máximo

La imagen de arriba muestra la relación entre la tendencia histórica actual del precio de BTC de 2010 a 2020 y la curva de fluctuación de la cantidad de billeteras móviles que se han mantenido durante más de un año.

Gu Yanxi: Cuatro elementos básicos determinan el intercambio de activos digitales

Para una bolsa de valores convencional, existen algunos elementos clave que determinan su éxito. Estos factores incluyen la seguridad, el rendimiento y la estabilidad de todos los aspectos del intercambio.

8.6 Mercado nocturno: las divisas principales mantienen la estabilidad, las divisas pequeñas comienzan a funcionar

El artículo es una contribución de Biquan Beiming, columnista de Jinse Finance and Economics, y sus comentarios solo representan sus puntos de vista personales.

ads