Precio de Bitcoin Precio de Bitcoin
Ctrl+D Precio de Bitcoin
ads
Casa > ICP > Info

Primer lanzamiento|Éter de guante vacío: análisis de ataque del equilibrador

Author:

Time:

A las 2:03 a. m., hora de Beijing, del 29 de junio, el sistema CertiK Skynet (Skynet) detectó una anomalía en el contrato Balancer DeFi en el bloque 10355807. Los investigadores de seguridad intervinieron rápidamente en la investigación y el proceso de ataque salió a la luz.

A las 2:03 a. m. del 29 de junio, el atacante usó WETH prestado del préstamo flash dYdX para comprar una gran cantidad de tokens STA, lo que provocó que el precio de intercambio de STA y otros tokens aumentara considerablemente. Luego use la cantidad mínima de STA (el valor es 1e-18) para recomprar continuamente WETH, y después de cada recompra, use la laguna del contrato de Balancer para restablecer la cantidad de STA internas (el valor es 1e-18), para estabilizar STA precio alto.

Los atacantes continúan explotando las lagunas y usan STA de alto precio para comprar por completo un determinado token (WETH, WBTC, LINK y SNX), y finalmente usan WETH para pagar el préstamo flash, dejando una gran cantidad de STA, WETH, WBTC , LINK y SNX, y transfiera las ganancias ilegales a su propia cuenta a través de uniswap. El ataque generó una ganancia de alrededor de 900.000 RMB.

El retrato psicológico del atacante analizado por CertiK:

Después de llamar al saldo de STA, el atacante llamó rápidamente a la función swapExactAmountIn para comprar STA y usó otra función swapExactAmountOut en la transacción número 24 para comprar con precisión la cantidad mínima de STA (1e-18), maximizando así el potencial para ataques posteriores. En las primeras 6 transacciones, compré 3 veces y luego las vendí sin necesidad, y perdí 4 WETH, así que lo dudo. Y al poder ocultar los rastros de la etapa de préstamo flash, tiene las características de un hacker.

CertiK consideró que el atacante fue un intento de ataque de un equipo de piratas informáticos experimentado después de una preparación completa, y es muy probable que continúen atacando otros contratos de DeFi.

Fase 0: el atacante toma prestado del préstamo flash dYdX para obtener los fondos WETH iniciales.

Fase 1: el atacante usa WETH para comprar STA en Balancer lo más rápido posible y maximizar el precio de STA.

BTC cayó por debajo de la marca de los $10 600 con una caída intradiaria del 2,29 %: según datos de Huobi Global, BTC cayó a corto plazo y cayó por debajo de la marca de los $10 600. Ahora se reporta en $10 588,0, con una caída intradiaria del 2,29 %. fluctúa mucho, por favor haga un buen trabajo en el control de riesgos. [2020/9/21]

Fase 2: el atacante utiliza la STA obtenida para recomprar WETH varias veces. Cada vez, se usa la cantidad mínima de STA (el valor es 1e-18) para comprar, y la función de vulnerabilidad interna gulp() de Balancer se usa para bloquear el número de STA y controlar el precio de STA a WETH. Repetir esta operación de recompra varias veces hasta vaciar WETH en el Balancer.

Fase 3: Cambia a otro token, repite la fase 2 con STA hasta que el token esté vacío. La fase 3 se repitió tres veces y un total de 4 tokens sufrieron pérdidas WETH, WBTC, LINK y SNX.

Fase 4: Pagar el Préstamo Flash dYdX y salir.

Fase 1:   Tomar todas las STA de Balancer

En las primeras 24 transacciones, el WETH prestado del préstamo flash se negoció como STA, lo que redujo la cantidad de STA en Balancer tanto como fue posible, lo que aumentó el precio de STA para otros tokens.  

Fase 2: cambie STA a WETH y use la vulnerabilidad de la función gulp para controlar el precio

Al comienzo de la fase 2, la función gulp siempre restablece el número total de STA al 1e-18 anterior. Cuando la STA se intercambia por WETH a través de la función swapExactAmountIn por primera vez, el atacante establece deliberadamente la cantidad de transacciones de STA entre 1e y 18. Dado que la cantidad de STA es extremadamente pequeña en el modelo de transacción, el precio de STA será extremadamente bajo en comparación con otros tokens alto. Después de completar la primera transacción, la cantidad de STA en Balancer debe ser 2e-18.

