Servicios SDP Bluetooth ocultos
BR/EDR
BLE
En Bluetooth, un servicio representa una funcionalidad específica ofrecida por un dispositivo, identificada mediante un (UUID). Los servicios pueden ser descubiertos y utilizados por otros dispositivos Bluetooth que los soporten.
Bluetooth proporciona múltiples mecanismos para descubrir servicios disponibles, uno de ellos es el Protocolo de Descubrimiento de Servicios (SDP). SDP permite identificar servicios remotos, obtener sus características y determinar cómo conectarse a ellos.
Para identificar servicios ocultos o no documentados, debe realizarse un descubrimiento SDP utilizando herramientas estándar. Tras obtener la lista de servicios anunciados mediante SDP, se deben aplicar técnicas adicionales para verificar que todos los servicios detectados coinciden con los anunciados. La presencia de un servicio no listado en SDP indica un servicio oculto, pero no garantiza seguridad, ya que el acceso sigue siendo posible.
Si un servicio está adecuadamente protegido, ocultarlo no es necesario. Mantener listados SDP precisos mejora la interoperabilidad y cumple con las especificaciones Bluetooth.
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.
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.