Bluetooth y BLE
Bluetooth Low Energy (BLE) está en todas partes: wearables, cerraduras inteligentes, dispositivos médicos, llaves de coche, juguetes, sensores IoT. Muchos se diseñaron priorizando la facilidad y el bajo consumo sobre la seguridad, así que es común encontrar comunicación sin cifrar, autenticación débil o inexistente, y datos sensibles expuestos. Auditar BLE consiste en descubrir dispositivos, mapear sus servicios y características, y leer/escribir/interceptar lo que no debería ser accesible.
Conceptos BLE
Sección titulada «Conceptos BLE»GATT estructura de datos: Servicios -> Características -> ValoresCaracterística un dato leíble/escribible/notificable (p. ej. "estado de la cerradura")MAC dirección del dispositivo (a veces aleatorizada)Advertising tramas que el dispositivo emite para anunciarsePairing/Bonding emparejamiento (con o sin cifrado/autenticación)# modos de seguridad: Just Works (sin auth, común y débil), Passkey, OOB, LE Secure ConnectionsHardware
Sección titulada «Hardware»# adaptador BLE (el integrado del portátil suele servir para empezar)# para más alcance/capacidad: dongles CSR/Nordic, Ubertooth One (sniffing avanzado)# teléfono con apps (nRF Connect) para exploración rápidaDescubrir y explorar (reconocimiento)
Sección titulada «Descubrir y explorar (reconocimiento)»# escanear dispositivos cercanoshcitool lescan ; bluetoothctl -> scan on# explorar servicios y características (GATT)gatttool -I -b <MAC> # modo interactivo# o herramientas modernasbettercap -> ble.recon on ; ble.enum <MAC># apps: nRF Connect (Android/iOS) -> ver y escribir características cómodamenteMapea qué servicios/características expone el dispositivo y cuáles permiten lectura/escritura/notificación.
Vectores de ataque
Sección titulada «Vectores de ataque»# leer/escribir características sin autenticacióngatttool -b <MAC> --char-write-req -a <handle> -n <valor># -> abrir una cerradura, cambiar un ajuste, enviar un comando no autorizado# replay: capturar un comando legítimo (sniffing) y reenviarlo# falta de cifrado -> sniffing del tráfico BLE revela comandos/datos# Just Works pairing -> MITM del emparejamiento# fuzzing de características -> provocar fallos/comportamientos inesperados# dispositivos que exponen todo sin ninguna autenticación (muy común en IoT barato)El patrón recurrente: una característica que ejecuta una acción sensible (abrir, encender, cambiar config) sin comprobar autenticación → cualquiera en rango la invoca.
Sniffing e interceptación
Sección titulada «Sniffing e interceptación»# capturar tráfico BLE (requiere hardware que soporte sniffing)Ubertooth One + ubertooth-btle ; nRF Sniffer (Wireshark)# analizar el emparejamiento y los comandos en claro# MITM de BLE: GATTacker, BtleJuice (proxy entre app y dispositivo)Para la defensa
Sección titulada «Para la defensa»- LE Secure Connections con emparejamiento autenticado (Passkey/OOB), no “Just Works” para acciones sensibles.
- Cifrar la comunicación y autenticar los comandos a nivel de aplicación (no confiar solo en el pairing).
- No exponer características sensibles sin autenticación; validar quién escribe.
- Protección anti-replay (nonces, contadores); rotación de claves.
- Aleatorización de MAC para privacidad; mínima superficie en advertising.
Checklist de prueba
Sección titulada «Checklist de prueba»- Hardware BLE y herramientas (bluetoothctl/gatttool/nRF Connect)
- Descubrir dispositivos y mapear GATT (servicios/características)
- Leer características sin autenticación
- Escribir características sensibles (abrir/comando) sin auth
- Sniffing del tráfico (¿sin cifrar?) y replay de comandos
- Modo de emparejamiento (Just Works vs autenticado)
- MITM del emparejamiento (GATTacker/BtleJuice)
- Blue: ¿LE Secure Connections, auth a nivel de app, anti-replay?