Club de código abierto: Monero evade otro ataque con ayuda de comunidad

Esta semana, los desarrolladores de Monero (XMR) corrigieron un error que podría permitir a un atacante 'quemar' los fondos del monedero de una organización. La brecha fue revelada inicialmente por un miembro de la comunidad, y los desarrolladores de XMR fueron lo suficientemente rápidos como para solucionarlo antes de que se produjera cualquier daño.

Anonimato sobre todo: cómo funciona Monero

En pocas palabras, Monero (XMR) es una criptomoneda como Bitcoin (BTC), pero con un enfoque adicional en el anonimato. Se estableció en 2014, cuando el usuario de bitcointalk.org thankful_for_today bifurcó el código de Bytecoin hacia el nombre de BitMonero. Para establecer la nueva moneda, usó las ideas que se describieron por primera vez en un libro blanco de 2013 llamado "Cryptonote", escrito por una personalidad anónima, Nicolas van Saberhagen. Irónicamente, BitMonero pronto se bifurcó por desarrolladores de código abierto y se tituló 'Monero' (que significa 'moneda' en esperanto). Desde entonces, sigue siendo un proyecto de código abierto.

XMR tiene considerablemente más propiedades de privacidad que BTC: en lugar de ser una moneda descentralizada, Monero está diseñada para ser completamente anónima y prácticamente imposible de rastrear. Por lo tanto, XMR se basa en el algoritmo hash CryptoNight de prueba de trabajo (PoW), que le permite utilizar 'firmas de anillo' (que mezclan la dirección del que la gasta con un grupo de otras, lo que dificulta la localización de transacciones), 'direcciones ocultas' (que se generan para cada transacción e imposibilitan el descubrimiento del destino real de una transacción por parte de otra persona que no sea el remitente y el receptor) y 'transacciones anónimas en anillo' (que ocultan la cantidad transferida).

En 2016, XMR experimentó un mayor crecimiento en capitalización de mercado y volumen de transacciones que cualquier otra criptomoneda (casi un 2800 por ciento de aumento, según CoinMarketCap). Mucho de ese crecimiento provino de la economía oculta. Siendo una altcoin que está hecha a medida para transacciones totalmente privadas, Monero finalmente fue aceptada como una forma de moneda en mercados de darknet como Alphabay y Oasis. Específicamente, después de ser integrada en la darknet en el verano de 2016, su valor "aumentó inmediatamente alrededor de seis veces", según Wired.

"Ese repunte entre las personas que realmente necesitan ser privadas es interesante", dijo Riccardo Spagni, uno de los desarrolladores principales de Monero, en enero de 2017. "Si es lo suficientemente bueno para un traficante de drogas, es lo suficientemente bueno para todos".

La supuesta privacidad de Monero sigue siendo un tema controvertido, ya que algunos sugieren que la moneda no es, de hecho, completamente anónima. En una entrevista en agosto con Bloomberg, la agente especial de la Agencia Antidrogas de Estados Unidos (DEA), Lilita Infante, señaló que aunque las monedas centradas en la privacidad son menos líquidas y más anónimas que BTC, la DEA "todavía tiene maneras de rastrear" altcoins como Monero y Zcash. Infante concluyó:

"Blockchain en realidad nos da muchas herramientas para poder identificar a las personas. De hecho, quiero que sigan usando [criptomonedas]".

Curiosamente, aunque el último informe de cibercrimen de Europol sugiere que BTC sigue siendo la criptomoneda más popular para actividades delictivas, también predice un aumento en la demanda de altcoins centradas en el anonimato, incluida Monero (XMR).

La naturaleza centrada en la privacidad de Monero también impide que se incluya en algunas bolsas de criptomonedas compatibles. Por ejemplo, en junio, Coincheck, con sede en Japón, retiró XMR y otras tres altcoins enfocadas en el anonimato para seguir los procedimientos de Financiamiento contra el Terrorismo (CFT) y Antilavado de Dinero (AML) emitidos por el regulador financiero local.

El error de quemadura: amenaza potencial al ecosistema de Monero

El 18 de septiembre, el usuario u/s_c_m_l describió un ataque hipotético dentro del ecosistema XMR en el subreddit oficial de Monero:

"Puedo imaginar un ataque donde 'A' obtiene [a] una gran cantidad de XMR y [lo envía] a 'Criptobolsa B' en muchas transacciones con la misma dirección oculta. 'A' luego intercambia ese XMR por otra moneda y cobra, dejando a la criptobolsa paralizada [e] incapaz de usar ese XMR".

