“Unhackable” – El orgullo precede a la caída

M.R 23/08/2018

"De todos los métodos elaborados y sofisticados de hoy en día para hacer las billeteras seguras y fáciles de usar, seguramente ninguno es tan épico como el de la nueva billetera Bitfi. Varios de mis competidores han sido pioneros en métodos innovadores para proteger las claves privadas, pero Bitfi hizo todo lo posible para garantizar que la clave privada nunca pueda obtenerse por medios ilícitos. Ninguna otra billetera de hardware ha sido construida hasta este nivel de sofisticación."

Esta fue la declaración de John McAfee en el lanzamiento de la billetera física (hardware wallet) Bitfi. Según la compañía Bitfi es “una nueva billetera de hardware totalmente inhackeable con tecnología de nueva generación diseñada para impulsar la adopción masiva de activos digitales”.

En los últimos días, McAfee, quien fundó McAfee Antivirus (dejó la empresa en 1994) y la compañía Bitfi han causado furor en las redes sociales, tanto por sus afirmaciones descabelladas como por sus formas de descartar cualquier crítica. Preparen las palomitas y vamos por pasos:

¿Qué es un Hardware Wallet? 

Existen diferentes modos de guardar o almacenar criptomonedas: Los Hot wallets son billeteras que pueden instalarse en diferentes dispositivos, ya sean smartphone u ordenadores, así como también pueden alojarse en sitios web de terceros; los Paper wallets son documentos que contienen todos los datos necesarios para generar cualquier número de claves privadas de Bitcoin, formando un monedero de claves; y los Hardware Wallets, dispositivos que se mantienen desconectados de Internet, y cuyo propósito es almacenar las claves privadas necesarias para poder operar con Bitcoins u otras criptomonedas.

La función de un monedero virtual offline es mantener fuera de línea las claves privadas necesarias para firmar las transacciones del usuario. En el momento de la operación conectamos el dispositivo con el smartphone o la computadora y es entonces cuando el software del fabricante envía la transacción al dispositivo externo para que sea firmada y devuelta. De esta forma las claves permanecen seguras en el dispositivo y la operación es considerada segura.

En lugar de usar una semilla mnemónica de 24 palabras como la mayoría de las billeteras, la billetera Bitfi usa una frase secreta única, generada por la CPU, que existe el tiempo suficiente para aprobar la transacción. Los fabricantes afirman que esta frase creada por el usuario es "imposible de adivinar por los demás, pero es fácil de memorizar para el titular de la billetera". Bitfi Wallet permite a los titulares de billeteras almacenar una cantidad ilimitada de fondos, utilizando un “algoritmo patentado” y de “código abierto” que calcula la clave privada a partir de la frase secreta única del usuario. Según el fabricante “la clave privada solo existe por una fracción de segundo, el tiempo suficiente para aprobar la transacción y nunca se almacena en ninguna parte”.

La (in)seguridad de billeteras físicas

La elección de una billetera digital es una decisión fundamental para los que entran en el mundo de las criptomonedas y la seguridad es un aspecto determinante en el momento de elegir una buena billetera digital.

Ledger y Trezor son algunas de las marcas más conocidas del mercado y ambos han tenido graves vulnerabilidades: Saleem Rashid, un programador de 15 años descubrió un fallo en la popular billetera de hardware Ledger que permitía obtener PINs secretos antes o después de enviar el dispositivo. Los agujeros, que Rashid describe en su blog, permitieron tanto un "ataque de la cadena de suministro" - es decir, un ataque que podría comprometer el dispositivo antes de que se enviara al cliente- como otro ataque que podría permitir el robo de claves privadas después de que el dispositivo fuese iniciado.

En 2015, Jochen Hoenicke pudo extraer la clave privada de un TREZOR utilizando una técnica de análisis de energía. En la Defcon 25, Josh Datko y Chris Quartier revelaron vulnerabilidades en el chip de STMicroelectronics. Aquí explican cómo no solo extraen el seed (semilla) de 24 palabras sino también el código PIN y la etiqueta del dispositivo. Con esta información se podría hacer una copia exacta del dispositivo.

Investigando sobre estos ataques y las vulnerabilidades graves en dispositivos de diferentes marcas, rápidamente nos damos cuenta de que las carteras de hardware no son tan seguras como se podría pensar en un primer momento, más si cabe teniendo en cuenta que su propósito es mejorar la seguridad. Más sorprendente resulta la arrogancia mostrada por los representantes de Bitfi ante las críticas y advertencias de la comunidad hacker.

Las afirmaciones de Bitfi

“A diferencia de otras billeteras, la billetera Bitfi no se puede alterar. Si alguna vez se pierde, se la roban, se desmonta y se analiza de manera forense, no se pueden recuperar las claves privadas, lo que hace que la billetera sea segura para ser comprada a cualquier persona dentro de la red de distribuidores de distribución autorizados. Debido a que el algoritmo Bitfi es completamente de código abierto, los usuarios pueden obtener fácilmente sus claves privadas sin depender de terceros, incluido Bitfi. Además, en lugar de tener que acceder a cada moneda desde carpetas individuales o billeteras múltiples, los usuarios pueden ver y controlar todas sus monedas y activos digitales en un solo lugar a través del tablero de Bitfi.”

En dos ocasiones McAfee y la empresa de Bitfi retaron a investigadores de todo el mundo ofreciendo bounties (recompensas para aquellas personas que detectaran fallos graves de seguridad). En un tweet McAfee ofreció $100.000 para aquel que consiguiese hackear el dispositivo. Tardaron una semana en conseguir acceso completo al sistema (root access).

El fabricante Bitfi aumentó la apuesta a $250.000 en algo que parece ser más un truco de marketing que un bug bounty en condiciones. Aunque el alcance del reto es realmente pequeño y poco realista, siguieron con más hackeos:

