Urgente: OUSD fue hackeado y ha habido una pérdida de fondos

Moisés Sosa
Origin Protocol Spanish
13 min readNov 17, 2020

OUSD ha sido hackeado y ha habido una pérdida de fondos de los usuarios. Estamos investigando activamente el problema. Estamos comprometidos a hacer las cosas bien. Consulte esta publicación de blog como fuente autorizada para actualizaciones continuas durante los próximos días.

Actualizado a las 10:26 AM UTC 11.25.2020 (Josh Fraser)

Queremos compartir una línea de tiempo aproximada sobre cuándo esperar todos los detalles sobre el plan de compensación por el hack de OUSD. Nuestra estimación actual es que tomará alrededor de 2 semanas tener un plan listo para compartir. Puede que tarde más, pero esperamos hacerlo más rápido. En aproximadamente 2 semanas, esperamos poder compartir nuestra propuesta sobre cuándo y cómo se reembolsará a las partes afectadas. El reembolso real ocurrirá en un momento posterior. Hay muchas situaciones diferentes que estamos tratando de comprender, de modo que podamos estructurar una propuesta que sea justa para todos. Por ejemplo, estamos recopilando y analizando datos para comprender cuántas personas están en cada una de las siguientes categorías:

  • Usuarios que han holdeado OUSD en sus billeteras desde el ataque
  • Proveedores de liquidez en SushiSwap, Uniswap o Mooniswap
  • Stakers de SnowSwap
  • Usuarios de VirgoX
  • Traders que vendieron o compraron OUSD, a pesar de que se les dijo repetidamente que no

Entendemos que las personas están ansiosas por saber cómo funcionará la compensación y si serán elegibles. Compartiremos nuestra propuesta para recibir comentarios de la comunidad. Queremos asegurarnos de pensar en todos los escenarios y diseñar un plan que sea justo para todos mientras avanzamos lo más rápido posible.

Además, compartiremos actualizaciones con menos frecuencia a medida que avancemos en la siguiente fase. Incluso si no podemos compartir todos los detalles públicamente, sepa que todavía se está avanzando mucho detrás de escena. Nuestro equipo continúa enfocándose en recuperar fondos, recopilar y analizar datos, estructurar el plan de compensación, solucionar los problemas de seguridad con OUSD y preparar OUSD para el relanzamiento. Gracias por su paciencia y apoyo durante este tiempo.

Actualizado a las 4:45 PM UTC 11.20.2020 (Matthew Liu)

Queríamos actualizar a la comunidad sobre nuestro escenario de compensación de usuarios. Si bien confiamos en que existe un camino para recuperar el capital perdido, hemos comenzado la planificación de contingencias en paralelo. Independientemente de si podemos recuperar los fondos de los usuarios del atacante, estamos comprometidos a hacer lo correcto por nuestros usuarios.

Durante una o más cuotas de pago, la compañía tiene la intención de proporcionar una compensación equivalente al 100% del valor depositado en OUSD por los holders de OUSD en el momento de la explotación (exploit). Los métodos de pago, la mecánica y el tiempo aún se están estructurando, por lo que necesitaremos tiempo adicional para publicar los detalles del programa de compensación finalizado.

Hemos comenzado los esfuerzos de ingeniería para reconstruir el estado de los saldos de OUSD en las billeteras de los usuarios y los grupos de liquidez (por ejemplo, AMMs) en el momento del ataque y poco después. Esta captura y análisis de datos continuará y planeamos ofrecer más noticias transparentes una vez que se haya completado este trabajo.

Le pedimos que tenga paciencia con nosotros mientras seguimos trabajando con los datos en las próximas semanas. Completar este trabajo es un requisito previo para lanzar nuestro plan de compensación completo.

Es importante destacar que no tenemos la intención de acuñar (mint) ni vender ningún OGN para financiar el plan de compensación. También queremos asegurar a nuestros holders de tokens de OGN que todavía estaremos en una posición financieramente sólida para continuar operando la Plataforma de Origin (por ejemplo, Dshop, nuevos productos comerciales y la próxima versión de OUSD) incluso si tenemos que recurrir al plan de contingencia.

