Una vez aclamadas como imposibles de piratear, las cadenas de bloques ahora están siendo pirateadas

Un bloque abierto que revela monedas digitales dentro

Un bloque abierto que revela monedas digitales dentro Sra. tecnología





A principios del mes pasado, el equipo de seguridad de Coinbase notó que algo extraño sucedía en Ethereum Classic, una de las criptomonedas que las personas pueden comprar y vender utilizando la popular plataforma de intercambio de Coinbase. Su cadena de bloques, el historial de todas sus transacciones, estaba bajo ataque.

Un atacante de alguna manera había obtenido el control de más de la mitad de la potencia informática de la red y la estaba utilizando para reescribir el historial de transacciones. Eso hizo posible gastar la misma criptomoneda más de una vez, lo que se conoce como doble gasto. El atacante fue visto haciendo esto por una suma de $ 1.1 millones. Coinbase afirma que en realidad no se robó ninguna moneda de ninguna de sus cuentas. Pero un segundo intercambio popular, Gate.io, ha admitido no tuvo tanta suerte, perdió alrededor de $ 200,000 con el atacante (quien, extrañamente, devolvió la mitad días después).

Hace apenas un año, este escenario de pesadilla era principalmente teórico. Pero el llamado ataque del 51% contra Ethereum Classic fue solo el último de una serie de ataques recientes contra blockchains que han aumentado las apuestas para la industria naciente.



En total, los piratas informáticos han robado casi $ 2 mil millones en criptomonedas desde principios de 2017, principalmente de intercambios, y eso es solo lo que se ha revelado públicamente. Estos no son solo atacantes solitarios oportunistas. Las organizaciones sofisticadas de delitos cibernéticos ahora también lo están haciendo: la firma de análisis Chainalysis dijo recientemente que solo dos grupos, los cuales aparentemente todavía están activos, pueden haber robado $ 1 mil millones combinados de los intercambios.

No deberíamos sorprendernos. Las cadenas de bloques son particularmente atractivas para los ladrones porque las transacciones fraudulentas no se pueden revertir, como sucede a menudo en el sistema financiero tradicional. Además de eso, sabemos desde hace mucho tiempo que así como las cadenas de bloques tienen características de seguridad únicas, también tienen vulnerabilidades únicas. Los eslóganes de marketing y los titulares que decían que la tecnología era imposible de piratear estaban completamente equivocados.

Eso se ha entendido, al menos en teoría, desde que surgió Bitcoin hace una década. Pero el año pasado, en medio de una explosión cámbrica de nuevos proyectos de criptomonedas, comenzamos a ver lo que esto significa en la práctica, y lo que estas debilidades inherentes podrían significar para el futuro de las cadenas de bloques y los activos digitales.



¿Cómo hackear una cadena de bloques?

Antes de continuar, aclaremos algunos términos.

A cadena de bloques es una base de datos criptográfica mantenida por una red de computadoras, cada una de las cuales almacena una copia de la versión más actualizada. una cadena de bloques protocolo es un conjunto de reglas que dictan cómo las computadoras en la red, llamadas nodos , debe verificar nuevas transacciones y agregarlas a la base de datos. El protocolo emplea criptografía, teoría de juegos y economía para crear incentivos para que los nodos trabajen para asegurar la red en lugar de atacarla para beneficio personal. Si se configura correctamente, este sistema puede hacer que sea extremadamente difícil y costoso agregar transacciones falsas, pero que sea relativamente fácil verificar las válidas.



Eso es lo que ha hecho que la tecnología sea tan atractiva para muchas industrias, comenzando con las finanzas. Los servicios que pronto se lanzarán de instituciones de renombre como Fidelity Investments e Intercontinental Exchange, el propietario de la Bolsa de Valores de Nueva York, comenzarán a enredar las cadenas de bloques en el sistema financiero existente. Incluso los bancos centrales ahora están considerando usarlos para nuevas formas digitales de moneda nacional.

Pero cuanto más complejo es un sistema de cadena de bloques, más formas hay de cometer errores al configurarlo. A principios de este mes, la empresa a cargo de Zcash, una criptomoneda que utiliza matemáticas extremadamente complicadas para permitir a los usuarios realizar transacciones en privado, reveló que había arreglado en secreto un falla criptográfica sutil accidentalmente integrado en el protocolo. Un atacante podría haberlo explotado para hacer Zcash falsificado ilimitado. Afortunadamente, nadie parece haber hecho eso.

El protocolo no es lo único que tiene que ser seguro. Para intercambiar criptomonedas por su cuenta o ejecutar un nodo, debe ejecutar un software cliente , que también puede contener vulnerabilidades. En septiembre, los desarrolladores del principal cliente de Bitcoin, llamado Bitcoin Core, tuvieron que luchar para corregir un error ( también en secreto ) que podría haber permitido a los atacantes acuñar más bitcoins de los que se supone que permite el sistema.