La afirmación de que algo es inhackeable llama la atención de cualquier profesional de seguridad. Nada es 100% seguro. No es algo binario que se puede dividir en: seguro/no seguro. Hay una gran área gris basado en el perfil de riesgo y el modelo de amenaza. Asegurar hardware correctamente no es una tarea fácil, porque la superficie de ataque es enorme.

Vamos a desmontar unas cuantas de las afirmaciones sobre el dispositvo:

En referencia a la afirmación de Bitfi sobre que su dispositivo es “inalterable” y no posee memoria, los investigadores de Pentest Partners encontraron un chip con memoria no volátil. El firmware no está firmado y como bien dice @cybergibbons: “No se debería poder instalar y ejecutar código arbitrario en un dispositivo seguro sin reemplazar el hardware.” Cosa que sí se puede hacer en un Bitfi.

La memoria está en el blockchain, entonces no tenemos nada que hackear. No tenemos memoria para mirar; no hay nada en la billetera que alguien pueda usar para hackearlo,” afirma McAfee en un video. Por supuesto, hay software en él. Está ejecutando un sistema operativo, tiene una CPU, etc., se trata de un móvil sin tarjeta SIM. De hecho, el dispositivo posee 8GB de memoria on-board y 1GB de RAM.

Saleem Rashid mostró que la clave y el salt se encuentran en la RAM y pueden ser recuperadas incluso después de 17 horas:

“[] Sí, puedes almacenar todo el dinero en tu cerebro, nunca tener que almacenar claves, no tienes que crear copias de seguridad en papel, nunca más tener que descargar o instalar nada […]” afirman los creadores en un tweet. Aunque dicen que Bitfi no es un brain wallet (lo que consiste en recordar una contraseña compleja, un truco que permite a cualquier persona tener millones de dólares en efectivo digital solo en su cerebro, sin necesidad de guardar ningún registro en una computadora), sí confirman que “con Bitfi puedes almacenar TODOS tus activos con una frase. Entonces puedes tener 50 monedas diferentes, todas bajo una frase”.

Sin embargo, resulta que la mente es un lugar sorprendentemente vulnerable para guardar la clave que permite acceder a los activos. Ryan Castellucci publicó una prueba de concepto llamado Brainflayer que se aprovecha de esta vulnerabilidad. El problema, dice Castellucci, es que los humanos no eligen contraseñas fuertes y aleatorias tan bien como piensan que lo hacen. Y cualquier hacker puede adivinar pacientemente millones y millones de contraseñas, convirtiéndolas en claves privadas y probándolas en cada dirección de bitcoin en la cadena de bloques, es decir, el registro público de todas las ubicaciones de bitcoin. Incluso cuando un usuario de bitcoin cree que ha elegido una frase de contraseña suficientemente fuerte para su billetera cerebral, Castellucci dice que a menudo no puede hacer frente a los recursos de ladrones motivados por una recompensa instantánea en efectivo

En un primer momento Bitfi afirmaba que “si alguna vez se pierde un dispositivo o incluso si Bitfi ya no está en el negocio, puede recuperar fácilmente sus fondos utilizando nuestro código de código abierto.” Aunque más tarde han aflojado sus declaraciones e incluso han editado la declaración de su página web. Lo único “abierto” que hemos podido encontrar ha sido este whitepaper en el cual explican algunos conceptos básicos del algoritmo usado.

Afirmación 5 “La pantalla del dispositivo tiene un ángulo de visión estrecho para prevenir ataques de
shouldersurfing”.

 

Un fan de Bitfi tuiteó una imagen de su Bitfi destacando un supuesto ángulo de visión estrecho que lo protege de la vista de terceros. Desafortunadamente, la foto muestra tanto el salt como la frase de contraseña cuando la escribe, pero solo debería mostrar **********s:

La historia mejora con el tiempo

Para cualquiera que entiende algo de seguridad y sabe que es el modelado de amenazas quedó bastante claro que Bitfi no es en ningún caso un dispositivo seguro. Quedó demostrado que es vulnerable a ataques de cadena de suministro, de shouldersurfing, de Man-in-the-middle, de Keylogging, y a ataques tipo Evil Maid.

En definitiva: en cuestión de pocos días los investigadores han sido capaces de lo siguiente:

  •  Rootear un dispositivo.
  • Interceptar toda comunicación SSL entre dispositivo y servidores.
  • Firmar una transacción Bitcoin bajo estas condiciones.
  • Interceptar clave y seed y mandarlo a otra máquina bajo estas condiciones.
 

Además, @cybergibbons encontró SSID y contraseña de Wifi en uno de los dispositivos. Un integrante del equipo de McAfee aparentemente huyó tras haber robado fondos. Bitfi tuvo que despedir a uno de sus empleados/community managers, porque insultó e incluso llego a amenazar usando la cuenta oficial de la empresa. En los PWNIE Awards (ceremonia de premios anual que celebra los logros y fallas de los investigadores de seguridad y la comunidad de seguridad en la conferencia BlackHat) Bitfi gano la categoría de “lamest vendor response”.

La recompensa resulta ser un farol, diseñada para reclamar que no han sido hackeados porque la misma no se ha reclamado. En realidad, la recompensa cubre un solo ataque: enviar el dispositivo (que tiene una contraseña fuerte) a través de UPS (que lleva varios días) a un atacante. Esto no emula el mundo real, ni siquiera se acerca.

Quizás John McAfee debería haberse acordado de sus propias palabras “No hay nada que no es hackeable” (Entrevista NBC Bay Area, 2016) antes de haber iniciado esta contienda. Que la historia sirva de ejemplo. Nada es 100% seguro, TODO es hackeable.