En este momento estás viendo COVER PROTOCOL 12/28 Post-Mortem (español)

COVER PROTOCOL 12/28 Post-Mortem (español)

  • Autor de la entrada:
  • Categoría de la entrada:Noticias

Resumen
El 28 de diciembre de 2020 a las 08:08:12 a.m. + UTC, se abusó de un exploit en el contrato de minería de escudo de Cover Protocol (Blacksmith). El producto principal Cover Protocol no se ve afectado y funciona según lo previsto. Este exploit solo afectó el contrato minero y el token $ COVER.

¿Cuál fue la causa raíz?


El bicho
Como muchos han explicado, esta línea de código hizo que la actualización del estado del grupo no fuera efectiva en el estado del minero al depositar. Este error ha estado presente (desconocido para los desarrolladores) en el contrato de Cover Protocol Blacksmith desde el día en que se implementó después de ser auditado.
Un miembro de la comunidad nos informó el 27 de diciembre a las 6 p.m. UTC que pudieron obtener un pequeño aumento de recompensas en su depósito. Después de investigar el problema, intentamos mitigarlo implementando lo siguiente:

  • Agregar una transacción de grupo de actualización antes del depósito para que el grupo se actualice cuando el usuario deposita, esto mitigará el problema para los usuarios que usan la IU.
  • Iniciar un trabajo cron para que se ejecute cada 20 minutos para actualizar cualquier grupo que no se haya actualizado recientemente.

Según nuestro conocimiento y análisis en ese momento, los dos anteriores deberían mitigar el problema hasta un punto que no vale la pena explotar. Para nuestro más profundo pesar, nos perdimos el error matemático (abajo).

El error matemático


Se hizo una suposición sobre el lpToken al calcular las recompensas para los grupos de minería.


Cada grupo mantiene el estado de la cantidad de recompensas acumuladas desde la creación del grupo. Lo hace agregando las recompensas recién acumuladas (desde la última actualización) al valor existente. El problema proviene del cálculo de las recompensas recién acumuladas.

Se espera que el lpTotal (al final del código resaltado a continuación) sea mayor que 1e18 wei (los grupos están configurados de modo que 10 covTokens es equivalente a 100e18 BPT). Si la cantidad total del fondo es menor, actuaría como un multiplicador (lo contrario de lo que se pretende).


Imagen para publicación
En caso de interacciones de Grap Finance con el contrato, quedaba 1 wei en el grupo. Multiplicó las recompensas por 1e18, lo que provocó la acuñación de 40 billones de $ COVER.


Esto sucedió en todos los grupos que tenían menos de 1e18 lpToken depositados en total, la mayoría son nuevos y el explotador fue el primero en actuar.

Cronología de Exploiter 1


28 de diciembre de 2020 a las 04:09:27 a.m. + UTC
Se agregó un nuevo grupo de equilibradores al contrato de Blacksmith desde la firma múltiple del equipo a través de una transacción para los vencimientos de la nueva cobertura.
28 de diciembre de 2020 a las 08:08:12 a.m. + UTC
Un atacante ejecuta el primer depósito en el contrato, depositando 1.326.880 tokens BPT.
https://etherscan.io/tx/0xd721b0ef2886f14b75548b70d2d1fd82bea085ca24f5de29b833a64cfd8f7a50
28 de diciembre de 2020 a las 08:11:16 a.m. + UTC
El mismo atacante luego llamó a retirar (), explotando el contrato por ~ 703.64 $ COVER y retirando 703.640959709919999589 BPT
https://etherscan.io/tx/0xadf27f5dd052482d46fdf69a5208a27cc7352522c7c19bbde5aee18f6ea4373b
28 de diciembre de 2020 a las 08:47:15 a.m. + UTC
La primera venta de los tokens $ COVER explotados se puede encontrar aquí: https://etherscan.io/tx/0x66128a1685605b1798c852e14db0b0232a56e3bebf7f3f35b168642801754beb. Durante este tiempo, hubo múltiples cuentas que abusaron