Igual de importante, queremos reiterar que estamos comprometidos a hacer de OUSD un producto exitoso. Nos aseguraremos de que nuestros usuarios estén completos y planeamos continuar desarrollando agresivamente el producto y el ecosistema que lo acompaña. También actualizaremos nuestros contratos inteligentes y realizaremos auditorías adicionales antes de relanzar OUSD. A pesar de haber sido lanzado hace menos de dos meses, OUSD ha demostrado rápidamente signos de adecuación producto-mercado. En los dos días previos al ataque, la oferta circulante de OUSD se había más que triplicado, mientras que los APY regresaban al 50%. Creemos que OUSD será uno de los productos fundamentales en DeFi y el comercio entre pares a lo largo del tiempo. OUSD acumulará un valor tremendo para los holders de OGN a través de privilegios de gobernanza y posibles tarifas. Como equipo y comunidad, superaremos este revés y llevaremos a OUSD y OGN a nuevos niveles en el futuro cercano.

Actualizado a las 7:47 am UTC 11.19.2020 (Josh Fraser)

Estamos ofreciendo una recompensa de $1,000,000 USD a cualquiera que proporcione información sustancial o evidencia que conduzca a la devolución de los fondos de los clientes. Los pagos (si hay varias personas involucradas) serán ponderados por sus contribuciones relativas. Si tiene información que pueda ayudarnos a identificar al atacante o recuperar los fondos perdidos, comuníquese con security@originprotocol.com de inmediato. Cualquier recompensa se otorgará a discreción total de Origin Protocol.

Para el hacker, creemos que nos ha hecho saber lo que quería a nosotros y a nuestra comunidad. Los desarrolladores que implementan contratos no probados antes de que se hayan completado las auditorías de seguridad esenciales deben ser más completos y diligentes al desarrollar sus productos. Los usuarios que esperan obtener ganancias deben ser más pacientes y asumir la responsabilidad de sus decisiones de inversión para evitar tener perdidas. Como desarrolladores de los contratos inteligentes de OUSD, no nos importa si devuelve los fondos de la empresa o las inversiones personales de nuestros fundadores. Creemos que demostró un conocimiento superior en la identificación de vulnerabilidades en nuestro trabajo. Le pedimos que actúe de manera acertada y devuelva todos los fondos de los usuarios de OUSD. La cantidad total de depósitos excluyendo a nuestros fundadores y los fondos de la empresa es de $6,159,000.00. Si hace esto, detendremos inmediatamente todos los esfuerzos para identificarlo o emprender acciones legales.

Recuerda que estás tomando de los que tienen menos. Si examina las direcciones de billetera que contenían OUSD, se dará cuenta de que muchos de nuestros usuarios no son ballenas. Muchos usuarios de OUSD son nuevos en DeFi y sus pérdidas pueden alterar la vida de formas muy negativas. Entendemos su deseo de llamar la atención sobre las vulnerabilidades de los contratos inteligentes y enseñar a los desarrolladores la lección dura pero necesaria para desarrollar protocolos DeFi seguros y probados en batalla. Conserve los fondos de Origin, pero no castigue a nuestros usuarios, muchos de los cuales eran nuevos en el mundo de las criptomonedas.

La recuperación de los fondos de los clientes sigue siendo nuestra máxima prioridad. Agotaremos todas las vías para lograr este objetivo.

Actualizado a las 10:15 PM UTC 11.17.2020 (Kay Yoo)

Actualmente estamos enfocados en recopilar datos con el objetivo de recuperar fondos para nuestros holders de OUSD. Continuaremos proporcionando actualizaciones frecuentes con nuestros hallazgos. Por favor manténgase al tanto.

Fuente

Actualizado a las 10:38 AM UTC 11.17.2020 (Micah Alcorn)

Como se prometió en una actualización anterior, queríamos proporcionar un recorrido detallado del ataque a la bóveda de OUSD que ocurrió hoy. Haremos un seguimiento con una autopsia completa en los próximos días para explorar una variedad de formas de prevenir futuros ataques. Por ahora, queremos aclarar rápidamente lo que sucedió.

También tendremos una próxima publicación en la que se discutirá lo último sobre nuestros esfuerzos para recuperar fondos, así como nuestros planes en el peor de los casos para compensar a los usuarios si no podemos recuperar los depósitos de los usuarios.

