Servicios SDP Bluetooth ocultos

BR/EDR

BLE

En Bluetooth, un servicio se refiere a una funcionalidad o característica específica que un dispositivo ofrece a otros dispositivos dentro de una red Bluetooth. Cada servicio se identifica por un Identificador Único Universal (UUID), y puede ser descubierto y utilizado por otros dispositivos Bluetooth que soportan ese servicio en particular.

Existen múltiples formas de descubrir los servicios disponibles en un dispositivo Bluetooth. Uno de los mecanismos para llevar a cabo este descubrimiento es el Protocolo de Descubrimiento de Servicios o SDP y su propósito es descubrir servicios en un dispositivo remoto, obtener información sobre los servicios y sus características, y establecer cómo conectarse a ellos.

Si el SDP está presente, debe estar configurado correctamente y listar todos los servicios que deban estar públicamente disponibles en el dispositivo. No listar un servicio en el SDP no impide que los usuarios accedan a él ni lo asegura.

En el mismo contexto, si un servicio está correctamente configurado no es necesario ocultarlo y configurar correctamente los servicios en el SDP permitirá que el dispositivo cumpla las Especificaciones de Bluetooth, lo que permitirá una mejor interoperatividad entre dispositivos.

Descripción del proceso

Para comprobar si existen servicios ocultos, es importante llevar a cabo un descubrimiento de SDP. Este es un procedimiento estándar de Bluetooth se puede realizar con herramientas estándar del sistema.

Después de obtener la lista de los servicios SDP disponibles se deben realizar formas alternativas de descubrimiento de servicios Bluetooth. Esto puede incluir los siguientes procedimientos:

  • Capturar comunicaciones Bluetooth mientras se utiliza el dispositivo para descubrir comunicaciones con servicios previamente desconocidos.
  • Realizar escaneos de fuerza bruta de servicios en un dispositivo.
  • Realizar escaneos de servicios utilizando diferentes protocolos de descubrimiento de servicios como GATT si están disponibles.

Si hay servicios ocultos al servicio SDP este no estará configurado correctamente.

Recursos relacionados

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

ID Descripción
BSAM-RES-04 Sniff de una conexión Bluetooth
BSAM-RES-05 Captura de una conexión Bluetooth

Caso de ejemplo

Se comprueba la existencia de servicios (Service) SDP ocultos en un dispositivo con conectividad BR/EDR. Las pruebas se llevan a cabo con un ordenador. Usando Wireshark con BTVS (btvs.exe -Mode wireshark) se obtiene una captura de paquetes para su análisis.

Para realizar la comprobación de los Service disponibles se hará uso de la herramienta sdptool, que forma parte del paquete bluez en los sistemas operativos GNU-Linux. Se realiza la petición de listar los Service del sistema con sdptool browse.

sdptool not discovered

En este procedimiento se muestran todos los Service que el servidor de SDP tiene grabados. El protocolo de Descubrimiento de Servicio , sin embargo, no tiene un mecanismo para notificar a los clientes SDP cuando se agregan o eliminan Service del servidor SDP. Debido a esto puede haber Service que no estén listados con el comando sdptool browse XX:XX:XX:XX:XX:XX.

Se comprueba si existen servicios ocultos con Scapy, o una herramienta similar, se genera una petición de lectura de los atributos de los Service SDP. Para ello se tendrán que comprobar todas las posibilidades disponibles en cada campo:

  • ServiceRecordHandle
  • MaximumAttributeByteCount
  • AttributeIDList
  • ContinuationState

Para cada petición se obtiene una respuesta que permite comprobar si la petición realizada es correcta o no.

Cotejando las respuestas correctas a la petición de atributos de los servicios con los listados por el servidor SDP se hallarán los Service ocultos.

El resultado del control es FAIL cuando se localizan diferentes servicios en las peticiones de lectura y en el listado del servidor SDP.