Prólogo El 18 de abril, Tokenlon anunció la suspensión de las transferencias de imBTC porque descubrió que un atacante usó la vulnerabilidad de reingreso ERC777 en el contrato de liquidez de Uniswap para arbitrar el ciclo del grupo ETH-imBTC. Esta vez, el método de ataque es una vulnerabilidad conocida que existe en Uniswap v 1. Consensys descubrió la vulnerabilidad por primera vez en abril de 2019. En ese momento, Consensys solo descubrió el riesgo y no había encontrado ningún token que pudiera usarse para este ataque. Más tarde, después de que se lanzó imBTC en Uniswap, dado que imBTC se implementa en base a ERC777, al combinar las características de ERC777 y los problemas en el código Uniswap, los atacantes pueden lograr el arbitraje a través de vulnerabilidades de reentrada. A continuación, analizaremos los métodos de ataque y los detalles específicos de este arbitraje en el futuro. Preparación del conocimiento El protocolo ERC777 es un protocolo estándar de token en Ethereum. Este protocolo es una versión mejorada del protocolo ERC20 en Ethereum. Las principales mejoras son las siguientes: 1. Utilice el mismo concepto que el envío de ether para enviar tokens. El método es: enviar (destino, valor, datos) 2. Los contratos y las direcciones ordinarias pueden controlar y negarse a enviar qué tokens registrando la función de enlace tokensToSend (rechazar el envío se realiza volviendo a la función de enlace tokensToSend) Niebla lenta: a gran escala El robo de monedas ocurrió en la cadena pública Solana . Se recomienda que los usuarios primero transfieran los tokens de la billetera caliente a una billetera de hardware o un intercambio conocido: el 3 de agosto, según información del Distrito Slow Mist, un robo de monedas a gran escala incident occurred on the Solana public chain, and a large number of users were arrested without knowing it.转移SOL和SPL代币,慢雾安全团队对此事件进行跟踪分析: 已知攻击者地址: Htp9MGP8Tig923ZFY7Qf2zzbMUmYneFRAhSp7vSg4wxV、CEzN7mqP9xoxn2HdyW6fjEJ73t7qaX9Rp2zyS6hb3iEu、5WwBYgQG6BdErM2nNNyUmQXfcUnB68b6kesxBywh1J3n、 GeEccGJ9BEzVbVor1njkBCCiqXJbXVeDHaXDCrBDbmuy 目前攻击仍在进行,从交易特征上看,攻击者在没有使用攻击合约En el caso de la transferencia de la clave privada se ha filtrado. Muchas víctimas informaron que han usado una variedad de billeteras diferentes, principalmente billeteras móviles. Especulamos que el problema puede estar en la cadena de suministro del software. Antes de que se descubra nueva evidencia, recomendamos que los usuarios transfieran los tokens de la billetera caliente a un lugar relativamente seguro, como una billetera de hardware o un intercambio conocido, y esperen los resultados del análisis de eventos. [2022/8/3 2:55:22] 3. Los contratos y las direcciones ordinarias pueden controlar y negarse a aceptar qué tokens registrando la función de gancho tokensReceived (el rechazo se realiza al revertir en la función de gancho tokensReceived) Slow Mist: Nomad event There Todavía quedan más de 95 millones de dólares estadounidenses de fondos robados en 3 direcciones: según las noticias del 2 de agosto, el monitoreo de SlowMist mostró que más de 95 millones de dólares estadounidenses de fondos robados permanecieron en 3 direcciones en el ataque de Nomad. Entre ellos, 0xb5c55f76f90cc528b2609109ca14d8d84593590e todavía tiene 1084 eth, 1.2 millones dai, 103 wbtc y otros activos encriptados de aproximadamente 8 millones de dólares estadounidenses. Esta dirección también es responsable por transferir 10,000 a otra dirección y transferir otra dirección; 1.28万枚ETH、1.02万枚WETH、80万DAI等约4700万美元的加密资产;第三个地址0xBF293D5138a2a1BA407B43672643434C43827179在收到3866.6万USDC后兑换为了DAI,目前有约3970万美元的加密assets. En la actualidad, después de peinar la niebla lenta, la dirección 3 no se puede conectar con las otras dos direcciones, pero estos ataques tienen el mismo patrón. [2022/8/2 2:53:04] 4. tokensReceived puede enviar tokens y notificar el contrato para aceptar tokens en una transacción a través de la función de enlace, a diferencia de ERC20, que debe llamarse dos veces (approve/transferFrom) para completar SlowMist: un breve análisis del accidente de lana de Polkatrain: Según las noticias del Distrito SlowMist, la plataforma ecológica IDO de Polkatrain, Polkatrain, tuvo un accidente esta mañana. El contrato con el problema esta vez es el contrato POLT_LBP del proyecto Polkatrain. Este contrato tiene una función de intercambio y un mecanismo de reembolso. Cuando los usuarios compran tokens PLOT a través de la función de intercambio, obtienen una cierta cantidad de reembolso. Se envía al usuario en forma de llamada transferFrom a través de la función _update en el contrato. Dado que la función _update no establece la cantidad máxima de reembolsos para un grupo y no juzga si los reembolsos totales se agotan cuando se realizan los reembolsos, los arbitrajistas maliciosos pueden llamar continuamente a la función de intercambio para intercambiar tokens para extraer el valor del contrato. Recompensas de reembolso. El equipo de seguridad de SlowMist recuerda a las partes del proyecto DApp que consideren completamente el escenario comercial y el modelo económico del proyecto al diseñar el mecanismo de intercambio de AMM para evitar que ocurran accidentes. [2021/4/5 19:46:39] 5. Los titulares pueden "autorizar" y "revocar" operadores (operadores: pueden enviar tokens en nombre del titular) Estos operadores suelen ser (ir a centralizados) intercambios, procesadores de cheques o sistemas de pago automático 6. Cada transacción de token contiene datos y campos operatorData, que pueden transmitir datos del titular y del operador respectivamente.. Slow Mist: BTFinance fue pirateado, y el grupo de estrategias debe estar en guardia Riesgos relacionados: según información de SlowMist District, BT.Finance, un agregador inteligente de ingresos de DeFi, ha sido atacado por préstamos rápidos. Las estrategias afectadas incluyen ETH, USDC y USDT. Según el análisis del equipo de seguridad de SlowMist, el método de ataque es básicamente el mismo que el método de piratería del grupo de políticas DAI de yearnfinance. Para un análisis específico, consulte el análisis técnico de SlowMist sobre el pirateo de yearnfinace. El equipo de seguridad de SlowMist recordó que el grupo de armas inteligentes que se conectaba con CurveFinance para estrategias relacionadas ha sido atacado con frecuencia recientemente. Los productos relevantes del agregador de ingresos de CurveFinance que se han acoplado deben prestar atención para verificar si hay problemas similares en las estrategias utilizadas y comunicarse con el equipo de seguridad de SlowMist para obtener ayuda si es necesario. [9/2/2021 19:19:41] 7. Puede implementar un contrato de proxy que implemente tokensReceived para que sea compatible con direcciones que no implementen la función tokensReceived Aquí, debemos prestar especial atención al segundo punto, es decir , tokenToSend en la función estándar ERC777, de acuerdo con la definición del protocolo ERC777, los tokens token que siguen este estándar intentarán llamar a la función tokensToSend del remitente del token cada vez que se produzca una transferencia de tokens, y los poseedores de tokens pueden registrar los suyos propios en el registro ERC1820 contract El contrato maneja ciertos procesos en el proceso de transferencia de tokens definiendo algunas operaciones en esta función de enlace, como rechazar el envío de tokens u otras operaciones. Noticias | SlowMist: hubo varios ataques de secuestro y reemplazo contra intercambios en octubre: según el monitoreo del sistema SlowMist Blockchain Threat Intelligence (BTI) y los datos de SlowMist AML, ha habido muchos ataques en los últimos 10 meses. abordar los ataques de secuestro y reemplazo en los intercambios de moneda digital incluyen, entre otros, la implantación de código malicioso JS de terceros, la contaminación del módulo NPM de terceros y la contaminación del contenedor Docker. El equipo de seguridad de SlowMist recomienda que los intercambios de divisas digitales fortalezcan las medidas de control de riesgos, tales como: 1. Preste mucha atención al riesgo de enlaces JS de terceros, seleccione de la dirección de la lista blanca y verifíquela estrictamente en segundo plano. Además, se debe prestar más atención al control de autoridad del fondo interno para prevenir delitos internos. [2019/11/1] Comprender estos puntos clave nos ayudará a comprender los métodos de ataque específicos de este ataque. De ahora en adelante, podemos acelerar un poco y ver qué pasó con Uniswap esta vez. Análisis detallado A través de la consulta de Etherscan en una de las transacciones del atacante 0x32c83905db61047834f29385ff8ce8cb6f3d24f97e24e6101d8301619efee96e, se puede encontrar que el atacante transfirió imBTC al contrato Uniswap dos veces, con la misma cantidad de 0.00823084, y luego recibió dos transacciones muy normales de ETH de Uniswa. es una corriente subterránea que surge, y hay otros misterios. Para comprender mejor los detalles de toda la transacción, necesitamos ver los detalles específicos de la transacción a través de bloxy.info. Al consultar los detalles de la transacción, descubrimos que el atacante primero intercambió algunos imBTC a Uniswap a través de la función ethToTokenSwapInput, y luego intercambió imBTC por ETH por primera vez a través de la función tokenToEthSwapInput, y luego Uniswap primero transfirió el ETH al atacante, y luego llamó a la función transferFrom de imBTC, ya que imBTC implementa el estándar ERC777, al llamar a la función transferFrom de imBTC, imBTC llamará a la función tokensToSend del atacante. Luego, en la función tokensToSend del atacante, el atacante intercambiará imBTC por ETH por segunda vez y luego el proceso finalizará. Según los detalles de la transacción, parece que no hay ningún problema aquí y seguimos rastreando el código de UniSwap. El código anterior es el código de la función ethToTokenSwapInput de Uniswap. De acuerdo con el análisis del código, la función ethToTokenSwapInput de Uniswap llamará a la función ethToTokenInput y luego obtendrá primero la cantidad de eth que se puede intercambiar por tokens a través de getInputPrice y luego enviará el eth al usuario a través de la función de envío y, finalmente, Transferir tokens al contrato a través de transferFrom. Pasemos a la función getInputPrice. Al analizar la función getInputPrice, podemos saber que la fórmula para calcular la cantidad de ETH es poner la fórmula en el contexto de la función ethToTokenInput, y la fórmula se convierte en el denominador en un proceso normal de conversión de imBTC a ETH bajo esta fórmula. Las reservas de imBTC deberían aumentar después del intercambio, y las reservas de ETH correspondientes disminuirán. Pero revisando el método de operación del atacante, cuando el atacante envía imBTC a ETH por primera vez, Uniswap primero enviará ETH al atacante. En este momento, la reserva de ETH en Uniswap disminuye, y luego Uniswap llama a la función transferFrom, (tenga en cuenta que en este momento no se ha deducido el imBTC del atacante), y luego, cuando el atacante llame a ethToTokenSwapInput por segunda vez en la función transferFrom, la fórmula para obtener la cantidad de ETH intercambiada a través de getInputPrice será así: Tenga en cuenta que en el segundo intercambio In Según el cálculo, solo la reserva de ETH ha disminuido, mientras que la reserva de imBTC no ha aumentado, lo que lleva al hecho de que, en comparación con llamar solo a la función ethToTokenSwapInput, el atacante puede usar imBTC para intercambiar ETH por segunda vez a través del reingreso. , el numerador de la fórmula de cálculo cambia, pero el denominador de la fórmula no cambia. En comparación con el intercambio normal, el segundo intercambio del atacante a través del reingreso obtendrá una pequeña ganancia, lo que resultará en una ganancia. Al repetir este proceso, se pueden obtener más ETH a través de la misma cantidad de imBTC, lo que resulta en la pérdida de operadores comerciales de Uniswap. Método de defensa 1. Agregue la función ReentrancyGuard de OpenZeppelin a la función tokenToEthSwapInput de Uniswap para evitar la reentrada. 2. Al realizar el intercambio de tokens, primero deduzca el token del usuario y luego envíe ETH al usuario.
Tags:
Un reportero de Chinanews.com supo el día 23 que Hainan Wichain Network Technology Co., Ltd. (en lo sucesivo.
Para la mayoría de las personas, la "inflación" es una mala noticia. Venezuela sufre actualmente la peor inflación.
La moneda estable con el valor de mercado más alto es USDT. En la actualidad, el valor de mercado de USDT ha alcanzado los 45,024 mil millones.
Prólogo El 18 de abril, Tokenlon anunció la suspensión de las transferencias de imBTC porque descubrió que un atacante usó la vulnerabilidad de reingreso ERC777 en el contrato de liquidez de Uniswap para arbitrar el c.
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.
La tecnología Blockchain con las características de descentralización, apertura.
El 17 de abril de 2020, el Equipo de Riesgo de la Fundación Maker incorporó un voto ejecutivo en el sistema de votación, proporcionando ETH y BAT prestando Tasas estables de Dai.