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.
LBank Blue Shell lanzó BOSON a las 16:50 el 9 de abril: Según el anuncio oficial, LBank Blue Shell lanzará BOSON (Boson Protocol) a las 16:50 el 9 de abril, abrirá transacciones en USDT y abrirá recargas a las 16:00 en abril. 9. El retiro estará disponible a las 16:00 el 12 de abril. Abra la transacción de recarga BOSON al mismo tiempo que se conecta en línea para compartir 10,000 USDT.
A las 16:50 del 9 de abril, LBank Blue Shell abrió la transacción de depósito BOSON para compartir 10,000 USDT. El monto de recarga neta del usuario no es inferior a 1 BOSON, y se puede obtener la recompensa de lanzamiento aéreo USDT equivalente al 1% de BOSON de acuerdo con el monto de recarga neta; la competencia comercial se clasificará de acuerdo con el volumen de operaciones de BOSON del usuario, y los 30 principales se pueden basar en la proporción del volumen comercial personal Divide USDT. Para obtener más información, haga clic en el anuncio oficial. [2021/4/9 20:02:26]
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.
Primer lanzamiento | Liu Yao: Baidu Blockchain lanzó la plataforma Tianlian para potenciar los negocios en cadena: el 20 de diciembre, la "Conferencia de Desarrolladores de Blockchain de China 2019" organizada por CSDN se llevó a cabo en Beijing el 20 de diciembre. Liu Yao, jefe de productos de cadena de bloques de Baidu Smart Cloud, pronunció un discurso sobre el tema "La cadena de bloques empresarial potencia el aterrizaje de la innovación industrial". Señaló que 2020 será el primer año en que aterrizarán las empresas de cadenas de bloques. Con la implementación de la industria de cadenas de bloques , Baidu actualizó la cadena de bloques a una estrategia basada en plataforma y lanzó la plataforma Tianlian que se basa en Baidu Smart Cloud, que potenciará la innovación comercial en cadena de 360. [2019/12/20]
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.
Primer lanzamiento | DVP: Las vulnerabilidades en el intercambio de Bitstamp pueden conducir a la filtración de una gran cantidad de KYC y otra información: Golden Finance News, recientemente, DVP recibió una vulnerabilidad en el intercambio de renombre mundial Bitstamp enviada por personal de seguridad. Los atacantes pueden usar esto vulnerabilidad para ver una gran cantidad de ID de usuario, la información confidencial, como las tarjetas bancarias, representa una grave amenaza para la seguridad de la información del usuario. Para evitar el vicioso incidente de la fuga de KYC, el equipo de seguridad de DVP notificó a la plataforma que lo reparara lo antes posible después de recibir la vulnerabilidad, pero no recibió respuesta. DVP recuerda a los usuarios relevantes que presten atención a la seguridad de la información personal para evitar pérdidas. [2019/8/13]
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.
Anuncio | Huobi Global Estreno mundial del Proyecto PAI a las 16:00 el 29 de junio: Huobi Global lanzará el servicio de depósito del Proyecto PAI (PAI) a las 16:00 el 29 de junio, hora de Singapur. A las 16:00 horas del 2 de julio se abrirán transacciones PAI/BTC, PAI/ETH en la Zona de Innovación. El servicio de retirada de PAI se abrirá a las 16:00 horas del 6 de julio. [2018/6/29]
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, puede reutilizarse 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 del sitio web. 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:
Desde las 12:00 a. m. hasta las 9:00 p. m. de ayer, el mercado fluctuó y cayó. Desde el fracaso de la prueba de 11 500 dólares estadounidenses hasta el fondo de 11 100 dólares estadounidenses por la noche.
Imagen de encabezado: Grabación de video de la Batalla de Stalingrado La semana pasada, traté de construir un nodo en una cadena con una máquina de minería. Durante el proceso de participación.
Tokenview observa de cerca los datos de la cadena y descubrimos que los datos de la cadena Ethereum han estado "anormalmente" activos recientemente. Fuente de datos: https://eth.tokenview.
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.
El 3 de agosto, el Banco Popular de China realizó una videoconferencia sobre el trabajo en la segunda mitad de 2020. Entre ellos.
Bitcoin siguió subiendo a $ 12 100 y fue bloqueado por la Fuerza Aérea, y cayó directamente a $ 10 500. Con la liquidación de la Fuerza Aérea y la intervención de los fondos de búsqueda de fondo.
Proyecto misterioso con solo 1 logoRecientemente, un proyecto misterioso Unitrade ha atraído la atención de todos. Su sitio web oficial tiene un solo Logo: Sin embargo.