28 de diciembre de 2020 a las 09:18:28 a.m. + UTC
El atacante continúa acuñando y mientras el vector de ataque aún está presente. https://etherscan.io/tx/0xf81fb72ee096e0d7afe4b99a55b723110604fb26ec82846043cfc396e1fa79da
En total, Exploiter 1 robó alrededor de $ 4,4 millones de fondos de usuarios y los transfirió a esta dirección. Estamos rastreando activamente esta dirección y otras que participaron en el exploit. del exploit y vendieron su $ COVER en el mercado.

Cronología de Grap Finance


28 de diciembre de 2020 a las 11:54:47 a.m. + UTC
Grap Finance: el implementador (cuenta de propiedad externa) depositó 15,255.552810089260015362 BPT (grupo de DAI / Basis) en el contrato de cultivo de Blacksmith.
https://etherscan.io/tx/0x77490baee41a9b35a6e87d49453c7329c7517c10ce6ce26b4c142692a2877e65
28 de diciembre de 2020 a las 11:58:04 a.m. + UTC
Grap Finance: Deployer retira sus 15,255.552810089260015361 BPT (DAI / Basis pool), dejando solo 1 wei en su saldo en el contrato de cultivo de Blacksmith.
https://etherscan.io/tx/0x88ce99fc1cb695db82d83ce5fe587396744841d3a123687f95b18df6a3106818
28 de diciembre de 2020 a las 11:58:56 a.m. + UTC
Otro usuario retira la mayor parte de su saldo total (1,007.599009946121991627 BPT) del Blacksmith. Ahora Grap Finance solo tiene toda la liquidez para el grupo DAI / Basis en el contrato de Blacksmith de minería de escudos, exactamente 1 wei.
https://etherscan.io/tx/0xa27fb73caddb1cf24aa7a5afe84eed13db2f0a889a6ee0f3d5e6226a76c0fd9c
28 de diciembre de 2020 a las 12:00:21 p.m. + UTC
Grap Finance: Deployer depositó 15,255.552810089260015361 BPT (DAI / Basis pool) en el contrato de agricultura de Blacksmith.
https://etherscan.io/tx/0xbd1fcda7006ddd58b18cb3bfbd01ef2d1a979be596e1c73be1d7d65fd7eb8215
28 de diciembre de 2020 a las 12:02:04 p.m. + UTC
Grap Finance: Deployer reclamó las recompensas, y debido a solo 1 wei de saldo combinado con el problema de almacenamiento / memoria, esto llevó a la acuñación de 40,796,131,214,802,500,000.212114436030863813 $ COVER.
https://etherscan.io/tx/0xca135d1c4268d6354a019b66946d4fbe4de6f7ddf0ff56389a5cc2ba695b035f
28 de diciembre de 2020 a las 12:29:03 p.m. + UTC
Grap Finance: Deployer comienza a vender tantos tokens como sea posible mediante un intercambio de 1 pulgada en múltiples transacciones.
https://etherscan.io/tx/0xaf94d9b537a13819e873b37160594af2b1cc70b420d0b160a02e341566866a6b
https://etherscan.io/tx/0x01b3517845ed9c6b7b40d57bd71ac1a89fec080c5b8988f764d8226ac5caa959
28 de diciembre de 2020 a las 12:59:27 p.m. + UTC
Grap Finance: el implementador quema tokens acuñados: https://etherscan.io/tx/0xe6c068ca3605228b2435a414f2b372057340f77d3fe9f1d3967eb1ad128cb5d2
28 de diciembre de 2020 a las 01:41:01 p.m. + UTC
Grap Finance: Deployer envía los 3451 (1 + 4350) ETH que han extraído vendiendo $ COVER a la cuenta del implementador, que representa el 34% del daño total por explotación ($ 9,4 millones)
https://etherscan.io/tx/0x23cb9bdf14eed955a84da3f3cfcf296356c0f897dec0b99e85151a7f084a3051
https://etherscan.io/tx/0xc2fd5094c1e108f83222a86bd46b35fc0da35616385d681964b22003643f982e

