Según las noticias del distrito de Slow Mist, el proyecto DeFi de Binance Smart Chain (BSC), Impossible Finance, se encontró con un ataque de préstamo relámpago. El equipo de seguridad de SlowMist intervino de inmediato en el análisis y compartió los resultados de la siguiente manera:
Análisis de los detalles del ataque
La arquitectura DEX de Impossible Finance se refiere a Uniswap v2, pero es diferente en la implementación de Pair. Impossible Pair implementa dos interfaces, cheapSwap y swap, respectivamente. La función de intercambio barato está restringida para ser llamada solo por el contrato del enrutador, y cualquier usuario puede llamar a la función de intercambio para realizar operaciones de intercambio de tokens. La causa raíz de este ataque está precisamente en esta estructura especial de intercambio de tokens, a continuación analizaremos este ataque en detalle:
Primero, el atacante tomó prestada una gran cantidad de WBNB de PancakeSwap mediante préstamos flash y finalmente los convirtió en IF (tokens de Impossible Finance).
El atacante entonces creó un token AAA (BBB) controlado por él mismo, y agregó liquidez con el token IF obtenido en el paso anterior.
Posteriormente, el atacante pasa la ruta de conversión autodefinida (AAA -> IF -> BUSD) a través del enrutador para convertir tokens AAA en tokens BUSD, y el problema ocurre durante este proceso de conversión. A través de los registros de la cadena, podemos encontrar fácilmente que el atacante realizó dos operaciones de conversión en el proceso de convertir tokens AAA en tokens IF:
¿Por qué hay dos operaciones de cambio en un proceso de cambio?
Al analizar el proceso de llamada interno específico, podemos encontrar que el atacante llama a la función de intercambio del contrato de par una vez cuando el contrato del enrutador llama a la función transferFrom del contrato AAA para transferir tokens AAA al contrato de par (es decir, la función transferFrom implementa la lógica de transferencia normal y llamada de intercambio). Luego realice una operación de intercambio de token normal a través del diseño del proyecto esperado cheapSwap.
A través del análisis anterior, podemos saber que el atacante realizó dos operaciones de intercambio de token llamando a la función de intercambio y a la función de intercambio barato respectivamente durante un proceso de intercambio de token y finalmente recibió tokens BUSD adicionales. Dado que se trata de una operación de intercambio, en teoría, cada operación de intercambio dará lugar a un cambio en el valor de K, lo que finalmente impide que los usuarios obtengan los tokens esperados.
Pero al analizar la lógica específica de la función de intercambio y la función de intercambio barato de Impossible Pair, encontramos una situación asombrosa: la verificación del valor K se realizó en la función de intercambio, pero la operación de actualización se realizó directamente en la función intercambio barato sin la verificación del valor K. Esto hizo que el atacante realizara múltiples operaciones de intercambio para obtener BUSD adicionales.
Proceso de ataque
1. El atacante primero presta WBNB a través del préstamo flash PancakeSwap y convierte WBNB en tokens IF.
2. Cree un contrato de token malicioso AAA (BBB) y agregue token AAA y liquidez de token IF a Impossible.
3. El intercambio de tokens AAA a tokens BUSD se realiza a través de la ruta de AAA ->IF->BUSD, y se realiza un intercambio de tokens IF y BUSD durante el proceso de transferencia de tokens AAA al contrato Par y convirtiéndolos en tokens IF Operación de intercambio, seguida de la operación normal de intercambio barato. Terminó ganando tokens BUSD adicionales.
4. Luego repita la operación anterior para obtener ganancias.
Resumen
El núcleo de este ataque es que la verificación del valor K no se realiza en la función de intercambio barato, lo que permite al atacante obtener tokens adicionales al realizar múltiples operaciones de intercambio en un proceso de intercambio. El equipo de seguridad de SlowMist sugirió que el protocolo DeFi debería revisar y verificar completamente su nuevo modelo en el proceso de innovación sobre la base de referencia a otros proyectos para evitar tales incidentes de seguridad.
Transacción de referencia:
https://bscscan.com/tx/0x0220704a99ddfb982d26e65cc337f26b77dc057930b7aa1d848cc48ec77984a8
Tags:
El 18 de junio de 2021, se distribuyó un "Aviso de la Comisión Provincial de Desarrollo y Reforma de Sichuan y la Oficina Provincial de Energía de Sichuan sobre la limpieza y el cierre de proyectos de "minería" de mon.
Este artículo presenta la necesidad de una Moneda Digital del Banco Central (CBDC).
Este artículo es un discurso pronunciado por Randal K. Quarles, vicepresidente de la Supervisión de la Reserva Federal, en la 113.ª Reunión Anual de la Asociación de Banqueros de Utah celebrada en Sun Valley, Idaho.
Según las noticias del distrito de Slow Mist, el proyecto DeFi de Binance Smart Chain (BSC), Impossible Finance.
Muchos defensores se refieren a Ethereum como el señor supremo de la "supercomputadora" en la era de las redes descentralizadas. Ha ocupado la posición del primer hermano durante mucho tiempo.
Las criptomonedas se ven afectadas por más regulaciones en todo el mundo.
La nueva Ley de Posicionamiento de Fondos de Alemania (Fondsstandortgesetz) entrará en vigor el 1 de julio de 2021, y la nueva ley permitirá que 4000 Spezialfonds inviertan en activos cifrados.En abril.