El ataque se originó en 0xb77f7bbac3264ae7abc8aedf2ec5f4e7ca079f83, con un contrato implementado del 17 de noviembre al 2020 a las 12:40:56 a.m. +UTC. A continuación, se muestra una descripción de las transacciones que se iniciaron mediante este contrato

Nov-17–2020 12:47:19 AM +UTC

1. Flash Loan

70,000 ETH fueron prestados de dYdX.:

2. Los Swaps de Stablecoin

Se cambiaron 17,500 ETH por 7,855,911.53 USDT en Uniswap.

52,500 ETH se cambiaron por 20,987,772.08 DAI en Uniswap.

3. La acuñación simple

Nuestro método de acuñación, que permite al remitente utilizar un tipo de moneda estable para acuñar OUSD, se llamó con 7.500.000 USDT.

Se transfirieron 7.500.000 USDT a la bóveda.

Se acuñaron 7.500.000 OUSD y se transfirieron al atacante, según lo previsto.

En este punto, el atacante tenía un poco más de la mitad de todos los OUSD existentes, y la bóveda tenía una cantidad equivalente de garantía para respaldar un suministro de aproximadamente 14,518,200 OUSD.

4. La reentrada

Nuestro método /mintMultiple/, que permite al remitente usar más de un tipo de moneda estable para acuñar OUSD, fue llamado con 20,500,000 DAI como la primera moneda estable.

En lugar de utilizar una segunda moneda estable válida, el atacante utilizó la dirección del contrato malicioso en sí. Nuestro contrato no detectó que esta no era una de nuestras tres monedas estables admitidas.

Se transfirieron 20.500.000 DAI a la bóveda.

En un intento de transferir la moneda estable falsa, nuestro contrato se llama /safeTransferFrom/ en el contrato del atacante. Esta función contenía su propia llamada oculta para acuñar usando 2,000 USDT, que nuestro contrato no anticipó.

La acuñación de 2,000 USDT provocó una rebase del suministro de OUSD, lo que provocó que el saldo de OUSD de todos aumentara en un factor de aproximadamente 2,41 (valor de bóveda de 35,018,200/suministro de 14,518,200 de OUSD). En otras palabras, el contrato pensaba que el valor adicional de 20,500,000 provenía de las ganancias ya que aún no se había acuñado ningún OUSD adicional.

En este punto, el atacante tenía aproximadamente 18,090,156 OUSD cuando el valor de la bóveda era 35,018,200.

2.000 USDT fueron transferidos a la bóveda.

Se acuñaron 2.000 OUSD y se transfirieron al atacante, lo que provocó que el suministro de OUSD aumentara a aproximadamente 35.020.200.

Se acuñaron 20,500,000 OUSD y se transfirieron al atacante, lo que provocó que el suministro de OUSD aumentara a 55,520,200 a pesar de que solo tenía un valor de 35,018,200.

En este punto el hacker tenía en su poder 38,592,156 OUSD, cantidad cual excedía el valor de nuestra bóveda.

5. Los swaps iniciales de OUSD

300,000.00 OUSD se canjeó por 158,550.17 USDT en Uniswap.

1,000,000.00 OUSD se canjeó por 520,756.83 USDT en SushiSwap.

6. El primer canje

19,557,311.44 DAI fue retirado de la bóveda de OUSD.

9.417.676,79 USDT se retiraron de la bóveda de OUSD.

Se retiró 3.931.953,44 USDC de la bóveda de OUSD.

Se quemaron 33,269,189.62 OUSD (según lo previsto).

7. Los intercambios inversos de Stablecoin

Se cambiaron 10,450,895.33 USDT por 22,898.58 ETH en Uniswap.

Se cambiaron 3.931.953,45 USDC por 8.305,92 ETH en Uniswap.

19,045.083.52 DAI se cambió por 47,976.52 ETH en Uniswap.

8. El reembolso del préstamo

70.000 ETH se devolvieron a dYdX.

17 de noviembre de 2020 a las 12:48:01 a.m. +UTC

1.138.449,12 OUSD se canjeó por una combinación de monedas estables.

17 de noviembre de 2020 a las 12:49:23 a.m. +UTC