Antes de intercambiar STA por WETH a través de swapExactAmountIn por segunda vez, el atacante llama a la función gulp para sobrescribir el número de STA actual (2e-18) con el 1e-18 registrado internamente para el número de STA en Balancer. Por lo tanto, al comprar WETH, STA aún puede mantener un precio alto. Sin embargo, después de comprar WETH, la cantidad de WETH disminuye y los ingresos ilegales de cada ataque disminuyen gradualmente. Después de 18 ataques, WETH en Balancer se roba por completo.

Fase 3: Metas cambiantes

Cuando el WETH en Balancer fue robado por completo, el atacante usó la misma vulnerabilidad para repetir el ataque en otros tokens de Balacner (WBTC, LINK y SNX), robó los 4 tokens y se escondió.

El atacante obtiene beneficios

Dirección del ataque del ataque:

0x81D73c55458f024CDC82BbF27468A2dEAA631407

Dirección de recepción final del ataque:

0xbf675c80540111a310b06e1482f9127ef4e7469a

Beneficio final del atacante: 565,5326240837032 ETH, alrededor de 900 000 RMB (precio a las 9:30 a. m. hora de Beijing 20200630)

La función gulp() del contrato Balancer se usa para sobrescribir el valor de registro interno de un determinado token en el número real actual del token, pero está configurado incorrectamente en una función externa sin límite. La función gulp() no debe ser externa, ni debe agregar restricciones de verificación o protección para usuarios específicos o propietarios de contratos inteligentes.

Referencias:

1. Equilibrador Github:

https://github.com/balancer-labs/balancer-core/blob/140df49361a58e6c79b395964be98387702a7c0d/contracts/BPool.sol#L334

https://github.com/balancer-labs/balancer-core/blob/140df49361a58e6c79b395964be98387702a7c0d/contracts/BMath.sol#L28

https://github.com/balancer-labs/balancer-core/blob/140df49361a58e6c79b395964be98387702a7c0d/contracts/BPool.sol#L423

2. Historial de transacciones de ataques:

https://ethtx.info/mainnet/0x013be97768b702fe8eccef1a40544d5ecb3c1961ad5f87fee4d16fdc08c78106

3. Informe oficial del ataque:

https://medium.com/balancer-protocol/incident-with-non-standard-erc20-deflationary-tokens-95a0f6d46dea

Más información

Información general: info@certik.org

Auditoría & Asociaciones: bd@certik.org

Sitio web: certik.org

Twitter: @certik.org

Telegrama: t.me/certik.org

Medio: medium.com/certik

Bihu: bihu.com/people/1093109

Tags:

ICP
Observación dorada | El poder de computación se ubica cerca de los cinco principales grupos mineros de Huobi Cao Fei: el centro comercial de máquinas mineras y el grupo de ametralladoras se lanzarán pronto.

Hoy en día, los pools de minería de intercambio están floreciendo.De acuerdo con estadísticas incompletas, hay jugadores poderosos como el grupo de minería OKEx, el grupo de minería Binance, 58COIN & 1THash.

Golden Outpost | Reddit invita a los desarrolladores a enviar propuestas de escalado de Ethereum

Reddit está aceptando propuestas de escalado de Ethereum después de lanzar un nuevo proyecto de criptomoneda.

HyperPay lanzó productos de computación en la nube IPFS

Los productos del servicio de arrendamiento de energía de computación en la nube HyperPay IPFS son nuevos en línea, 0.88U es la primera mina, ¡primero en llegar.

Informe de Chainalysis: casi el 60 % de los bitcoins están en manos de inversores a largo plazo

- Según un informe reciente de Chainalysis, la mayoría de los bitcoins que se han minado están en manos de inversores a largo plazo, y solo el 19% se comercializa.- El estudio también señaló que.

Golden Observation丨Ebang vs.Canaan ¿Por qué todas las empresas de encriptación chinas se hacen públicas en los Estados Unidos?

Jinse Finance Blockchain, noticias del 27 de junio A las 9:30 p. m. del 26 de junio de 2020, hora de Beijing, EBON International (EBON) aterrizó oficialmente en la bolsa estadounidense Nasdaq.

Un total de 2020 | CEO de Block.one, Brendan Blumer: Blockchain trae cambios revolucionarios

El 21 de junio de 2020, comenzó en Shenzhen el Foro de Aplicación de Innovación de Blockchain 2020 organizado por Golden Finance. Brendan Blumer, CEO de Block.one, y An Xinxin, CEO de Jinse Finance.

ads