Aún así, la mayoría de los hacks recientes que acapararon los titulares no fueron ataques a las cadenas de bloques en sí, sino a intercambios , los sitios web donde las personas pueden comprar, intercambiar y mantener criptomonedas. Y muchos de esos atracos podrían atribuirse a malas prácticas básicas de seguridad. Eso cambió en enero con el ataque del 51% contra Ethereum Classic.

La regla del 51%

La susceptibilidad a los ataques del 51 % es inherente a la mayoría de las criptomonedas. Eso es porque la mayoría se basan en cadenas de bloques que usan prueba de trabajo como su protocolo para verificar transacciones. En este proceso, también conocido como minería , los nodos gastan grandes cantidades de poder de cómputo para demostrar que son lo suficientemente confiables para agregar información sobre nuevas transacciones a la base de datos. Un minero que de alguna manera obtiene el control de la mayoría de la potencia minera de la red puede defraudar a otros usuarios enviándoles pagos y luego creando una versión alternativa de la cadena de bloques en la que los pagos nunca se realizaron. Esta nueva versión se llama tenedor . El atacante, que controla la mayor parte del poder de la minería, puede hacer que la bifurcación sea la versión autorizada de la cadena y proceder a gastar la misma criptomoneda nuevamente.

Para las cadenas de bloques populares, es probable que intentar este tipo de atraco sea extremadamente costoso. Según el sitio web Cripto51 , alquilar suficiente energía minera para atacar a Bitcoin actualmente costaría más de $260,000 por hora. Pero se vuelve mucho más barato rápidamente a medida que avanza en la lista de las más de 1500 criptomonedas que existen. La caída de los precios de las monedas lo hace aún menos costoso, ya que hace que los mineros apaguen sus máquinas, dejando las redes con menos protección.

Hacia mediados de 2018, los atacantes comenzaron a lanzar ataques del 51 % en una serie de monedas relativamente pequeñas y poco comercializadas, incluidas Verge, Monacoin y Bitcoin Gold, robando un total estimado de $ 20 millones. En el otoño, los hackers robaron alrededor de $100,000 usando una serie de ataques en una moneda llamada Vertcoin. El golpe contra Ethereum Classic, que generó más de $ 1 millón, fue el primero contra una de las 20 monedas principales.

David Vorick, cofundador de la plataforma de almacenamiento de archivos basada en blockchain Sia, predice que El 51 % de los ataques seguirá aumentando en frecuencia y gravedad, y los intercambios se llevarán la peor parte del daño causado por los gastos dobles. Una cosa que impulsa esta tendencia, dice, ha sido el surgimiento de los llamados mercados de hashrate, que los atacantes pueden usar para alquilar potencia informática para los ataques. En última instancia, los intercambios deberán ser mucho más restrictivos al seleccionar qué criptomonedas admitir, escribió Vorick después del hackeo de Ethereum Classic.

Una nueva lata de insectos gusanos

Además del 51% de los ataques, existe un nivel completamente nuevo de debilidades de seguridad de blockchain cuyas implicaciones los investigadores apenas comienzan a explorar: errores de contratos inteligentes. Coincidentemente, Ethereum Classic, específicamente, la historia detrás de su origen, también es un buen punto de partida para comprenderlos.

A contrato inteligente es un programa informático que se ejecuta en una red blockchain. Se puede usar para automatizar el movimiento de criptomonedas de acuerdo con las reglas y condiciones prescritas. Esto tiene muchos usos potenciales, como facilitar contratos legales reales o transacciones financieras complicadas. Otro uso, el caso de interés aquí, es crear un mecanismo de votación mediante el cual todos los inversores en un fondo de capital de riesgo puedan decidir colectivamente cómo asignar el dinero.

Justamente un fondo de este tipo, llamado Organización Autónoma Descentralizada (DAO), se creó en 2016 utilizando el sistema blockchain llamado Ethereum. Poco después, un atacante robó más de $60 millones en criptomonedas al explotar una falla imprevista en un contrato inteligente que rige la DAO. En esencia, la falla permitía al hacker seguir solicitando dinero de las cuentas sin que el sistema registrara que el dinero ya había sido retirado.

Como ilustró el truco, un error en un contrato inteligente en vivo puede crear un tipo único de emergencia. En el software tradicional, un error se puede corregir con un parche. En el mundo de la cadena de bloques, no es tan simple. Debido a que las transacciones en una cadena de bloques no se pueden deshacer, implementar un contrato inteligente es un poco como lanzar un cohete, dice Petar Tsankov, científico investigador de ETH Zurich y cofundador de una empresa emergente de seguridad de contratos inteligentes llamada CadenaSeguridad . El software no puede cometer un error.