Es importante destacar que la blockchain de Monero "quema" las transacciones de XMR entre direcciones ocultas idénticas, viéndolas como ilegítimas. En cambio, solo una sola transacción 'correcta' podría pasar. Los XMR quemados, a su vez, son completamente inutilizables, ya que no pueden ser reemplazados.

Se describieron detalles más específicos sobre el ataque en una publicación de blog de Monero:

"Un atacante primero genera una clave de transacción privada aleatoria. A partir de entonces, modifican el código para usar simplemente esta clave de transacción privada particular, que garantiza que múltiples transacciones a la misma dirección pública (por ejemplo, el monedero en línea de una bolsa) se envíen a la misma dirección oculta. Posteriormente, envían, digamos, mil transacciones de 1 XMR a una bolsa. Debido a que el monedero de la bolsa no avisa de esta anormalidad en particular (es decir, que los fondos se reciben en la misma dirección oculta), la bolsa, como de costumbre, acreditará al atacante con 1000 XMR".

"El atacante luego vende su XMR por BTC y finalmente retira este BTC. El resultado de la(s) acción(es) del hacker es que la bolsa se queda con 999 salidas consumibles/quemadas de 1 XMR".

En pocas palabras, el error básicamente permitió a los piratas informáticos quemar los fondos del monedero de una organización —como la de una bolsa— mientras que solo tenían que pagar las tarifas de transacción de la red. Aunque no obtendrían ningún dinero por hacerlo, "probablemente haya medios para beneficiarse indirectamente", como sugirió el equipo de Monero. Por ejemplo, los atacantes podrían manipular el mercado, ya que tendrían el control sobre el suministro de monedas de XMR.

Monero manejó la brecha con calma

La teoría de Redditor se discutió ampliamente en el subreddit de Monero, y los desarrolladores se comunicaron con un anuncio público solo después de solucionar el problema. El 25 de septiembre, el equipo de Monero declaró que un parche privado fue "creado con prontitud y luego incluido en el código" después de descubrir la vulnerabilidad potencial. Después de eso, supuestamente notificaron "tantas bolsas, servicios y comerciantes como fue posible", explicando que el parche debía aplicarse sobre la rama de publicación v0.12.3.0.

En una publicación de blog adjunta, los desarrolladores de Monero argumentaron que este no era "claramente el método preferido" debido a que algunas partes del ecosistema de Monero todavía se habían omitido, pero había un tiempo limitado para eliminar el error. Después de eso, el error se anunció a través del correo público, ya que es "imprescindible estar suscrito a la lista de correo público" para cualquier organización que se trabaje con Monero, argumentaron los desarrolladores.

Finalmente, Monero afirma que el error "no afectó el protocolo y, por lo tanto, el suministro de monedas no se vio afectado", por lo tanto, ningún atacante fue lo suficientemente rápido como para explotar el error.

La comunidad de XMR se mantiene en guardia

Esta no fue la primera preocupación de seguridad con respecto a Monero en el último mes. A principios de septiembre, los usuarios de Twitter y Reddit comenzaron a señalar que la extensión de MEGA Chrome estaba comprometida. La extensión MEGA Chrome es una herramienta que afirma mejorar el rendimiento del navegador reduciendo los tiempos de carga de la página, además de proporcionar un servicio de almacenamiento en la nube.

El redditor u/gattacus publicó en el subreddit oficial de Monero que la extensión MEGA Chrome versión 3.39.4 parecía conspicua:

"Hubo una actualización de la extensión y Chrome solicitó un nuevo permiso (leer datos en todos los sitios web). Eso me hizo sospechar y revisé el código de extensión localmente (que en su mayoría es javascript de todos modos). MEGA también tiene el código fuente de la extensión en github [...] No hubo confirmación recientemente. Para mí, parece que su cuenta de la tienda web de Google fue pirateada o alguien de MEGA lo hizo. Sin embargo, pura especulación".

La aplicación fue eliminada de Chrome webstore después de aproximadamente cuatro horas. Más tarde, el equipo de MEGA aclaró que la versión 3.39.4 era una actualización maliciosa realizada por hackers desconocidos con el objetivo de comprometer la información privada de los usuarios. Pronto, se hizo evidente que el ataque no se centró específicamente en Monero, ya que se informó que el código malicioso se activó en sitios web como Amazon, Google, Microsoft, GitHub y MyEtherWallet junto con los servicios de monedero web de Monero XMR. Esta vez, la falla no era responsabilidad de Monero.

El 'error de quemadura', a su vez, fue posible debido a una falla en el código de XMR, pero los desarrolladores reaccionaron rápidamente ante la señal de advertencia que generó la comunidad de altcoins.