531,688.76 OUSD se canjeó por una combinación de monedas estables.

17 de noviembre de 2020 a las 12:49:47 a.m. +UTC

Se canjearon 248,059.48 OUSD por una combinación de monedas estables.

17 de noviembre de 2020 a las 12:50:04 a.m. +UTC

543,305.34 USDT y 226,832.53 USDC se convirtieron a ETH en Uniswap y se transfirieron a la cuenta del atacante (0xb77f7bbac3264ae7abc8aedf2ec5f4e7ca079f83) junto con 1,128,244.36 DAI.

17 de noviembre de 2020 a las 12:51:43 a.m. +UTC

Se canjearon 115,732.21 OUSD por una combinación de monedas estables.

17 de noviembre de 2020 a las 12:53:26 a.m. +UTC

53.994,89 OUSD se canjeó por una combinación de monedas estables.

17 de noviembre de 2020 a las 12:53:42 a.m. +UTC

300,000.00 OUSD se canjeó por 60,505.30 USDT en Uniswap.

1,000,000.00 OUSD se canjeó por 187,152.67 USDT en SushiSwap.

17 de noviembre de 2020 a las 12:56:58 a.m. +UTC

Se canjearon 25,191.33 OUSD por una combinación de monedas estables.

17 de noviembre de 2020 a las 12:57:07 a.m. +UTC

300,000.00 OUSD se canjeó por 29,803.08 USDT en Uniswap.

1,000,000.00 OUSD se canjeó por 98,401.29 USDT en SushiSwap.

17 de noviembre de 2020 a las 12:59:43 a.m. +UTC

Se canjearon 11,616.27 OUSD por una combinación de monedas estables.

17 de noviembre de 2020 a las 12:59:48 a.m. +UTC

434,407.95 USDT y 24,443.08 USDC se convirtieron a ETH en Uniswap y se transfirieron a la cuenta del atacante (0xb77f7bbac3264ae7abc8aedf2ec5f4e7ca079f83) junto con 121,577.54 DAI.

17 de noviembre de 2020 a las 01:01:08 a.m. +UTC

498,487.66 OUSD fue transferido nuevamente al implementador del contrato OUSD (Origin Protocol).

En el momento de escribir este artículo, el atacante tiene aproximadamente $3,309,557 en ETH y 2,249,822 DAI después de haber lavado una cantidad sustancial a través de Tornado.Cash, wBTC y renBTC. Estamos observando las siguientes direcciones BTC y solicitamos a los intercambios que incluyan en la lista negra cualquier transacción de estas billeteras:

Continuaremos nuestros esfuerzos para recuperar estos fondos y agradeceremos cualquier información que pueda ayudar a nuestra causa.

Comuníquese con nosotros en nuestro Discord o Telegram si tiene alguna información que pueda ayudarnos a identificar al pirata informático y recuperar los fondos del usuario.

Actualizado a las 8:43 AM UTC 11.17.2020 (Josh Fraser)

Seguimos trabajando para intentar recuperar los fondos

Si aún está proporcionando liquidez en Sushiswap, le recomendamos que retire sus fondos lo antes posible.

También le recomendamos encarecidamente que no intente comprar o vender OUSD en este momento.

Actualizado a las 5:15 AM UTC, 11.17.2020 (Matthew Liu)

En las últimas tres horas, hemos avanzado en la comprensión del ataque y el seguimiento del flujo de fondos desde la bóveda de OUSD a las billeteras de los atacantes.

Estamos trabajando activamente en medidas para intentar recuperar los fondos. Esto incluye trabajar con plataformas de intercambio (exchanges) y otros terceros para identificar potencialmente al atacante y/o congelar los fondos para que no sean liquidados.

Hemos rastreado fondos y sabemos que el atacante usó Tornado Cash y renBTC para lavar y mover fondos.

Actualmente, todavía hay 7.137 ETH y 2.249M DAI en una de las billeteras del atacante.

