Hacking Bluetooth: ni tan fácil, ni tan imposible
Después de varios años me modernicé y por fin tengo un celular que soporta la ultra conocida y usada tecnología bluetooth. Luego de jugar un rato con las opciones, la paranoia empezó a surgir y por supuesto, no pude dejar de pensar en "qué tan seguro es ésto?" (y si, siendo admin de seguridad uno se pone más y más paranoico). Así que hoy con un poco de tiempo libre, me puse a investigar el tema y encontré lo que sospechaba... hackear usando bluetooth no es extremadamente sencillo, pero no es imposible.
Lo que más me gusta de la idea es que hoy en día, prácticamente todo celular medianamente interesante, trae bluetooth incorporado, y celulares hay a montones, así que es fácil experimentar y descubrir cosas.


Definiciones

Hay varias definiciones "estándar" dando vueltas por la red sobre los distintos tipos de hacking:

bluejacking: el menos dañino de todos, yo lo consideraría algo así como un sistema para divertirnos un rato, aunque por supuesto, puede tener una funcionalidad que apeste a SPAM. Bluejacking trata sobre crear un contacto de teléfono o una tarjeta de trabajo y enviarlo a un celular a través de bluetooth. El contacto puede llamarse algo así como "te bluejackiaron" y el que lo reciba no va a entender nada. El dark side de esto, como bien dije, es el SPAM. Uno puede enviar contactos cuyo nombre sea una propaganda de algo, a todo el que pase cerca de un emisor bluetooth. Dado que se envía masivamente y nosotros no solicitamos el mensaje, es un clásico caso de SPAM.

