Compounder Finance - REKT



La Parca rekt tiene sus métodos para hacer a la gente hablar.

En los últimos momentos, mientras el TVL se acerca a cero, y el drawdown se vuelve inaguantable, una figura sin rostro entra al chat.

Cuando un protocolo está lesionado irreparablemente, y ha llegado su hora de descender al inframundo, el cuarto y último jinete llega para guiarle al más allá, presentándose en formato .gif.

Compounder.finance fue rug pulled por más de $12,000,000.

En nuestra comunidad volátil, la ambición y la desesperación se castigan de maneras iguales pero impredecibles.

Aquí hay esperanza para el pecador, cuyas transgresiones son olvidadas mientras escapan down-chain con su manto de anonimato.

rekt está aquí para arrojar luz sobre el pecador - para exponer sus métodos y que todos podamos aprender.

El sitio web y la cuenta de Twitter de Compounder.finance fueron borrados inmediatamente.

Una auditoría de seguridad ya existente ofreció a nuestros detectives la única pista.

Estos son tiempos concurridos en rektHQ, ya habían pasado unas horas cuando empezamos a investigar… Cuando contactamos al auditor para obtener una cita, no estaba exactamente emocionado de vernos.

Por favor no mandes mierda de muerte como esa, de verdad por un minuto me hiciste temer por mi seguridad y alguien más débil tal vez lo reportaría o algo...

Después de que nuestros detectives ofrecieron un poco de tranquilidad, Solidity.finance nos mandó los chat logs enteros de su conversación con Compounder.finance.

Otras víctimas también se pusieron en contacto con nosotros, mostrando conversaciones previas con admins de Compounder donde expresaron sus preocupaciones.

Solidity.finance nos dijo que solamente habían hablado brevemente con los admins, y aunque habían auditado el contrato, afirmaron en el documento que a pesar de que las pools tenían un control de tesorería por timelock, éste no ofreció ninguna protección.

El siguiente mensaje viene de sus chat logs.

A esta altura de nuestra investigación, Solidity.finance todavía era un sospechoso. Queríamos saber por qué creyeron que el equipo de Compounder.finance parecía “muy confiable”.

Mientras íbamos leyendo los chat logs, nos dimos cuenta de que aunque las cuentas ya habían sido borradas, un nombre de usuario seguía ahí - “keccak”.

Aunque Solidity.finance dijo que keccak había borrado su cuenta, ya la habíamos encontrado y estábamos intentando hacer contacto.

Desafortunadamente, Vlad no quería hablar por teléfono, así que le enviamos un mensaje, sin esperanza de respuesta.

Hasta que...

Vlad estuvo listo para hablar. Desafortunadamente, no estuvo muy dispuesto a cooperar.

Vlad/keccak todavía puede ser contactado por Telegram vía @keccak, sin embargo ya no responde y desde entonces ha borrado todas las imágenes de su cuenta. Adjuntamos sus avatares anteriores para su consideración e investigación.

Nos han informado que - Lo del lobo es de un dibujo animado ucraniano en ruso, que dice “pásate si algo pasa”

Lo de la izquierda es un cartel en contra de las armas nucleares.

De poca ayuda para los usuarios afectados, desafortunadamente.

Una vez claro que Vlad no nos iba a decir nada, visitamos el grupo Telegram oficial de Compounder, donde resultó obvio que nuestra reputación nos precede.

Mientras recorrimos el contenido del chat, vimos todos los comportamientos típicos causados por un rug pull recién hecho.

Hasta las grandes figuras se vuelven humildes ante el poder de un rug pull. Este líder de grupo perdió $1,000,000 y ha abierto su propio grupo de investigación (686 miembros) en un esfuerzo por encontrar algo de venganza.

El hilo está aquí.

Las estadisticas

Como parte de nuestra investigación, presentamos Solidity.finance a @vasa_develop de Stake Capital y les pedimos trabajar juntos para crear un post-mortem completo del incidente.

Los siguientes datos vienen de su reporte.

Activos estafados (8):

  • 8,077.540667 Wrapped Ether ($4,820,030.07)
  • 1,300,610.936154161964594323 yearn: yCRV Vault (1,521,714.80 $)
  • 0.016390153857154838 Compound (COMP) (1.79 $)
  • 105,102,172.66293264 Compound USDT (2,169,782.85 $)
  • 97,944,481.39815207 Compound USD Coin (2,096,403.68 $)
  • 1,934.23347357 Compound Wrapped BTC (744,396.89 $)
  • 23.368131489683158482 Aave Interest bearing YFI (628,650.174379401 $)
  • 6,230,432.06773805 Compound Uniswap (466,378.99 $)

Wallets que tenían los fondos después del rug-pull

Desde la primera vez que el Deployer recibió fondos vía Tornado.cash hasta el rug pull, el Deployer mandó ETH a 7 direcciones distintas. La mayoría de ellas recibieron un solo pago. Una de estas direcciones, sin embargo, recibió 4 pagos separados el 19, 20, 22, y 23 de noviembre. Muchos de los fondos de aquella dirección terminaron en otra dirección que contenía más de 1 millón KORE (solamente 10k KORE existieron antes del rug pull).

Los culpables principales de este hack fueron los 7 maliciosos contratos de Strategy que fueron añadidos al codebase después de la auditoría.

Una función withdraw() no maliciosa de un contrato de Strategy se ve algo así.

Nótese que tenemos unos controles como:

Estos controles no aparecían en los 7 maliciosos contratos de Strategy. Esto permite al contrato Controller (controlado por el estratega del rug pull) retirar los activos del Strategy.

