-
No lo divulgaron antes porque los propietarios de nodos no actualizaban el software.
-
La vulnerabilidad, según la información disponible, nunca fue explotada.
Se detectó entre junio y julio de 2018 y se preservó con discreción… hasta ahora. Mientras los hodlers de Bitcoin (BTC) estaban preocupados por la baja de su precio a USD 6.000 y mientras los periodistas relataban los detalles del hackeo al exchange Coinrail, los tres héroes de esta historia buscaban con urgencia soluciones para la vulnerabilidad DDoS grave que habían detectado en Bitcoin Core.
Braydon Fuller y Javed Khan publicaron este 9 de septiembre un informe en donde detallan qué fue lo que encontraron hace dos años y cómo el desarrollador Matt Corallo logró parchar el código de Bitcoin Core para evitar consecuencias que podrían haber sido desastrosas.
“Había una vulnerabilidad de denegación de servicio que podía consumir recursos de memoria de forma descontrolada y que era fácilmente explotable”, explicaron. Esta vulnerabilidad, que podía ser un vector de ataque sobre los nodos, existía en el código de red de tres implementaciones de Bitcoin y en varias cadenas alternativas.
Un ataque de denegación de servicio (también llamado DDoS, por sus siglas en inglés) causa que la red quede inaccesible para los usuarios legítimos. Usualmente provoca la pérdida de usabilidad de la red por consumir excesivos recursos.
No solo Bitcoin Core se vio afectado
En esta vulnerabilidad se vieron afectadas Bitcoin Core, Bcoin (una implementación de nodo completo escrita en JavaScript) y Btcd (una implementación de nodo completo en Google Go). También, hasta donde saben, cadenas alternativas como Litecoin, Namecoin y Decred, por derivar de Bitcoin, fueron susceptibles.
“El ataque puede ser realizado por un par que envía rápidamente múltiples mensajes de transacciones inv con hashes aleatorios, uno por debajo del máximo en 49.999 elementos y nunca enviando los datos de transacción correspondientes”, indica el informe. Se refiere, con “transacciones inv”, al mensaje que se emite cuando se envía un nuevo bloque o transacción.
Si este ataque se escala y, en vez de hacerlo con un único par se efectúa con varios, se puede producir entonces la denegación del servicio. “La memoria crecería tan rápido como sea posible enviar datos al nodo, hasta que se bloquee o bloquee la máquina en el disco de intercambio”, explicaron.
Según la información que tienen, la vulnerabilidad jamás fue explotada y ya no puede explotarse en la mayoría de los nodos, ya que desde hace dos años se encuentra parchada. Aun así, cualquiera que use software más antiguo podría sufrir este tipo de ataques, por lo que se recomienda siempre actualizar el software de Bitcoin a las últimas versiones.
Teniendo en cuenta que la vulnerabilidad afectó a las versiones 0.16.0 y 0.16.1 de Bitcoin Core, pudo verificarse al momento de redacción de este artículo que quedan 124 nodos (esto es 1,62% del total) que, por seguir ejecutando estas versiones, son susceptibles de sufrir este ataque.
Fue una falla grave
A esta vulnerabilidad se le asignó un nivel de gravedad de 7,8 en una escala del 1 al 10. Esto implica que fue una falla grave.
A todo esto, cabe preguntarse el porqué de la demora en dar a conocer lo ocurrido. Fuller aclaró que fue porque los operadores de nodos tardaron más de lo esperado en actualizarse. En cambio, otras vulnerabilidades “de bajo impacto”, se dieron a conocer de manera inmediata.