Cronología del equipo de Cover Protocol


28 de diciembre de 2020 a las 08:11:16 a.m. + UTC
La primera gran moneda de ~ 703.64 $ COVER fue hecha por el explotador 1.
https://etherscan.io/tx/0xadf27f5dd052482d46fdf69a5208a27cc7352522c7c19bbde5aee18f6ea4373b
28 de diciembre de 2020 a las 10:54:00 a.m. + UTC
Un miembro del equipo que no es de desarrollo fue notificado del incidente en curso y se apresuró a notificar al equipo central. Desafortunadamente, todos los desarrolladores estaban durmiendo en este momento.
28 de diciembre de 2020 a las 12:02:04 p.m. + UTC
Grap Finance: Deployer acuñó 40,796,131,214,802,500,000.212114436030863813 $ COVER.
https://etherscan.io/tx/0xca135d1c4268d6354a019b66946d4fbe4de6f7ddf0ff56389a5cc2ba695b035f
28 de diciembre de 2020 a las 12:04:00 p.m. + UTC
2 miembros del equipo central se despiertan y son notificados instantáneamente del incidente. Inmediatamente comienzan a trabajar para mitigar el exploit.
28 de diciembre de 2020 a las 12:22:19 p.m. + UTC
El equipo central eliminó con éxito los derechos de acuñación del contrato de Blacksmith y trasladó los permisos de acuñación a un contrato ficticio para evitar una mayor explotación de la menta.
28 de diciembre de 2020 a la 1:30:00 p.m. + UTC
El equipo central comienza a hablar directamente con nuestros socios de Yearn para estudiar el exploit y comprender exactamente cómo ocurrió. Emiliano Bonassi lo replicó con éxito en una prueba.
28 de diciembre de 2020 a las 11:51:00 p.m. + UTC
Después de una minuciosa observación y discusión con el equipo de Cover Protocol y nuestros socios de Yearn, Emiliano Bonassi lo replicó con éxito en una prueba.

Avanzando


Esperamos que esta autopsia permita a los usuarios comprender y comprender mejor el exploit que tuvo lugar hoy.


Todavía estamos en el objetivo de lanzar V2 (Q1 de 2021) para Cover Protocol. Lamentamos sinceramente el resultado del ataque y agradecemos a todos por su continuo apoyo.

Un plan de compensación, usando una instantánea (tomada en algún punto antes del bloque # 11541219) para distribuir un nuevo token y los 4,351 ETH devueltos, se redactará en los próximos días y se lanzará lo antes posible. Por favor manténgase al tanto.


Agradecimientos

Nos gustaría agradecer a todo el ecosistema de Yearn y también a todos los que se acercaron para ofrecer su apoyo. La cantidad de información recopilada en el tiempo transcurrido desde el ataque a esta publicación no habría sido posible sin las personas que se indican a continuación.
Colaboradores en la recopilación de información / datos (sin un orden específico y lo siento si falta alguien):

Leo ChengSam122; x48bantegmilkyklimEmiliano BonassiJulien Bouteloup (and the REKT team); FacudougETHandy8052dudesahnVasaThe Peckshield TeamThe Arcadia Group TeamBinance

Descargo de responsabilidad
COVER es un token de gobernanza completamente sin valor y tiene 0 valor financiero. Ejerza la debida diligencia antes de interactuar con los contratos inteligentes de Cover, los contratos de participación y todos los contratos implementados posteriores asociados con Cover.

memoca07

No soy nadie, ninguna autoridad o titulo. Sólo una persona en busca de información real, que quiere agradar al único Dios viviente, creador de los cielos y la tierra, el Dios de Abraham, de Isaac e Israel, YEHOVAH, que quiere compartirla con los demás.

Deja un comentario