jueves, marzo 12, 2020

Hacking Things with Bluetooth Low-Energy (BLE)

Llegó la edición número XI de RootedCON. Recientemente conté que es una semana especial, llena de muchas horas intensas entre formación y charlas, preparación, exposición, lugar de encuentro con viejos y nuevos amigos. Este año volvía a dar una charla, que llamamos "Hackeando el mundo exterior a través de BLE BlueTooth Low-Energy", en esta ocasión junto a mi compañero Álvaro Nuñez.

Figura 1: Hacking Things with Bluetooth Low-Energy (BLE)

La temática de la charla era BLE o Bluetooth Low-Energy, sobre el que en este último año hemos trabajado y echado horas. Una de las herramientas donde se fue integrando el trabajo fue HomePWN. La charla tenía una estructura y un objetivo claro. El objetivo era mostrar qué es BLE, que lo tenemos alrededor a través de muchos dispositivos con los que interactuamos en nuestro día a día, mostrar los precedentes en seguridad en BLE de los últimos años, evaluar la seguridad de tipos de dispositivos y mostrar ataques a la tecnología BLE y, por último, hablar sobre la fortificación pensando en la gente que diseña dispositivos y que necesita de BLE en éstos.

Figura 2: HomePWN en GitHub

Queríamos darle un enfoque práctico y mostrar también con qué tipo de cosas hemos estado trabajando, por lo que fuimos siendo prácticos y mostramos alguna demo que otra, incluida una en directo.

Introducción a BLE

Queríamos empezar dando a conocer los detalles técnicos más importantes de BLE para que todo el mundo entendiera su funcionamiento. De la forma más sencilla y de la forma que nos permitiera encajar después ciertas noticias o ciertos ataques con los conceptos vistos en la introducción. Conceptos cómo explicar el por qué aparece BLE, qué aporta en la tecnología inalámbrica, cuál es su ámbito de juego, es decir, cuáles son sus canales (37 de datos y 3 de anuncio), etcétera.

Figura 3: 37 canales de datos y 3 de anuncio en BLE

Además, la explicación de conceptos claves como los que siguen:
  • Access Address.
  • ¿Cómo se realiza el salto entre canales?
  • Channel Map
  • Hop Interval
  • Hop Increment
  • Tipos de algoritmo de salto
Tras explicar también los tipos de paquetes BLE o los tipos de cabeceras, que indican qué tipo de paquete ‘advertisement’ tenemos entre manos, nos centramos en el paquete de tipo CONNECT_REQ.

Figura 4: Salto de canales en BLE

En la captura de figura siguente se puede ver cómo tras capturar un paquete de éstos, podemos ver los conceptos que se habían presentado previamente, tanto gracias a la herramienta Btlejack, como gracias a Wireshark.

Figura 5: Paquete BLE capturado con BTLEJack y visto con WireShark

El objetivo era dar una breve introducción de diez minutos sobre los aspectos relevantes de un protocolo que está entre nosotros y que diariamente estamos utilizando. Como comenté en la sala, todos los que allí se sentaron, de una forma u otra, están utilizando diariamente esta tecnología.

Precedentes

En la parte de precedentes en incidentes de seguridad y vulnerabilidades se habló de diferentes casos:

Figura 6: Hacking los buscatodo con BLE
Figura 7: El caso del bloqueo de Xiaomi dio la vuelta al mundo
En el repositorio de CamiAlfa se puede encontrar ingeniería inversa sobre el patinete de Xiaomi. Nos encontramos con cosas curiosas, ya que podemos ver un “no se” sobre algunas acciones a las que se hicieron de ingeniería inversa.
Figura 8: Un "no sé" en el reversing del patinete de Xiaomi
  • Por último, se habló de Sweyntooth. Es una familia de 12 de vulnerabilidades, la cual se encuentra en la implementación de BLE en el SDK. Hay una serie de vendedores afectados como son: Texas Instruments, NXP, Cypress, Dialog Semiconductors, Microchip, STMicroelectronics y Telink Semiconductor.
Ataques a BLE

En el apartado de evaluación de seguridad se mostraron una serie de ataques, de los cuales se fueron comentando y explicando:
  • Sniffing: Como técnica para capturar lo que circula por el medio de compartición, en este caso, el aire.
  • Replay: La técnica de replay se explicó con una imagen de gattack.io, en la que se muestra de forma clara qué es un replay. Se hizo hincapié en que el coche no es el mejor ejemplo para BLE, pero sí un buen ejemplo de la acción de replay.
Figura 9: Ataques de Replay BLE para abrir automóviles
  • Hijacking: Es el secuestro de una conexión existente. Se hace uso del access address y del timeout para lograr el secuentro de la conexión. En la siguiente imagen se puede ver el esquema del ataque:
Figura 10: Esquema de un ataque de Hijacking BLE

En el siguiente video se puede ver un secuestro de sesión (hijack) con Btlejack. El ataque responde al esquema anterior y puede secuestrar la conexión gracias al conocimiento del access address.

Figura 11: PoC de Hijacking BLE Sessions
  • Jamming: El concepto de Jamming abarca la interferencia de la señal o generación de ruido con el objetivo de que la señal original no llegue al receptor. Esto no ocurre con la aplicación de btlejack, que utiliza más bien el esquema del hijacking, sin llegar a secuestrar la conexión, pero sí haciendo perder la comunicación.
  • MITM: En la imagen de gattack.io podemos ver un ejemplo claro y sencillo de un MITM. No hace falta mucha descripción sobre un MITM hoy en día. El esquema es sencillo: descubrimiento del dispositivo víctima. Conexión con el dispositivo víctima para que no se anuncie más. Anunciar el mismo dispositivo y redirigir los datos cuando se tenga una nueva conexión.
Figura 12: Ejemplo de ataque MITM BLE de gattack.io
  • Ataques al cifrado: En algunas ocasiones las comunicaciones van cifradas. Mostramos como poder realizar ataque sobre una captura cifrada cuando se dan ciertas condiciones. La herramienta utilizada fue CrackLE.
Figura 13 Demo de Crackle para descifrar tráfico BLE cifrado

Queremos agradecer a todas las personas que se acercaron el sábado a las 10.00 de la mañana a ver la charla y que llenaron la sala. Solo podemos deciros:

Gracias.

Autor: Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Hacking con Metasploit: Advanced Pentesting" "Hacking Windows", "Ethical Hacking", "Got Root",  “Pentesting con Powershell” y de "Empire: Hacking Avanzado en el Red Team", Microsoft MVP en Seguridad y Security Researcher en el equipo de "Ideas Locas" de la unidad CDCO de Telefónica.  Para consultas puedes usar el Buzón Público para contactar con Pablo González

Figura 14: Contactar con Pablo González

No hay comentarios:

Entrada destacada

10 maneras de sacarle el jugo a tu cuenta de @MyPublicInbox si eres un Perfil Público

Cuando doy una charla a algún amigo, conocido, o a un grupo de personas que quieren conocer MyPublicInbox , siempre se acaban sorprendiendo ...

Entradas populares