Menú principal

miércoles, 18 de mayo de 2011

Busca las diferencias en las direcciones inalámbricas - WiFi y BlueTooth - de tus dispositivos Apple (2 de 2)

Durante los últimos tres años, en numerosas conferencias y eventos de seguridad, he promulgado lo importante que es que los fabricantes conozcan las implicaciones de seguridad que tiene la integración de diferentes tecnologías en un mismo dispositivo. En concreto, la integración de Bluetooth y Wi-Fi en un mismo dispositivo móvil puede verse afectada por un desconocimiento de los principios de seguridad de cada una de estas tecnologías inalámbricas. La situación no ha cambiado mucho en todo este tiempo… y tras plantearos que hicierais vosotros las pruebas en la primera parte de este artículo, toca analizar la situación en Apple.

Implicaciones de seguridad en las direcciones Bluetooth y Wi-Fi

La tecnología Bluetooth emplea las direcciones hardware de los dispositivos, o BD_ADDR (Bluetooth Device ADDRess), como algo secreto, es decir, un elemento que una vez conocido abre la puerta para que otros dispositivos puedan establecer conexiones. Los dispositivos Bluetooth pueden configurarse en dos modos, visible u oculto, y la diferencia principal entre ambos es sí el dispositivo revela cuál es su dirección BD_ADDR cuando otros dispositivos preguntan quién anda cerca (operación conocida como Bluetooth inquiry).

Adicionalmente, la BD_ADDR del maestro (junto a otros elementos, como información del reloj) son empleados para derivar el patrón de saltos de frecuencia (utilizado en FHSS, Frecuency Hopping Spread Spectrum) que se empleará para la comunicación. Si se conocen esos valores también es posible utilizar un sniffer Bluetooth para capturar la comunicación.

Debido a que la BD_ADDR debe ser protegida, ésta no es enviada en las cabeceras de las tramas Bluetooth (802.15), sino que en su lugar se envía un digito (0-7) que identifica a los dispositivos. Este dígito de 3 bits se denomina Active Member Address (AMA) y lo obtienen los dispositivos al unirse a la red Bluetooth (o piconet).

Sin embargo, la tecnología Wi-Fi, al igual que la mayoría de los protocolos de comunicaciones, no emplea ningún mecanismo de protección, o confidencialidad, sobre las direcciones hardware de los equipos. Es posible obtenerlas mediante una sencilla y rápida captura de tráfico, ya que las direcciones de los equipos - origen y destino, y del punto de acceso, o repetidores, en WDS -, se incluyen sin cifrar en las cabeceras de todas las tramas Wi-Fi (802.11), independientemente de los mecanismos de seguridad y cifrado empleados (WEP, WPA, WPA2, etc).

Por tanto, en el caso de existir alguna relación entre las direcciones Bluetooth y Wi-Fi de un dispositivo móvil, es trivial para un atacante capturar el tráfico Wi-Fi de la víctima y derivar inmediatamente la dirección Bluetooth. A partir de la dirección Bluetooth, el atacante podrá comunicarse con el dispositivo e intentar identificar la ausencia de mecanismos de seguridad en Bluetooth - autentificación o autorización - o explotar vulnerabilidades a través de ese interfaz.

Peculiaridad en la asignación de direcciones para interfaces inalámbricos en Apple

En este caso, como indicábamos en la primera parte de este artículo, le ha tocado el turno a Apple - sin excluir a otros fabricantes -, ya que desde las primeras versiones de iPhone (ej. 2G) Apple utiliza un mecanismo desde fábrica de asignación de direcciones hardware secuencial para los interfaces inalámbricos de sus dispositivos y, desafortunadamente, esta inapropiada práctica no ha cambiado con los últimos modelos (ej. iPhone 4 o iPad 2). Las direcciones Bluetooth y Wi-Fi de los dispositivos Apple son asignadas secuencialmente, por lo que sólo cambia el último byte:

Dispositivo: iPhone 3G
BD_ADDR: 00:21:E9:AB:CD:01
Wi-Fi MAC: 00:21:E9:AB:CD:02

Tras realizar un estudio más exhaustivo sobre un conjunto de algo mas de una docena de dispositivos Apple, hemos llegado a las siguientes conclusiones:

