Según SlowMist, el 22 de noviembre de 2020, el proyecto Pickle Finance de Ethereum DeFi fue atacado y perdió alrededor de 20 millones de DAI. El equipo de seguridad de SlowMist realizó un seguimiento y analizó los incidentes relevantes lo antes posible, a continuación se muestra un breve proceso de análisis
1. La función swapExactJarForJar en el contrato del controlador del proyecto permite pasar dos direcciones de contrato jar arbitrarias para el intercambio de tokens. Entre ellas, _fromJar, _toJar, _fromJarAmount y _toJarMinAmount son variables que los usuarios pueden controlar. Los atacantes usan esta característica para completar _fromJar y _toJar con tu propia dirección, _fromJarAmount es la cantidad de DAI establecida por el atacante para extraer el contrato, unos 20 millones de DAI
2. Durante el proceso de intercambio utilizando la función swapExactJarForJar, el contrato obtendrá el token correspondiente a través del contrato entrante _fromJar y la función token() del contrato _toJar, que se utiliza para especificar el activo intercambiado. Dado que el atacante pasa el contrato _fromJar y el contrato _toJar, el valor obtenido mediante el uso de la función token() también es controlable Aquí, el token obtenido del contrato _fromJar y el contrato _toJar es DAI.
3. En este momento, ocurre el intercambio. El contrato del controlador usa la función transferFrom para transferir una cierta cantidad de ptoken del contrato _fromJar. Sin embargo, dado que el contrato fromJar es una dirección controlada por el atacante, el ptoken transferido aquí es el del atacante. moneda falsa Al mismo tiempo, debido a que el token obtenido por el contrato del contrato _fromJar es DAI, entonces el contrato juzgará si los fondos en el contrato son suficientes para el intercambio. De lo contrario, canjeará una cierta cantidad de tokens del grupo de estrategia. y transferirlos al contrato del Controlador. En este ataque, el DAI en el contrato no es suficiente para el intercambio. En este momento, el contrato retirará la parte insuficiente del grupo de estrategia para compensar los 20 millones de DAI establecidos por el atacante.
4. El intercambio continúa. Después de que el contrato del Controlador proponga DAI del conjunto de políticas para compensar los 20 millones de DAI establecidos por el atacante, llamará a la función de retiro de _fromJar para quemar el token falso transferido por el atacante en el tercer paso, y luego El contrato juzga el saldo del token especificado por el contrato _toJar en el contrato actual. Dado que el token especificado por el contrato _toJar es DAI, el contrato Controller juzgará la cantidad restante de DAI en el contrato. En este momento, debido al tercer paso, el contrato de Controlador ha recaudado 20 millones de DAI, por lo que el saldo de DAI es de 20 millones. En este momento, el contrato del Controlador llama a la función de depósito del contrato _toJar para transferir 20 millones de DAI al contrato _toJar controlado por el atacante. En este punto, el atacante ha completado el beneficio.
Resumen: en este ataque, el atacante falsificó las direcciones de contrato de _fromJar y _toJar al llamar a la función swapExactJarForJar en el contrato del controlador e intercambió la moneda falsa por el DAI real en el contrato, completando un proceso de ataque.
Tags:
Este artículo es el primero de la serie "Manual de tecnología Blockchain". La serie "Manual de tecnología Blockchain" es una serie de artículos que pueden comprender la lógica de la tecnología de criptomonedas.
Golden Finance Blockchain Noticias del 23 de noviembre Con el desarrollo de la tecnología blockchain.
Recientemente, Bitcoin ha aumentado considerablemente.
Según SlowMist, el 22 de noviembre de 2020, el proyecto Pickle Finance de Ethereum DeFi fue atacado y perdió alrededor de 20 millones de DAI. El equipo de seguridad de SlowMist realizó un seguimiento y analizó los inc.
El 11 de noviembre, Zhang Yifeng, decano del Instituto de Investigación de Blockchain de Billetes de China.
Jinse Finance informó que el 11 de noviembre, según las noticias del Departamento Provincial de Industria y Tecnología de la Información de Jiangsu.
DeFi Weekly es una columna de resumen semanal en el campo DeFi lanzada por Jinse Finance, que cubre datos importantes de DeFi, tendencias de proyectos DeFi.