(Nótense los controles que faltan en la maliciosa función withdraw)

El rug pull entero se puede explicar en cuatro pasos.

Paso 1

Compounder.Finance: Deployer implementó 7 estrategias con funciones withdraw() maliciosas.

Paso 2

Compounder.Finance: Deployer fijó y aprobó 7 estrategias maliciosas en StrategyController via transacciones Timelock (24h)

Paso 3

Compounder.Finance: Deployer (estratega) llamó inCaseStrategyTokenGetStuck() en StrategyController que utiliza la función withdraw() manipulada de las estrategias maliciosas para transferir los tokens en las estrategias al StrategyController. Repite para cada 7 estrategias maliciosas.

Paso 4

Compounder.Finance: Deployer (estratega) llamó inCaseTokensGetStuck() en StrategyController que transfiere los tokens del StrategyController a la dirección del Compounder.Finance: Deployer (estratega). Ahora el Compounder.Finance: Deployer (estratega) tiene control total sobre 8 activos con un valor de $12,464,316.329.

Desde ahí, los activos han sido transferidos a múltiples direcciones, listadas aquí.

Excelente trabajo de @vasa_develop.

Si eres un informante, un ciber-sabueso o un Etherscan detective y tienes algo que contribuir, contáctanos.


Día del Juicio Final:

¿A quién culpar?

Después de nuestro análisis, sabemos que no a los auditores, quienes cumplieron su trabajo de manera diligente, asegurando que Compounder.finance quedara a salvo de ataques externos mientras expresaban sus preocupaciones en el reporte de la auditoría y el chat de Telegram.

Quizá pudieron haber expresado sus preocupaciones un poco más alto pero, al final de cuentas, la responsabilidad siempre es de quien deposita.

Compounder.finance utilizó un timelock como indicador de que no iban a realizar un rug pull. Ahora sabemos que en ese método no se puede confiar. Si se utiliza, un sistema de alerta automatizada o dashboard debe de ser incorporado para monitorear transacciones a esa dirección.

24 horas no parecen suficientes para advertir a los usuarios de retirar sus fondos.

No todos los proyectos con fundadores anónimos son estafas. Esta industria entera fue fundada por un anon.

Sin embargo, casi todas las estafas son proyectos con fundadores anónimos. Como comunidad, tenemos que ser cautelosos con estos proyectos; especialmente aquellos que utilizan fuentes de fondos no rastreables como Tornado.cash.

La mera existencia de un reportaje de auditoría no es suficiente para asegurar que un proyecto es seguro o legítimo. Las auditorías suelen enfocarse en los riesgos de agresores externos más que en los internos - tal vez esta es un área en la que los auditores pueden mejorar.

Incluso con auditorías, timelocks y claves quemadas, los que depositan siempre quedan a merced de los otros usuarios, quienes pueden hacer dump a grandes cantidades de tokens en el mercado en cualquier momento.

Solidity.Finance: La Declaración Oficial

El equipo Compounder cambió los contratos de Strategy seguros/auditados y los reemplazó con los maliciosos contratos “Evil Strategy”, lo que les permitió robar los fondos de los usuarios. Esto lo hicieron tras un timelock público de 24h, pero que aparentemente se realizó sin monitorización.

Este problema de control centralizado por parte del equipo C3PR surgió en nuestro reportaje de auditoría y nuestras conversaciones con su equipo. El equipo tuvo el poder de actualizar las strategy pools y lo hicieron de manera maliciosa para robar los fondos de los usuarios. En un esfuerzo por ser transparentes, cualquiera puede ver nuestros chat logs con el equipo C3PR aquí.

Históricamente, nuestras auditorías se han enfocado en los riesgos de los proyectos generados por agresores externos, con algo de discusión acerca de los riesgos que vienen de parte del equipo del proyecto, como hicimos aquí. Tomaremos este evento desafortunado como una oportunidad de aprender, y en el futuro incluiremos detalles más elaborados en lenguaje más accesible sobre los riesgos vinculados al control de los desarrolladores.

Todos sabemos que debemos de leer los smart contracts antes de invertir, pero la barrera de conocimiento es alta. No todo el mundo sabe qué buscar, y los que lo saben no tienen incentivos para compartir lo que encuentran.

En el caso de C3PR, los usuarios que escucharon fueron advertidos del peligro desde temprano, y el código que hizo posible el rug pull siempre estuvo presente.

A pesar de esto, más de $12,000,000 se acumularon dentro del contrato, lo que ahora puede ser llamado uno de los rug pulls más grandes de todos los tiempos.


compartir artículo

REKT sirve como plataforma pública para autores anónimos, nos deslindamos de la responsabilidad por las opiniones y contenidos alojados en REKT.

dona (ETH / ERC20): 0x3C5c2F4bCeC51a36494682f91Dbc6cA7c63B514C

aviso legal:

REKT no es responsable ni culpable de ninguna manera por cualquier Contenido publicado en nuestro Sitio Web o en conexión con nuestros Servicios, sin importar si fueron publicados o causados por Autores ANÓN de nuestro Sitio Web, o por REKT. Aunque determinamos reglas para la conducta y publicaciones de los Autores ANÓN, no controlamos y no somos responsables por cualquier contenido ofensivo, inapropiado, obsceno, ilegal o de cualquier forma objetable, que se pudiera encontrar en nuestro Sitio Web o Servicios. REKT no es responsable por la conducta, en línea o fuera de línea, de cualquier usuario de nuestro Sitio Web o Servicios.