• Los equipos Apple de “sobremesa” (MacBook, MacBook Pro, iMac…) no utilizan la asignación secuencial de direcciones, no siendo posible derivar la dirección Bluetooth a partir de la dirección Wi-Fi, pese a que ambas pertenecen a rangos asignados a Apple por el IEEE. En estos equipos puede coincidir el cuarto byte de la dirección Bluetooth y Wi-Fi. Algunos rangos empleados coinciden con los de los iPad, por ejemplo, C8:BC:C8.

• Los dispositivos móviles de Apple utilizan direcciones secuenciales, presentándose dos escenarios distintos, y una excepción encontrada:

 - La dirección Bluetooth es la anterior a la dirección Wi-Fi, caso común en iPhone 2G, 3G, 4 o iPad2.

 - La dirección Bluetooth es la posterior a la Wi-Fi, caso común en iPad o MacBook Air.

 - Excepción: Hemos identificado, al menos, un iPad donde la dirección Bluetooth es la anterior a la dirección Wi-Fi.

• Habitualmente, Apple emplea rangos de direcciones según el tipo del dispositivo (con excepciones, como la de los equipos de sobremesa y los iPads; ver primer punto).

Esta última conclusión tiene especial relevancia desde el punto de vista de seguridad, ya que mediante una sencilla captura del tráfico Wi-Fi sería posible identificar el tipo de dispositivo de Apple si dispusieramos de una base de datos que clasificara los dispositivos Apple en función de la parte del fabricante de su dirección hardware (primeros tres bytes). ¿Sería interesante disponer de esta base de datos? (Envíame un mail a raul en taddong.com).

Por otro lado, si me tocara realizar la asignación de direcciones, aunque por seguridad emplearía aleatoriedad, usaría un patrón secuencial consecutivo, es decir, empezaría (por ejemplo para iPhone) por la dirección :00 para Bluetooth y :01 para Wi-Fi, y así sucesivamente, hasta llegar a :0E y :0F. Podemos confirmar que Apple no sigue ese esquema, ya que hemos visto dispositivos dónde la direcciones Bluetooth y Wi-Fi son la :_9 y :_A respectivamente, y otros donde son la :_A y :_B, por lo que parece que no empiezan siempre desde cero consumiendo direcciones de dos en dos hasta completar las 16 direcciones posibles de cada carácter hexadecimal de la dirección.

Conclusiones

En resumen, Apple asigna las direcciones empleando un criterio que no parece ser muy homogéneo, salvo en su secuencialidad, haciendo vulnerable a los dispositivos móviles y facilitando conocer la dirección Bluetooth a partir de la dirección Wi-Fi.

Si encuentras algún dispositivo dónde las reglas mencionadas previamente (dirección anterior o posterior según el tipo de dispositivo) no se cumplen, no dudes en añadirlo a los comentarlos de esta entrada de blog, con el objetivo de identificar con más exactitud el patrón empleado por Apple y disponer de más ejemplos.

Una última recomendación de seguridad… si no estás usando Bluetooth o Wi-Fi en tu dispositivo en un momento determinado, deshabilita estos interfaces y habilitalos únicamente cuando hagas uso de ellos. ¡Tú bateria y el planeta también te lo agradecerán! ;-)

Raúl Siles
Investigador de Seguridad en Taddong Security

Los días 1, 2 y 3 de Junio Taddong dará un Curso de Seguridad GSM/UMTS (2G/3G) en Valencia

3 comentarios:

  1. En mi iPhone 4 sí que son consecutivas las direcciones físicas :(

    ResponderEliminar
  2. En mi Ipod Touch 4th Gen no son consecutivas. Solamente coinciden los 3 primeros bytes.

    ResponderEliminar
  3. Creo que hay una cosa que no se comenta. Se habla de vulnerabilidad pero creo que Apple lo sabe de sobra y esa es una de las razones por las que su Bluetooth esté tan capado en los dispositivos iOS. Si fuera tan alarmante como lo pintas, ¿venderían esa burrada de cacharros? Éstos artículos están muy bien para gente que, y por supuesto me incluyo, nos gusta investigar y manipular estas cosas pero no creo que supongan una amenaza real.

    Por cierto, cojonuda la charla que dio Taddong en la RootedCON 2011, me han demostrado la mitad de mi PFC!

    ResponderEliminar

Artículos relacionados

Otras historias relacionadas

Entradas populares