Control de acceso a servicios Bluetooth

BR/EDR

BLE

Los servicios Bluetooth definen permisos que regulan cómo puede interactuarse con ellos, incluyendo si requieren autenticación o si permiten operaciones de lectura o escritura. Para cada servicio expuesto, es necesario verificar que el control de acceso esté correctamente implementado.

Debido a que el estándar Bluetooth prioriza la interoperabilidad, algunos servicios, especialmente los definidos bajo GATT, pueden permitir acceso sin autenticación. Además, según el Feature Exchange durante el establecimiento de la conexión, un dispositivo puede requerir distintos niveles de cifrado. No todos los niveles ofrecen el mismo grado de protección, algunos servicios pueden requerir elevar el nivel de cifrado (por ejemplo, pasar de Fase 2 a Fase 3 del emparejamiento) antes de permitir el acceso.

Por ello, es esencial verificar que cada servicio esté protegido según sus requisitos de seguridad y que el nivel de cifrado configurado sea adecuado.

Descripción del proceso

Para realizar esta verificación, es necesario elaborar una lista de los dispositivos disponibles BSAM-SE-01 (Servicios SDP Bluetooth ocultos) y BSAM-SE-02 (Servicios GATT Bluetooth ocultos).

Para cada servicio expuesto, es necesario realizar una comprobación sobre qué recursos se pueden acceder y modificar. Esto requiere cierta adaptación para cumplir con los protocolos que exponen el servicio. Algunos ejemplos ilustran esta necesidad:

  • Para cualquier servicio GATT se debe verificar si los atributos se pueden leer, escribir o notificar según nuestro nivel de seguridad y autenticación. Para cada resultado se debe considerar si ese acceso es adecuado o no según los datos que expone.
  • Para cada RFCOMM, se debe verificar si un usuario puede leer o escribir en ese servicio para cada nivel de seguridad disponible en ese servicio. Se debe evaluar si los datos expuestos son adecuados para el nivel de seguridad y autenticación.
  • Para el protocolo SDP, se debe verificar si es correcto obtener acceso al servicio sin autenticación y/o cifrado a nivel de Bluetooth.
  • Es importante verificar qué funcionalidades del protocolo SMP se pueden acceder sin autenticación y/o cifrado a nivel de Bluetooth.

Recursos relacionados

Para verificar este control, los siguientes recursos pueden ser útiles:

ID Descripción
BSAM-SE-01 Servicios SDP Bluetooth ocultos
BSAM-SE-02 Servicios GATT Bluetooth ocultos

Otra documentación relacionada:

ID Descripción
Documentación Modo de conexión en Bluetooth LE

Caso de ejemplo

Se va a comprobar la correcta configuración (lectura / escritura) de los servicios GATT en un dispositivo con conectividad BLE. Las pruebas se llevarán a cabo con un ordenador que se conectará (sin autorización, sin autenticación y sin cifrado) al un dispositivo. Usaremos Wireshark con BTVS (btvs.exe -Mode wireshark) para realizar la captura de paquetes para su análisis.

El perfil GATT describe la forma en que se intercambian datos con los perfiles (Profile). En él, se definen los Profile, que agrupan un conjunto de servicios (Service). Estos Service, a su vez, están compuestos por características (Characteristic), y estas Characteristic poseen descriptores (Descriptor).

Los permisos para leer, escribir o realizar acciones específicas con cada servicio y característica depende de la autorización, autenticación y cifrado. Estos requisitos (autorización, autenticación y cifrado) son específicos de cada dispositivo y los fijó el desarrollador del mismo.

El controlador de Bluetooth internamente lista los servicios GATT mediante el campo Handle o UUID. El estándar ha limitado, para un dispositivo, el número de servicios, características y descriptores a 65.535 (0xFFFF), equivalente a recorrer desde el valor 1 hasta el 65.535 (0xFFFF) el Handle. A cada Handle le corresponde un UUID y viceversa. Hay una lista de UUIDs asociados a una función concreta en el documento del SIG de Bluetooth Assigned Numbers.

Se conecta el ordenador a el dispositivo y se realiza una petición de Lectura y Escritura para cada Handle con Scapy, o alguna herramienta similar.Los posibles casos de respuesta a una petición de lectura / escritura, según el protocolo ATT, permitirán saber la configuración de cada Handle.

Las respuestas a una petición de lectura pueden ser:

Respuesta Descripción
Respuesta afirmativa a la lectura El Handle es legible sin permisos
Error por Autorización insuficiente El Handle necesita autorización para ser leído
Error por Autenticación insuficiente El Handle necesita autenticación para ser leído
Error por longitud de clave de cifrado demasiado corta El Handle necesita un cifrado con una contraseña más larga
Error por cifrado insuficiente El Handle necesita un nivel de cifrado superior (i.e., pasar de emparejamiento Legacy a Secure)
Error por Handle invalido El Handle no existe
Error por lectura no permitida El Handle no es legible

Las respuestas a una petición de escritura pueden ser:

Respuesta Descripción
Respuesta afirmativa a la Escritura El Handle se puede escribir sin permisos
Error por longitud invalida El Handle se puede escribir pero la longitud es incorrecta
Error por Autorización insuficiente Se necesita estar autorizado para escribir el Handle
Error por Autenticación insuficiente Se necesita estar autenticado para escribir el Handle
Error por longitud de clave de cifrado demasiado corta Se necesita una clave más larga para escribir en el Handle
Error por cifrado insuficiente Se necesita tener un nivel de cifrado superior para escribir el Handle (i.e., pasar de emparejamiento Legacy a Secure)
Error por Handle invalido El Handle no existe
Error por lectura no permitida El Handle no se puede escribir

Se comprueba para el dispositivo que cada configuración es correcta, cotejándolo con el documento Assigned Numbers del SIG de Bluetooth con la guía de seguridad Bluetooth del NIST.

El resultado del control será FAIL cuando un Handle tenga los permisos incorrectos para el tipo de operación asignada en función del tipo de dispositivo según las especificaciones del NIST.

Referencias externas

  • Bluetooth Core V5.3, Vol. 3, Part H, Section 2 SECURITY MANAGER
  • Bluetooth Core V5.3, Vol. 3, Part H, Section 2.1 INTRODUCTION
  • Bluetooth Core V5.3, Vol. 3, Part H, Section 3 SECURITY MANAGER PROTOCOL
  • Bluetooth Core V5.3, Vol. 3, Part H, Section 3.6 SECURITY IN BLUETOOTH LOW ENERGY