Vulnerabilidades conocidas en estándar Bluetooth
BR/EDR
BLE
A lo largo de la historia del estándar de Bluetooth se han identificado problemas de seguridad y que han dado lugar a vulnerabilidades. Los dispositivos con capacidades Bluetooth raramente implementan unicamente la última versión del estándar, sino que por compatibilidad proporcionan soporte a versiones anteriores que pueden tener problemas de seguridad no resueltos.
Al igual que con las vulnerabilidades en el controlador y en la pila, se ha de verificar qué vulnerabilidades del estándar afectan al dispositivo analizado.
También ha de tenerse en cuenta que las especificaciones de Bluetooth tienen un ciclo de vida anunciado por el Bluetooth SIG. Es importante que la version de la especificación de Bluetooth utilizada vaya a tener soporte durante el ciclo de vida del producto ya que, de aparecer nuevas vulnerabilidades en el estándar, estas no podrán ser solucionadas.
Descripción del proceso
En primer lugar se debe identificarse cuál es la versión del estándar de Bluetooth soportada por el dispositivo. La versión implementada del estándar puede ser obtenida de diferentes fuentes:
- Inspección de los paquetes de una conexión en la capa
Link Layer
o capa de enlace (LMP
oLL
) en búsqueda de paquetesLMP_VERSION_REQ
,LMP_VERSION_RES
yLL_VERSION_IND
. - Solicitud de datos de versión al dispositivo a través del mandato HCI
Read remote version
. - Inspección de información del dispositivo: los dispositivos como los teléfonos inteligentes suelen especificar la versión de Bluetooth entre sus características.
- Búsqueda para obtener la información pública del dispositivo: los modelos de dispositivo, en ocasiones, indican la versión de Bluetooth que implementan.
- Solicitud de datos al fabricante.
Ha de tenerse en cuenta que la información provista en Internet puede estar desactualizada y conviene contrastarlo, siempre que sea posible, con la información que proporcione el dispositivo.
La enumeración de vulnerabilidades generalmente puede realizarse con búsquedas en bases de datos de vulnerabilidades o en motores de búsqueda de propósito general.
La comprobación del Status de la versión de la especificación para verificar su ciclo de vida puede consultarse comúnmente en la lista de documentos del Bluetooth SIG.
Listado de las especificaciones más comunes y su estado en Mayo de 2023:
Versión | Status | Fecha de obsolescencia (Deprecation) | Fecha de retirada (Withdwawal) |
---|---|---|---|
Core Specification 4.0 | Withdrawn | 28/01/2019 | 01/02/2022 |
Core Specification 4.1 | Withdrawn | 28/01/2019 | 01/02/2023 |
Core Specification 4.2 | Adopted | 01/02/2026 | 01/02/2031 |
Core Specification 5.0 | Adopted | 01/02/2027 | 01/02/2032 |
Core Specification 5.1 | Adopted | 01/02/2029 | 01/02/2034 |
Core Specification 5.2 | Adopted | 01/02/2030 | 01/02/2035 |
Core Specification 5.3 | Adopted | 01/02/2032 | 01/02/2037 |
Core Specification 5.4 | Adopted | 01/02/2033 | 01/02/2038 |
Recursos relacionados
A continuación se listan recursos que pueden ser de utilidad para la obtención de la versión de Bluetooth soportada por un dispositivo bluetooth:
ID | Descripción |
---|---|
BSAM-RES-04 | Sniff de una conexión Bluetooth |
BSAM-RES-05 | Captura de una conexión Bluetooth |
BSAM-RES-06 | Modo depuración en controladores Bluetooth |
BSAM-RES-07 | Envío y recepción de mensajes HCI |
Para la enumeración de vulnerabilidades pueden ser de interés los siguientes recursos:
ID | Descripción |
---|---|
BSAM-RES-03 | Búsqueda en bases de datos de vulnerabilidades |
Caso de ejemplo
Se captura una conexión establecida entre el PC y un dispositivo usando la técnica BSAM-RES-05 (Captura de una conexión Bluetooth). Esta captura se ha realizado con los modos de depuración de una tarjeta Cypress habilitados siguiendo la técnica BSAM-RES-06 (Modo depuración en controladores Bluetooth). De este modo, se capturan paquetes de la capa Link Layer
, en este caso de BR/EDR.
Entre los paquetes intercambiados se encuentra un paquete LMP_VERSION_RES
como se muestra a continuación.
El paquete diseccionado cuenta con un campo VersNr
con valor 0x0b
. Consultando el documento Bluetooth Assigned Numbers Rev. 2022-12-20 en la sección Section 2.1 (Core specification versions), se concluye que el dispositivo analizado soporta Bluetooth v5.2.
Tras una búsqueda siguiendo la técnica BSAM-RES-03 (Búsqueda en bases de datos de vulnerabilidades) se encuentran tres vulnerabilidades en esta versión del estándar de Bluetooth:
Para cada una de las vulnerabilidades encontradas se ejecuta una prueba y se comprueba que el dispositivo analizado no acepta claves de baja entropía por lo que se considera no vulnerable a KNOB. Sin embargo, el dispositivo permite la autenticación de dispositivos con identidades clonadas por lo que se considera vulnerable a BIAS y a BlueTrust. Se notifica este problema de seguridad al fabricante del controlador para obtener una actualización de firmware que permita solucionar las vulnerabilidades encontradas.
Referencias externas
- Bluetooth Core V5.3, Vol. 6, Part B, Section 2.4.2.13 - LL_VERSION_IND
- Bluetooth Core V5.3, Vol. 2, Part C, Section 4.3.3 - LMP version
- Bluetooth Core V5.3, Vol. 4, Part E, Section 7.1.23 - Read Remote Version Information command
- Bluetooth Core V5.3, Vol. 4, Part E, Section 7.7.12 - Read Remote Version Information Complete event
- Bluetooth Assigned Numbers Rev. 2022-12-20, Section 2.1 - Core specification versions