El 19 de marzo del 2014, el grupo de desarrolladores del cliente oficial Bitcoin y su interfaz BitcoinQt liberaban la versión 0.9.0 del código que traía varias actualizaciones y correcciones mayores -siendo la más conocida el cambio a menor tarifa en las transacciones- aunque el cliente seguía (y sigue) siendo una versión beta oficialmente. Tan sólo 3 semanas después, el 9 de abril, el grupo lanzaba una actualización clave de seguridad con el aviso generalizado y urgente de actualizar a la versión 0.9.1 liberada ese día. ¿Qué pasaba? ¿Qué tenía que ver con Bitcoin?
Pocos días después del lanzamiento de la versión 0.9.0 comenzó a escucharse por internet el rumor de un terrible bug que afectaba a las más cruciales aplicaciones de internet, ahora conocido como ‘Heartbleed bug’. El fallo afectaba a una implementación de código libre del protocolo SSL, conocida como OpenSSL, esencial en el desarrollo de aplicaciones para la red en las que se usa el envío de información encriptada. Dada la extensión del uso de dicha implementación, la gravedad del fallo era masiva, hasta el punto de que algunos personajes han hablado de ello como ‘el fallo más grave que ha tenido internet a día de hoy y de forma global’. Y Bitcoin sólo era uno más de los programas que utilizan OpenSSL.
Sin embargo, el ‘Heartbleed bug’ no es un fallo encontrado hace poco tiempo; se conoce desde hace algo más de dos años de forma pública (seguramente algunos meses más en los círculos más cerrados donde se genera y descubre esta información) pero no había sido considerado de suficiente entidad por la comunidad -o se consideraba difícil de explotar- hasta el final del mes de marzo que parece que cambió su consideración hasta lo que es ahora -aunque las grandes compañías fabricantes de hardware ya lo habían parcheado antes porque no era ningún secreto-.
¿En qué consiste? En este mundo de transacciones electrónicas, de grandes cantidades de datos y altas velocidades, casi todo viaja con alguna clase de encriptación para prevenir posible ataques por parte de intrusos en la comunicación entre dos partes. Para manejar por defecto esa encriptación en ciertas comunicaciones (en este caso las que viajan en el marco SSL o Secure Sockets Layer), el protocolo tenía un sistema que mantenía en una especie de “stand by” la comunicación entre dos ordenadores -para poder reactivar rápidamente la comunicación entre ambos- mediante un formato de petición y respuesta conocido como ‘Heartbeat’ o ‘Latido’. Este formato permite realizar una “pregunta” -en teoría corta- al servidor para ver si sigue estando conectado, contestando el servidor a dicha pregunta. El fallo es que los límites de respuesta quedaban abiertos hasta 64K de información y que el protocolo que permitía esa respuesta sin control volcaba los datos existentes en ese momento en la memoria del procesador.
Para la mayoría de las personas esto no dice mucho, pero equivale a poder entrar en “todo lo que un servidor procesa” en bloques de 64K de información, precisamente cuando se está ejecutando un servicio específico de seguridad y encriptación para comunicación en red. De esos datos se puede obtener todo tipo de información, incluso información que se encontraba en proceso pero no se trabajaba para ser enviada a través de la red. El agujero de seguridad es innegable y su amplitud da para esperar algunas desagradables sorpresas como hackeos y robos de información en las próximas semanas y meses.
Por seguridad: si tienes abierto tu cliente BitcoinQt en una versión anterior a la 0.9.1, ciérralo primero, ve a la página oficial de BitcoinQt y actualízate a dicha versión, ya que es uno de los servicios que son vulnerables a ese bug. De igual forma, se recomienda cambiar todo aquello que viaja en ese tipo de protocolo habitualmente y que es más probable que se haya visto afectado: contraseñas y comunicaciones presuntamente seguras en servicios como el email o las redes sociales.
Nadie piensa que un agujero de seguridad vaya a ser usado contra su persona, hasta que le ocurre la primera vez. Cada cuál valore cuánto puede perder y cuántos problemas evitarse con unos minutos de mantenimiento de seguridad.