Hay correcciones, de una especie. Aunque no se pueden parchear, algunos contratos se pueden actualizar implementando contratos inteligentes adicionales para interactuar con ellos. Los desarrolladores también pueden construir interruptores de apagado centralizados en una red para detener toda actividad una vez que se detecta un ataque. Pero para los usuarios cuyo dinero ya ha sido robado, será demasiado tarde.

La única forma de recuperar el dinero es, efectivamente, reescribir el historial: volver al punto en la cadena de bloques antes de que ocurriera el ataque, crear una bifurcación en una nueva cadena de bloques y hacer que todos en la red acepten usar esa en su lugar. Eso es lo que los desarrolladores de Ethereum eligieron hacer. La mayoría de la comunidad, pero no toda, cambió a la nueva cadena, que ahora conocemos como Ethereum. Un grupo más pequeño de holdouts se quedó con la cadena original, que se convirtió en Ethereum Classic.

El mes pasado, el equipo de Tsankov en ChainSecurity salvó a Ethereum de una posible repetición de la catástrofe de DAO. Justo un día antes de una importante actualización de software planificada, la compañía les dijo a los principales desarrolladores de Ethereum que tendría la consecuencia no deseada de dejar algunos contratos en la cadena de bloques nuevamente vulnerables al mismo tipo de error que condujo al ataque DAO. Los desarrolladores pospusieron rápidamente la actualización y le darán otra oportunidad a finales de este mes.

Sin embargo, cientos de valiosos contratos inteligentes de Ethereum ya eran vulnerables a este llamado error de reingreso, según Victor Fang, cofundador y director ejecutivo de la firma de seguridad blockchain AnChain.ai. Decenas de miles de contratos pueden contener algún otro tipo de vulnerabilidad, según una investigación realizada el año pasado. Y la naturaleza misma de las cadenas de bloques públicas significa que si existe un error de contrato inteligente, los piratas informáticos lo encontrarán, ya que el código fuente a menudo es visible en la cadena de bloques. Esto es muy diferente a la ciberseguridad tradicional, dice Fang, quien anteriormente trabajó para la firma de ciberseguridad FireEye.

Los contratos defectuosos, especialmente los que tienen miles o millones de dólares, han atraído a piratas informáticos tan avanzados como los que atacan bancos o gobiernos. En agosto, AnChain identificó cinco direcciones de Ethereum detrás de un ataque extremadamente sofisticado que explotó una falla en el contrato en un popular juego de apuestas para robar $4 millones.

¿Pueden los piratas ser derrotados?

AnChain.ai es una de varias nuevas empresas creadas recientemente para abordar la amenaza de piratería de blockchain. Utiliza inteligencia artificial para monitorear transacciones y detectar actividades sospechosas, y puede escanear códigos de contratos inteligentes en busca de vulnerabilidades conocidas.

Otras empresas, incluida ChainSecurity de Tsankov, están desarrollando servicios de auditoría basados ​​en una técnica informática establecida llamada verificación formal. El objetivo es demostrar matemáticamente que el código de un contrato realmente hará lo que pretendían sus creadores. Estas herramientas de auditoría, que comenzaron a surgir en el último año más o menos, han permitido a los creadores de contratos inteligentes eliminar muchos de los errores que habían sido fáciles de lograr, dice Tsankov. Pero el proceso puede ser costoso y llevar mucho tiempo.

También es posible utilizar contratos inteligentes adicionales para configurar recompensas de errores basadas en blockchain. Esto alentaría a las personas a informar fallas a cambio de una recompensa en criptomoneda, dice Felipe Daian , investigador de la Iniciativa para Criptomonedas y Contratos de la Universidad de Cornell.

Pero asegurarse de que el código esté limpio solo llegará hasta cierto punto. Una cadena de bloques, después de todo, es un sistema económico complejo que depende del comportamiento impredecible de los humanos, y la gente siempre buscará nuevas formas de jugarlo. Daian y sus colegas han demostrado cómo los atacantes ya han descubierto cómo para beneficiarse jugando contratos inteligentes populares de Ethereum , por ejemplo.

En resumen, si bien la tecnología blockchain se ha promocionado durante mucho tiempo por su seguridad, bajo ciertas condiciones puede ser bastante vulnerable. A veces, se puede culpar a la ejecución de mala calidad o a errores de software no intencionales. Otras veces es más un área gris: el resultado complicado de las interacciones entre el código, la economía de la cadena de bloques y la codicia humana. Eso se sabe en teoría desde el comienzo de la tecnología. Ahora que hay tantas cadenas de bloques en el mundo, estamos aprendiendo lo que realmente significa, a menudo de la manera más difícil.

esconder