Nuevamente, aquí está la transacción para el ataque. Aquí hay una sinopsis inicial del ataque:

  • El ataque fue un error de reentrada en nuestro contrato. Desafortunadamente, nuestro contrato estaba a salvo de errores de reentrada a menos que una de nuestras monedas estables admitidas nos estuviera atacando.
  • El atacante aprovechó un cheque de validación faltante en mint (acuñación) multiple (cuando acuñó OUSD con múltiples monedas estables) para pasar una “moneda estable” falsa bajo su control. Esta “moneda estable” fue denominada “transferFrom” por la bóveda, lo que permite al hacker informático explotar el contrato con un ataque de reentrada en el medio de la ceca.
  • El atacante pudo crear un evento de rebase dentro de la segunda ceca después de que los fondos se hubieran movido a OUSD desde la primera gran ceca, pero antes de que aumentara la oferta de OUSD. Esto creó un rebase masivo para todos en el contrato, incluido el atacante. El atacante también recibió su primera gran moneda de OUSD, dándoles en total más OUSD de los activos que tenía el contrato.
  • El atacante retiró la mayoría de las monedas estables de OUSD.
  • Luego pudieron tomar OUSD extra después de retirarlo y venderlo en Uniswap y Sushiswap por USDT en transacciones posteriores.

Próximamente se realizará un análisis más completo transacción por transacción.

Tomaremos medidas exhaustivas en los próximos días en un intento por recuperar los fondos perdidos de los usuarios antes de discutir un plan de compensación para los holders de OUSD afectados. Como recordatorio, no compre OUSD en Uniswap o Sushiswap, ya que los precios actuales no reflejan los activos subyacentes de OUSD.

Para el hacker: Le pedimos que haga lo correcto y devuelva los fondos. Ha demostrado sus habilidades superiores como hacker informático y con gusto lo contrataremos como consultor de seguridad. Si devuelve el 100% de los fondos, prometemos no perseguirlo ni emprender ninguna acción legal en su contra. Le pedimos humildemente que considere a los cientos de personas inocentes que está lastimando y devuelva los fondos.

Por último, queremos expresar nuestro agradecimiento a la gran comunidad blockchain. Hemos recibido un gran apoyo de nuestros inversores, ingenieros de DeFi, expertos en seguridad, etc. en estos tiempos difíciles. Estamos muy agradecidos con los grupos que nos ayudan a analizar más el ataque, rastrear fondos y potencialmente identificar al atacante. Gracias de todo nuestro equipo.

Publicación Original (Matthew Liu)

Origin Dollar (OUSD) ha sido hackeado. El equipo está tratando de averiguar qué vulnerabilidad fue explotada y cómo el hacker pudo acceder a los depósitos de los usuarios. Espere una publicación actualizada dentro de una hora.

Esta transacción parece ser la raíz del ataque:

https://etherscan.io/tx/0xe1c76241dda7c5fcf1988454c621142495640e708e3f8377982f55f8cf2a8401

En este momento, ha habido una pérdida de fondos de alrededor de $7 millones, incluidos más de $1 millón de fondos depositados por Origin y nuestros fundadores y empleados. Trabajaremos incansablemente hasta que podamos determinar la causa del exploit y si podremos recuperar estos fondos. Estamos muy incentivados a dar el 1000% para resolver el problema de cualquier manera posible.

Hemos desactivado los depósitos a la bóveda. No compre OUSD en Uniswap o Sushiswap, ya que los precios actuales no reflejan los activos subyacentes de OUSD.

Este es un proceso que avanza rápidamente y todo nuestro equipo se ha movilizado para abordar esta crisis. Haremos actualizaciones frecuentes a través de nuestro blog, Telegram, Twitter y Discord. En tiempos de crisis, es importante que seamos completamente transparentes y responsables. Estamos listos para responder a sus preguntas.

En este momento, nos gustaría extender nuestras más sinceras y profundas disculpas a los primeros usuarios de OUSD que han depositado fondos con nosotros. Valoramos y apreciamos mucho su apuesta inicial por nuestro nuevo producto, y trabajaremos incansablemente para llegar al fondo de esto.

No nos vamos a ir. Esto no es un tirón de alfombra o una estafa interna. A pesar de este revés, nuestra intención es en gran medida hacer de OUSD un producto seguro y exitoso que se base en la misión más amplia de Origin del comercio de persona a persona. Lamentamos los acontecimientos de hoy y cargaremos con esta carga para hacerlo mejor.

--

--