bluesnarfing: en este caso nos encontramos con algo más peligroso. Bluesnarfing es el acto de acceder o robar información almacenada en el celular, como ser libreta de direcciones, calendarios, mensajes, imágenes, videos, lo que se imaginen. Por supuesto que nadie quiere que se metan con nuestra información >=(

bluebagging: simplemente, mi favorito. Bluebugging trata sobre controlar el dispositivo de la víctima remotamente, sin su autorización o conocimiento. De esta forma, un atacante puede potencialmente llamar al otro extremo del mundo, enviar mensajes, usar el celular como conexión "gratis" a internet, escuchar conversaciones... nuevamente, lo que se imaginen.

Algunas definiciones que no son tan comúnmente encontradas en la red, pero que son igualmente interesantes (con nombres inventados por su servidor) son:

blueDoS: ataque del tipo Dennial of Service, donde la interfaz bluetooth se torna inusable y nos gastan la batería. El ataque igualmente no es tan significativo porque se necesita estar cerca del dispositivo continuamente.

bluesniffing: utilizar un dispositivo para sniffear conexiones entre otros dispositivos. Hasta hace un tiempo esto se consideraba extremadamente complejo y que requería de hardware muy caro, pero ahora es posible.


No es tan fácil

Ahora, al leer el punto anterior, muchos se habrán asustado tanto como para no salir de sus casas llevando el celular (bueno, es entretenido pensar que se les ocurriría algo tan descabellado =D), así que para que no se vuelvan locos de paranoia (como sucede al hablar de virus), les dejo algunos datos interesantes de por qué no es tan fácil hackear dispositivos bluetooth.
Es importante destacar que las especificaciones Bluetooth son desarrolladas y licenciadas por el Bluetooth Special Interest Group (SIG), el cual se encarga de velar por la seguridad de la tecnología. Algunos de los miembros más activos en el SIG son Ericsson, Lenovo, Intel, Microsoft, Motorola, Nokia y Toshiba. Ericsson, Lenovo (antes como IBM) e Intel fueron los fundadores del SIG.

En primer lugar tenemos las limitaciones físicas:

- La limitación más importante es el corto alcance. Los dispositivos pequeños (como los celulares) tienen un alcance cercano a 10mts, y otros más grandes como las notebooks pueden llegar hasta 100mts. Como se imaginarán, 10mts es muy corta distancia, y el atacante deberá estar muy cerca de sus víctimas. Igualmente en lugares donde concurre mucha gente, como los shoppings, cafés, etc, sería relativamente fácil encontrar víctimas.

- El ancho de banda. Bluetooth cuenta con un ancho de banda de entre 723.2 Kbps y 2.1Mbps. Si bien éste ancho de banda alcanza para transmitir archivos pequeños, tardaría siglos en transmitir archivos grandes o muchos archivos. Además el ancho de banda limita el hacking por fuerza bruta.

- El usuario puede activar y desactivar la funcionalidad bluetooth. Claramente un usuario que no tiene bluetooth habilitado, no puede ser hackeado. Aunque por supuesto, muchas veces (me ha pasado), activamos la funcionalidad bluetooth para transferir hacia/desde otro dispositivo y luego olvidamos desactivarla.

Por otra parte tenemos la seguridad impuesta en los protocolos bluetooth:

- Bluetooth cuenta con cuatro modos de funcionalidad:
# Mode 1: non-secure. No se aplica ninguna medida de seguridad, los dispositivos no emplean ningún mecanismo para prevenir que otros establezcan conexiones.
# Mode 2: seguridad forzada a nivel de servicio. Se inician procedimientos de seguridad después de establecer el link LMP pero antes de que se establezca el canal L2CAP (L2CAP sería como el TCP y UDP de bluetooth).
# Mode 3: seguridad forzada a nivel de enlace. El dispositivo bluetooth debe iniciar procedimientos de seguridad antes de que se establezca el link físico.
# Modo 4: seguridad forzada a nivel de servicio, similar al modo 2, en el cual los procedimientos de seguridad se inician luego de establecer el linkeo. En este caso se utiliza Secure Simple Pairing (SSP) que simplifica el proceso de pareo y mejora la seguridad.

Son las compañías que desarrollan el dispositivo las encargadas de utilizar un modo u otro. Por supuesto, menos seguridad suele asegurar mayor facilidad de uso (un clásico). Por esto es recomendable no dejar de lado la seguridad e imponer aunque sea el modo 2 para que no nos rompan todo sin que nos enteremos.

- El usuario puede setear su dispositivo como oculto. Que un dispositivo esté oculto significa que no anda gritando contínuamente diciendo "aquí estoy! - soy BT Cell", algo que sí hace en modo visible. El modo visible facilita que otros dispositivos encuentren fácilmente al nuestro, dado que de otra forma deberían conocer la MAC con anterioridad.
Igualmente oculto no significa invisible, como acabo de decir, si alguien conoce la MAC, puede intentar acceder al dispositivo. La MAC es un identificador de 48bits de los cuales los 3 primeros bytes identifican al fabricante del dispositivo. Esto nos deja un total de 16.277.216 direcciones posibles para una marca dada. Son muchas direcciones para escanear, así que encontrar la dirección del dispositivo (debido a limitaciones de ancho de banda) podría llevar años. Si bien, algunos fabricantes suelen asignar las direcciones siguiendo alguna secuencia predecible, con lo cual se reduce el rango a escanear, siguen siendo muchas direcciones.

- Durante la comunicación entre dos dispositivos se utiliza una frecuencia de saltos de 1600 saltos/segundo, lo que permite de alguna forma evitar que un sniffer pesque una dirección MAC (las cuales, por cierto, no viajan encriptadas) y pueda seguir una conexión ajena. Cabe aclarar que los saltos son pseudo-random, así que no es imposible adivinar la secuencia.

- Si bien la comunicación entre dos dispositivos no suele contener autenticación, si hay autenticación cuando se intenta acceder a algún servicio o recurso. En algunos dispositivos suele utilizarse un PIN (passkeys) que acuerdan poner los usuarios involucrados en la comunicación. En otros casos, simplemente se le solicita al usuario autorizar la transacción.


No es imposible

Como fuí destacando en cada uno de los puntos citados en la sección anterior, todos tienen alguna falencia. Y como todo en el mundo informático, una cosa es la teoría y otra la implementación. Los fabricantes suelen cometer errores en las implementaciones dejando problemas explotables por atacantes.
Un caso interesante de falencias del fabricante es la vulnerabilidad encontrada en los modelos Nokia 6310, 6310i, 8910, 8910i, y Sony Ericsson T68, T68i, R520m, T610, Z600 (y posiblemente otros), donde robarse la libreta de direcciones es sólo cuestión de utilizar el comando obexftp, el cual es parte del estándar de bluetooth.

Por supuesto influye el factor "mi dispositivo es más fácil de usar que el tuyo", lo cual siempre acarrea que se omita algún control o se otorguen demasiadas facilidades que son aprovechables por los atacantes.
El problema más grave es que la mayoría de los celulares (hablando de celulares, NO smartphones) no traen facilidades para actualizar el firmware, por lo que una vulnerabilidad de fábrica queda impresa de por vida en miles de dispositivos.
Por otra parte, es un defecto interesante que el identificador de un dispositivo sea un nombre tipo string (cambiable fácilmente por el usuario), con lo cual un atacante que conozca el nombre de un Access Point, puede sustituirlo y engañar a quienes intenten conectarse pensando que se conectan al access point.

La mayoría de los hacks encontrados en internet requieren de ingeniería social. Es así como para lograr un bluebugging necesitaremos que el usuario acepte la recepción de un archivo. Aunque el tiempo ha dejado en claro que la gente es extremadamente susceptible a este tipo de ataques. Como lo demuestra Marek Bialoglowy en su genial artículo Bluetooth Security Review, 1 de cada 10 intentos de conexión a desconocidos fueron aceptadas! ¬ ¬

Entre las herramientas más conocidas para realizar ataques, se encuentra Super Bluetooth Hack (también conocida como BT Info) escrito en J2ME, del cual no pude encontrar mucha información sobre cómo funciona, pero algo es seguro, de hacking tiene poco dado que solo puede aprovechar vulnerabilidades en celulares viejos, y para el resto, necesita que el otro dispositivo establezca una conexión con el nuestro antes de poder hacer algo. Como cité en el párrafo anterior, la ingeniería social debe formar gran parte del ataque. En youtube pueden ver un video que muestra cómo funciona este programa.

Una herramienta más moderna es BTCrack, el cual nos permite crackear PINs y LINK-KEYs utilizando datos sniffeados en el aparejado de dos dispositivos. El PIN nos puede servir para autenticarnos ante un dispositivo que utilice un PIN hardcoded (osea, en el firmware). Por otra parte el Linkey es más útil, dado a que puede ser usado para acceder al dispositivo sin ninguna interacción del usuario. Además el Linkey nos permitirá desencriptar las tramas de datos enviadas entre los dispositivos.

Si bien, como comentaba al principio, hasta hace un tiempo sniffear una conexión bluetooth se consideraba complejo y requería hardware costoso gracias a la cantidad de saltos por segundo (1600/seg) pseudo-random entre distintas frecuencias, además de utilizar un PIN de seguridad, hace algunos meses se demostró lo contrario. Pueden leer algunos ejemplos en Construyendo tu propio sniffer bluetooth y en Sniffeando el emparejamiento bluetooth. Igualmente según comentarios que he leído, el proceso es todavía algo engorroso.

A pesar de que en la net se citan otras herramientas de hacking, la realidad es que la mayoría utilizan los protocolos estándar de bluetooth y no hacen realmente un hacking, sino que requieren nuevamente de ingeniería social para que el usuario acepte conexiones.


Acciones defensivas

Como menciona el artículo Symantec Warns Users Over Bluetooth Security, hay ciertas medidas que debemos aplicar para mantenernos relativamente seguros al utilizar esta tecnología. Las recomendaciones básicas son:

- Permanecer offline: si no estás usando bluetooth, desactivalo! Tener activada la conectividad bluetooth sin necesidad solamente implica correr riesgos innecesarios.

- Permanecer oculto: si estás usando bluetooth pero no necesitas enviar tu identificador para ser visible por otros, asegurate de que la visibilidad de tu dispositivo esté seteada a "oculto".

- Verificar transferencias entrantes: no aceptes o ejecutes archivos enviados por fuentes desconocidas a menos de que los estés esperando (como sucede con los adjuntos de los e-mails).

- Usar passwords: idealmente, utilizá un password de varios dígitos. Un PIN de 4 dígitos puede ser roto en menos de un segundo, uno de 6 llevaría cerca de 10 segundos, mientras que uno de 10 llevaría semanas.


Conclusiones

Como cualquier otra tecnología, Bluetooth tiene falencias que pueden llevar a que un atacante con experiencia y la motivación suficiente obtenga lo que desea, desde utilizar el celular de una persona para realizar llamadas de cualquier tipo, hasta robar información de contactos o mensajes de texto, lo cual puede significar un daño importante para el perjudicado. Pero como bien destaco, éste debe ser un hacker con conocimientos. La información que pude encontrar (o más bien la que NO pude encontrar) indica que más allá de herramientas simples como Super Bluetooth Hack que tiene varias limitaciones, no cualquier script kiddie puede hackear un teléfono moderno a través de bluetooth. Por supuesto que ésto no significa que debamos confiar ciegamente, dado que las falencias existen.

El ataque más factible por lejos es el bluejacking, dado que es fácilmente realizable por cualquier persona y no sería raro que en el futuro algunas empresas lo adopten como forma de SPAM.

Cabe destacar que la complejidad del protocolo (solo mirar el diagrama de capas de bluetooth hace que uno quiera pegarse un tiro) y las fallas en las implementaciones de cada fabricante son señales suficientes para pensar que todavía hay mucho por descubrir, que van a aparecer más vulnerabilidades y que los hackers estarán presentes para explotarlas. Tal es el caso de la citada herramienta BTCrack lanzada hace unos meses y que abre varias puertas, sobre todo para el sniffing.

El tiempo dirá que sucede, tal vez dentro de un tiempo salga una tecnología superior a bluetooth, todos los equipos comiencen a utilizarla y este post sirva menos que papel higiénico usado.


Algunas referencias

Guide to Bluetooth Security - Recommendations of the National Institute of Standards and Technology (Karen Scarfone, John Padgette).
Bluetooth Security Review
Type of Bluetooth Hacks and its Security Issues
Bluejacking Bluesnarfing Bluebugging Bluetoothing
Bluetomorrow - Bluetooth Security

2 comentarios:

thesmartgenius dijo...

Muy buen texto, desde el punto de vista del usuario. ;)

Gracias por la Referencia !.

Anónimo dijo...

Buen post, gracias por el comentario dejado.

Cryptex - Seguridad de la Información

http://seguridad-informacion.blogspot.com/

Publicar un comentario