-
~ 3 ~
DESARROLLO DE UNA APLICACIÓN QUE PERMITA DISMINUIR LAS VULNERABILIDADES EN CONEXIONES BLUETOOTH EN SISTEMAS
OPERATIVOS ANDROID
FERNANDO BETANCOURT DUQUE LUZ ADRIANA PEÑA SALAZAR
DIRECTOR: ING. GERARDO ALBERTO CASTANG MONTIEL
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD TECNOLÓGICA
INGENIERÍA EN TELEMÁTICA TRABAJO DE GRADO
BOGOTÁ D.C 2019
-
~ 4 ~
DESARROLLO DE UNA APLICACIÓN QUE PERMITA DISMINUIR LAS VULNERABILIDADES EN CONEXIONES BLUETOOTH EN SISTEMAS
OPERATIVOS ANDROID
FERNANDO BETANCOURT DUQUE CÓD. 20162678038
LUZ ADRIANA PEÑA SALAZAR CÓD. 20162678040
DIRECTOR: ING. GERARDO ALBERTO CASTANG MONTIEL
MONOGRAFÍA
PRESENTADO A: ING. ISMAEL ANTONIO ARDILA SANCHEZ
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD TECNOLÓGICA
INGENIERÍA EN TELEMÁTICA TRABAJO DE GRADO
BOGOTÁ D.C 2019
-
~ 5 ~
NOTA DE ACEPTACIÓN
El trabajo de grado titulado DESARROLLO
DE UNA APLICACIÓN QUE PERMITA
DISMINUIR LAS VULNERABILIDADES EN
CONEXIONES BLUETOOTH EN
SISTEMAS OPERATIVOS ANDROID,
realizado por los estudiantes FERNANDO
BETANCOURT DUQUE y LUZ ADRIANA
PEÑA SALAZAR, cumple con los requisitos
exigidos por la UNIVERSIDAD DISTRITAL
FRANCISCO JOSÉ DE CALDAS para
optar al título de INGENIEROS DE
TELEMÁTICA.
__________________________________
Firma del jurado
Colombia, 16 de septiembre de 2019
-
~ 6 ~
TABLA DE CONTENIDO
Resumen 10
Abstract 10
INTRODUCCIÓN 11
1. FASE DE ANÁLISIS 12
1.1 PROBLEMA DE INVESTIGACIÓN 12
1.1.1 PLANTEAMIENTO DEL PROBLEMA 12
1.1.2 OBJETIVOS 14
1.1.3 JUSTIFICACIÓN 14
1.2. MARCO REFERENCIAL 15
1.2.1 MARCO CONTEXTUAL 15
1.2.2 MARCO TEÓRICO 18
1.3. MÉTODO DE INVESTIGACIÓN 23
1.3.1 METODOLOGÍA APLICADA 23
1.3.2 LIMITACIONES 26
1.4. DESPLIEGUE DE ATAQUES BLUETOOTH 27
1.4.1 CARACTERÍSTICAS DE LOS DISPOSITIVOS USADOS PARA LAS PRUEBAS 27
1.4.2 ENTORNO DE PRUEBAS DE PENTESTING KALI LINUX 28
1.4.3 ATAQUES DE BLUETOOTH 29
1.4.4 RECOPILACIÓN DE RESULTADOS DE LOS ATAQUES 39
2. FASE DE DISEÑO 40
2.1 ESTRUCTURA DEL SOFTWARE 40
2.1.1 DIAGRAMA DE CLASES 44
2.1.2 ESQUEMA DE DATOS 45
2.1.3 DIAGRAMA DE ITERACIÓN 46
2.2. DESARROLLO DE LA SOLUCIÓN 47
2.2.1 API´S DE ANDROID USADAS POR LA SOLUCIÓN 47
2.2.2 DESARROLLO DE LA APLICACIÓN 51
3. FASE DE IMPLEMENTACIÓN Y PRUEBAS 61
3.1 IMPLEMENTACIÓN DE LA APLICACIÓN BLUELOCK 61
3.2 PRUEBAS DE LA APLICACIÓN 63
4. FASE DE ANÁLISIS DE RESULTADOS 71
-
~ 7 ~
4.1 PRUEBAS DE HACKING 71
4.1.1 PRUEBA DEL ATAQUE BLUESPOOFING 73
4.1.2 PRUEBA DEL ATAQUE BLUEJACKING 73
4.1.3 PRUEBA DEL ATAQUE BLUESNARFING 76
4.2 ANÁLISIS DE RESULTADOS 76
4.3 FUTUROS TRABAJOS 77
5. CONCLUSIONES 78
6. REFERENCIAS 79
ANEXO 1. INSTALACIÓN DEL S.O. KALI LINUX 81
ANEXO 2. MANUAL DEL USUARIO 95
MANUAL DEL PROGRAMADOR 106
-
~ 8 ~
LISTA DE ILUSTRACIONES
ILUSTRACIÓN 1: PILA DE PROTOCOLOS DE BLUETOOTH ................................................................................................................ 19 ILUSTRACIÓN 2: HERRAMIENTA BLUESCANNER ............................................................................................................................. 31 ILUSTRACIÓN 3: COMPONENTE DISPOSITIVOS. ................................................................................................................................ 40 ILUSTRACIÓN 4: COMPONENTE EVENTOS. ........................................................................................................................................ 41 ILUSTRACIÓN 5: COMPONENTE BTGATTSERVER. ........................................................................................................................... 42 ILUSTRACIÓN 6: ACTIVIDADES DE APLICACIÓN. ............................................................................................................................... 43 ILUSTRACIÓN 7: DIAGRAMA DE CLASES. ............................................................................................................................................ 44 ILUSTRACIÓN 8: DIAGRAMA DE BASE DE DATOS. ............................................................................................................................. 45 ILUSTRACIÓN 9: DIAGRAMA DE ITERACIÓN. ..................................................................................................................................... 46 ILUSTRACIÓN 10: IDE DE DESARROLLO ANDROID STUDIO 3.4 .................................................................................................... 52 ILUSTRACIÓN 11: CLASES Y EVENTOS DEL PROYECTO BTSEC ...................................................................................................... 53 ILUSTRACIÓN 12: VISTA DE ENTORNO DE DESARROLLO. ............................................................................................................... 61 ILUSTRACIÓN 13: SELECCIÓN DE DISPOSITIVO PARA DEBUG. ........................................................................................................ 62 ILUSTRACIÓN 14: LOGCAT PARA DEBUG DE APLICACIÓN. .............................................................................................................. 63 ILUSTRACIÓN 15: ACTIVAR BLUETOOTH EN CELULAR ANDROID. ................................................................................................ 63 ILUSTRACIÓN 16: ACTIVAR BLUETOOTH EN COMPUTADOR. ......................................................................................................... 64 ILUSTRACIÓN 17: RESULTADO EMPAREJAMIENTO DE DISPOSITIVOS. .......................................................................................... 64 ILUSTRACIÓN 18: DISPOSITIVOS EMPAREJADOS - DESBLOQUEADOS. .......................................................................................... 65 ILUSTRACIÓN 19: ENVÍO DE ARCHIVO DESDE COMPUTADOR A CELULAR. ................................................................................... 65 ILUSTRACIÓN 20: PROCESO DE TRANSFERENCIA DE ARCHIVO. ..................................................................................................... 66 ILUSTRACIÓN 21: MENSAJE DE PERMISO DE EMPAREJAMIENTO EN CELULAR. ........................................................................... 66 ILUSTRACIÓN 22: MENSAJE DE AUTORIZACIÓN TRANSFERENCIA DE ARCHIVO. ......................................................................... 67 ILUSTRACIÓN 23: MENSAJE ARCHIVO RECIBIDO EN DISPOSITIVO CELULAR. ............................................................................... 67 ILUSTRACIÓN 24: MENSAJE DEL ENVÍO DEL ARCHIVO EXITOSO EN EL COMPUTADOR. .............................................................. 67 ILUSTRACIÓN 25: BLOQUEO DE DISPOSITIVO. .................................................................................................................................. 68 ILUSTRACIÓN 26: MENSAJE DE DISPOSITIVO BLOQUEADO. ............................................................................................................ 68 ILUSTRACIÓN 27: MENSAJE DE ERROR DE CONEXIÓN DE DISPOSITIVO. ....................................................................................... 69 ILUSTRACIÓN 28: TRANSFERENCIA DE ARCHIVOS BLUETOOTH FALLIDA. ................................................................................... 69 ILUSTRACIÓN 29: LOG DE EVENTOS REGISTRADOS DURANTE EL PROCESO DE BLOQUEO. ........................................................ 70 ILUSTRACIÓN 30: DESPLIEGUE DEL DESCUBRIMIENTO CON BLUESCANNER. ............................................................................. 71 ILUSTRACIÓN 31: INFORMACIÓN OBTENIDA POR EL DISPOSITIVO ATACANTE DEL DISPOSITIVO 1. ........................................ 72 ILUSTRACIÓN 32: INFORMACIÓN OBTENIDA POR EL DISPOSITIVO ATACANTE DEL DISPOSITIVO 2. ........................................ 72 ILUSTRACIÓN 33: CREACIÓN DE CONTACTO EN DISPOSITIVO ATACANTE 1. ............................................................................... 74 ILUSTRACIÓN 34: ATAQUE BLUEJACKING - MEDIO DE ENVÍO. ....................................................................................................... 74 ILUSTRACIÓN 35: ATAQUE BLUEJACKING - ELEGIR DISPOSITIVO BLUETOOTH OBJETIVO. ....................................................... 75 ILUSTRACIÓN 36: ATAQUE BLUEJACKING - VINCULACIÓN DE DISPOSTIVOS................................................................................ 75 ILUSTRACIÓN 37: ATAQUE BLUEJACKING - MENSAJE DE ERROR DE ENVÍO DE ARCHIVO. ......................................................... 75
LISTA DE FIGURAS
FIGURA 1:FUNCIÓN BROADCASTRECEIVER ...................................................................................................................................... 54 FIGURA 2: EVENTO CONNECTING ....................................................................................................................................................... 54
-
~ 9 ~
FIGURA 3: ESTADOS DE BLUETOOTHADAPTER ................................................................................................................................ 55 FIGURA 4: FUNCIÓN PARA ENCONTRAR DISPOSITIVOS DISPONIBLES ........................................................................................... 56 FIGURA 5: FUNCIÓN PARA VALIDAR EL ESTADO DE CONEXIÓN DEL ADAPTADOR ....................................................................... 57 FIGURA 6: FUNCIÓN BLOCKDEVICE PARA BLOQUEAR DISPOSITIVO .............................................................................................. 58 FIGURA 7: FUNCIÓN LOGADAPTER ..................................................................................................................................................... 58 FIGURA 8: FUNCIÓN GETDEVICES....................................................................................................................................................... 59 FIGURA 9: FUNCIÓN BROADCASTRECEIVER .................................................................................................................................... 59 FIGURA 10: FUNCIÓN STARTADVERTISING PARA INICIAR LA TRANSMISIÓN CON DISPOSITIVOS DISPONIBLES ..................... 60 FIGURA 11: FUNCIÓN ONCHARACTERISTICREADREQUEST PARA REGISTRAR EVENTOS EN EL LOG ....................................... 61
LISTA DE TABLAS
TABLA 1: CARACTERÍSTICAS DE LOS DISPOSITIVOS DE PRUEBA. ................................................................................................... 27
-
~ 10 ~
Resumen
Los dispositivos digitales presentan día tras día varias vulnerabilidades ya que al realizar una conexión su información puede verse comprometida. Bluetooth es un medio de comunicación inalámbrico muy reconocido ya que permite transferencia de archivos con distancias de hasta 100 metros, pero su seguridad se ha visto afectada por usuarios maliciosos, atentando en especial dispositivos celulares. Los fabricantes de bluetooth han mejorado su seguridad, pero no ha sido suficiente controlar las vulnerabilidades. La seguridad de conexión de bluetooth ha sido dirigida por los fabricantes, pero el usuario final no puede llevar un control de esta seguridad. Con este fin, la pregunta es la siguiente: ¿Existe alguna herramienta que permita al usuario mitigar las amenazas que se puedan presentar en un dispositivo celular? La respuesta para la anterior pregunta se responde a través de una investigación a las vulnerabilidades presentes en bluetooth realizando diferentes tipos de ataques, conllevando así la realización de una aplicación en Android que le permita al usuario final visualizar y llevar un control de los eventos que se presentan al activar el bluetooth, logrando así que no se realice ninguna acción hasta que el usuario lo autorice.
Palabras clave: Bluetooth, Android, seguridad, ataques.
Abstract
Digital devices are presented day after day several vulnerabilities because when
making a connection your information can be compromised. Bluetooth is a means of
wireless communication that allows you to transfer files with distances of up to 100
meters, but its security has been seen as malicious users, attacking special cell
phones. The Bluetooth manufacturers have improved their security but it has not
been enough to control the vulnerabilities. The security of the Bluetooth connection
has been directed by the manufacturers, but the user has not been able to carry out
a control of this security. To this end, the question is as follows: Is there a tool that
allows a user to mitigate the responses that can be presented on a cellular device?
The answer to the previous question is answered through a research into the
vulnerabilities present in Bluetooth, to the different types of attacks, which leads to
the realization of an android application that allows the user the final visualization
and to carry out a control of the events that occur when activating the Bluetooth, thus
ensuring that no action is taken until the user authorizes it.
Keywords: Bluetooth, android, security, attacks.
-
~ 11 ~
INTRODUCCIÓN
La conexión de dispositivos ha generado un gran cambio en el momento que se
transformó el uso de los cables a la conectividad inalámbrica y para esto Jaap
Haartsen (ingeniero eléctrico) en 1994 mientras trabajaba en Ericsson en Suecia,
inventó la tecnología bluetooth omitiendo los cables RS-232 usando ondas de radio
UHF (Ultra High Frecuency) de 2.4 GHz para enviar pequeños paquetes de datos
en distancias cortas. A partir de este momento la conexión inalámbrica ha
evolucionado para mejorar procesos de conexión, alcance y seguridad.
Las versiones de bluetooth han cambiado con el paso del tiempo desde la 1.0 y la
recién conocida hoy en día como la 5.x mejorando así el peso de la transferencia
de archivos y logrando alcance de hasta 100 metros. Está tecnología ha estado
presente por mucho tiempo e insiste en seguir presente por medio de la nueva era
del IoT (Internet of Things), donde tiene como objetivo principal interconectar todos
los dispositivos personales incluyendo electrodomésticos para ser gestionados por
medio de otros equipos.
La seguridad de este medio de conexión ha mejorado a medida que se generan
nuevas versiones ya que es de vital importancia proteger la información que
contiene cada usuario en sus dispositivos, pero en muchas ocasiones esta
seguridad no es suficiente frente a personal malicioso que busca cualquier
vulnerabilidad presente para ser explotada. En estos casos bluetooth ha
solucionado estos problemas de forma reactiva cada vez que se presentan, pero
esto nos demuestra que seguimos siendo vulnerables en el momento que activamos
la función de bluetooth.
Es por esto que en el siguiente proyecto se realiza un análisis sobre las
vulnerabilidades de bluetooth por medio de un escenario de pruebas con la
herramienta Kali Linux y posteriormente se propone crear una aplicación Android
que permite llevar un control de las actividades o eventos realizados por bluetooth
desde el momento que es activado hasta cuando este se apaga supervisado por el
usuario final y así mitigar las amenazas que se puedan presentar.
-
~ 12 ~
1. FASE DE ANÁLISIS
1.1 PROBLEMA DE INVESTIGACIÓN
1.1.1 PLANTEAMIENTO DEL PROBLEMA
La tecnología de comunicación inalámbrica Bluetooth posee diferentes vulnerabilidades que pueden ser explotadas por usuarios maliciosos para comprometer la confidencialidad de la información, principalmente, sistemas de uso personal como teléfonos y otros vectores de ataque como son las redes IoT. Esto convierte las redes de tecnología de uso personal en un factor de riesgo para la comodidad e intimidad de las personas, ya que los dispositivos móviles han primado su uso para realizar transacciones bancarias, compras, acceso a internet, agenda de contactos, credenciales, correo y redes sociales; aplicaciones cotidianas que tienen acceso a los diferentes puertos y sensores de los dispositivos inteligentes, que brindan una amplia gama de información como localización, micrófono, giroscopio y cámara; lo cual abre la brecha de daño que puede causar una filtración de información en este tipo de redes. Una de las principales soluciones a los malware y virus que tienen como objetivos dispositivos con conectividad bluetooth, son los parches de actualización que lanzan periódicamente los proveedores de tecnología y sistemas tales como Google, IOS y Windows, entre otros, los cuales son generados de manera esporádica y principalmente reactiva a los ataques que ocurren. También existe una cultura de seguridad de la información que puede mitigar las vulnerabilidades de bluetooth, a través de la gestión de contraseñas para el dispositivo y la instalación de software antimalware, pero esta cultura tiene un bajo nivel de acogida, ya que las personas desconocen las vulnerabilidades del sistema, dejan las conexiones abiertas así no hagan uso de ellas, además no realizan una gestión sobre los dispositivos al conservar la configuración predeterminada de fábrica lo cual aumenta la probabilidad de éxito en un ataque. Existen aplicaciones para gestionar las conexiones bluetooth que ofrecen conectividad a dispositivos de contactos, compartir archivos a través de sus interfaces de aplicación, ahorro de energía, y gestión de piconet´s sobre IoT y a nivel de seguridad, trabajan sobre los estándares y protocolos más actualizados de bluetooth. Las soluciones encontradas a nivel de seguridad de bluetooth son escasas y esto se debe a que son los proveedores de tecnología los encargados de desarrollar, diseñar y probar los componentes de hardware y software que integran los dispositivos de comunicación;
-
~ 13 ~
Al realizar el estudio de la tecnología bluetooth, cómo funciona, su alcance, y los ataques de seguridad a los que es vulnerable, se ha encontrado que es el diseño de la misma la que ha generado las vulnerabilidades, ya que es una tecnología enfocada a la conectividad rápida y fácil entre dispositivos de todo tipo, desde teléfonos inteligentes hasta periféricos, manejando características como dispositivos de confianza y autenticación con bajos parámetros de seguridad, por falta de fortalecimiento en los criterios de negociación para tamaño de claves, uso de PIN cortos, autenticación de dispositivos y no de usuarios e ilimitados intentos de conexión. La seguridad de bluetooth se encuentra principalmente en la capa de aplicación, por ello, las vulnerabilidades que aquejan esta tecnología radican en la configuración de los criterios y parámetros que gestionan las credenciales, códigos PIN, entre otros. El sistema actual que suple la seguridad bajo bluetooth 4.1 es bastante abierto y permisivo, con criterios de sincronización frágiles que exponen la conexión. Dentro de los parámetros que se definen en el establecimiento de una conexión entre dos dispositivos bluetooth se encuentran:
• Uso de códigos PIN cortos que varían desde 1 a 16 bytes (1-128 bits).
• Longitud de clave de cifrado negociable, permitiendo el uso de diferentes tamaños inferiores a 128 bits.
• En el modo de seguridad a nivel de enlace, la clave maestra es compartida, por lo que se necesita desarrollar un esquema de transmisión seguro y confiable.
• No existe autenticación de usuarios, sólo de dispositivos.
• No existe una limitación de intentos de conexión ni se produce bloqueo del dispositivo tras determinados intentos fallidos.
• La autenticación se basa en reto-respuesta mediante el uso de hashes. Según está diseñado, el esquema es vulnerable a ataques MITM.
• No está demostrado que el generador de números pseudoaleatorios para el procedimiento desafío-respuesta sea criptográficamente seguro, pudiendo producir números estáticos o repeticiones periódicas.
Por lo cual se propone el montaje de un entorno de pruebas de hacking sobre bluetooth, que permita identificar las vulnerabilidades y entenderlas, generando una posible solución que ayude a mejorar la seguridad sobre conexiones bluetooth, sin impactar negativamente en la facilidad de la conexión y lograr obtener una conexión más segura.
-
~ 14 ~
1.1.2 OBJETIVOS
OBJETIVO GENERAL
Desarrollar una aplicación para dispositivos móviles bajo sistemas operativos Android, que permita mejorar los niveles de seguridad en conexiones Bluetooth 4.0. OBJETIVOS ESPECÍFICOS
1. Generar un entorno de pruebas en el cual se evidencian las fortalezas y
debilidades de la seguridad en la conexión de los dispositivos bluetooth. 2. Definir las vulnerabilidades relevantes y posibles a mitigar en tales
conexiones. 3. Desarrollar un código para entornos Android, que reduzca las
vulnerabilidades determinadas anteriormente en la conexión. 4. Implementar un proceso de captura de paquetes, que permita identificar los
parámetros de negociación ajustados, durante la conexión. 5. Realiza pruebas de robustez y confiabilidad en la solución propuesta.
1.1.3 JUSTIFICACIÓN
Las conexiones inalámbricas han dado un gran paso en la evolución de las
comunicaciones, pero también se han visto afectadas por los hackers o usuarios
malintencionados que buscan la forma de robar información personal. Bluetooth ha
creado un gran escudo contra estas amenazas, pero las amenazas siguen estando
presente día tras día. Es por esto que se genera un entorno de pruebas donde se
testean diferentes tipos de ataques que han afectado la funcionalidad correcta del
bluetooth y se encuentra que no hay un control por parte del usuario donde visualice
que es lo que está pasando a través de su dispositivo mientras esté cuente con el
bluetooth activo.
Por lo tanto, se crea una aplicación para los usuarios de dispositivos celulares con
sistema operativo Android que tengan bluetooth incorporado, en donde ellos puedan
controlar las actividades realizadas por este medio de conexión logrando proteger
su información.
El objetivo de esta aplicación consiste en que el usuario pueda controlar las acciones que realice el bluetooth una vez se encuentre encendido. Está aplicación le mostrara que otros dispositivos intentan emparejarse y si es necesario lo puede bloquear para evitar que este ingrese a su sistema. Con esta aplicación se reduce
-
~ 15 ~
las posibilidades de un ataque de otro dispositivo que busque robar o alterar la información ya que el usuario va a tener el control de las actividades a realizar. 1.2. MARCO REFERENCIAL
1.2.1 MARCO CONTEXTUAL La versión 4.0 de Bluetooth ha registrado últimamente ataques que no han podido
ser controlados en dispositivos celulares en especial aquellos que poseen sistema
operativo Android. Solo basta con buscar en internet ataques de Bluetooth y se
encuentran noticias que demuestran que las vulnerabilidades han estado y siguen
presentes en dispositivos que poseen esta tecnología, como lo son smartphones,
tablets, televisores inteligentes, portátiles, wearables, altavoces, automóviles, etc.
Pero los dispositivos que más pueden comprometer la información de un usuario
son los celulares. Debido a los diferentes tipos de ataques que se han presentado
varios institutos como lo son el Bluetooth SIG (Bluetooth Special Interest Group), la
organización de estándares que supervisa el desarrollo de los estándares de
Bluetooth, el centro de Coordinación CERT, el centro de ciberseguridad avanzada
de internet (ICASI), entre otros, se mantienen al tanto y buscan la forma de detener
estos ataques y prevenir próximos que se puedan presentar.
Mensualmente Android genera un boletín informativo donde anuncia todos los detalles sobre las vulnerabilidades que estuvieron presentes en sus dispositivos y sus acciones frente a estos problemas de seguridad el cual son publicados en un repositorio del Proyecto de Código Abierto de Android (AOSP) e incluso fuera de este repositorio. En el último boletín generado por Android que fue publicado el 6 de agosto de 2018, anunció una vulnerabilidad a nivel de parche de seguridad en cuanto a los componentes de Qualcomm, el cual fue de gravedad alta afectando el bluetooth. Estar pendientes de estos boletines de seguridad nos permite estar informados sobre las vulnerabilidades presentes y su forma de actuar frente a estas problemáticas, y así encaminar la evolución de este proyecto para conservarse actualizado. En la tesis publicada “Bluetooth Hacking And Its Prevention” de diciembre de 2017,
determina qué tan real es la amenaza de ataques a dispositivos con Bluetooth y qué
fácil es lanzar tales ataques. Las ideas de que alguien podría escuchar todas las
conversaciones que tiene una víctima sin que ellos lo sepan, o que lean sus
mensajes de texto, son ejemplos clave de los peligros de Bluetooth. Las
capacidades que tienen los atacantes de utilizar servicios sobre un dispositivo
hackeado les permite cargar archivos maliciosos, ejecutar programas y rutinas
nativas del dispositivo y eliminar los registros de eventos para ocultar sus acciones.
-
~ 16 ~
Para este proyecto es importante probar que amenazas siguen presentes por medio
de un análisis de pentesting para luego plantear los límites de la solución.
El artículo de investigación “Security Vulnerabilities in Bluetooth Technology as
Used in IoT” del 24 de abril de 2018, presenta una descripción general de la
tecnología Bluetooth en IoT, incluidas sus vulnerabilidades, amenazas, soluciones
de seguridad y mitigación de riesgos, así como ejemplos reales de exploits. El
estudio muestra la variedad de ataques sobre Bluetooth y hace énfasis en
importancia de comprender los riesgos y las técnicas de mitigación relacionadas
con el uso de la tecnología Bluetooth. También se muestran ejemplos de exploits
recientes de Bluetooth.
En el estudio “Study on the Security Threats Factors of A Bluetooth Low Energy”
publicado el 31 de octubre de 2017, afirma que a medida que el rango de aplicación
de Bluetooth se expande, es necesario preparar contramedidas en consecuencia.
Por lo tanto, este estudio investiga los factores de amenaza de seguridad a través
un repaso técnico de los diferentes ataques Bluetooth, proponiendo contramedidas
contra este problema, nos muestra que aún hay muchos esfuerzos por hacer para
mejorar la seguridad del protocolo Bluetooth y utilizarlos para mejorar la seguridad
del servicio de red inalámbrica en el futuro. Este estudio nos da una vía para
proponer un nuevo proyecto para los dispositivos celulares con sistema operativo
Android, ya que es el más usado en el momento.
Las noticias generadas por portales web de tecnología y en el periodismo también
cuentan sobre la existencia de estos ataques una vez fueron detectados y varias
personas se han encargado de investigar y documentar su funcionamiento. Por
ejemplo, los siguientes informes cuentan sobre la forma de actuar de estos ataques:
Una noticia publicada en septiembre del 2017 por los sitios web Genbeta y Xataka
da a conocer el ataque BlueBorne, el cual se efectúa con solo tener el Bluetooth
activado. Esta investigación es patentada por la empresa de seguridad de California
Armis Labs donde dice que “Simplemente vale con que tengas activado el Bluetooth
para que un atacante pueda conectarse a tu dispositivo sin que te des cuenta a
infectarlo con el malware que desee. Esto quiere decir que un dispositivo infectado
con BlueBorne puede infectar a cualquier otro que tenga habilitado el Bluetooth a
su alrededor, y que incluso una vez infectados estos dispositivos puede propagar a
su vez y sin querer el malware.” (Yúbal FM, 2017). Este tipo de ataque necesita un
poco más de un minuto y una vez conectado puede disponer de información al abrir
aplicaciones que permita el acceso a fotos, archivos, información de cuentas
bancarias o simplemente instalar nuevas aplicaciones con malware.
-
~ 17 ~
Con estos tipos de ataque Apple se encuentra protegido desde 2016, Microsoft se
protegió en el 2017 y en el caso de Android, Google genero parches de seguridad
para solventar el problema buscando proteger al menos 2000 millones de
dispositivos y sigue trabajando en ello. Esta noticia es la que motivo a realizar una
investigación exhaustiva sobre los ataques que se presentan en Bluetooth y
preguntarnos si es posible crear una defensa que permita evitar futuros ataques.
Aun así, con el pasar de los años se han descubierto nuevas vulnerabilidades y
afectaciones que puede tener esta tecnología. Hoy en día se sigue conociendo
noticias sobre vulnerabilidades de Bluetooth, por ejemplo, una noticia publicada por
el portal web mexicano ADN Sureste el 20 de agosto de 2019 cuenta que expertos
han encontrado una vulnerabilidad Bluetooth al debilitar el cifrado de seguridad que
se establece al realizar una conexión, logrando que se puedan espiar las
comunicaciones: “La forma de hacerlo es bastante inteligente. El hacker no irrumpe
directamente en el cifrado, si no que hace que un par de dispositivos Bluetooth usen
una conexión más débil, la cual es más fácil de romper. Cada vez que dos
dispositivos se van a conectar establecen una nueva llave de encriptación. Si el
atacante interviene en el proceso, potencialmente podría establecer en los dos
dispositivos, una clave con un menor número de caracteres. Después, el atacante
tendría que efectuar otra embestida contra uno de los dispositivos, para obtener la
contraseña exacta.” (Redacción ADN, 2019).
Al mismo tiempo otros medios de comunicación como Clarín de Argentina en su
sección de Tecnología compartieron esta noticia sobre la vulnerabilidad, afirmando
además que este estudio fue realizado por la Universidad de Tecnología y Diseño
de Singapur, la Universidad de Oxford (Reino Unido) y el centro de seguridad de
información CISPA Helmholtz (Alemania), donde se le da el nombre a este ataque
como KNOB (Key Negotiation of Bluetooth): “Bluetooth posee un protocolo de
negociación cifrado que permite establecer negociación cifrada con solamente byte
(ocho bits) de entropía, es decir, la aletoriedad que establece un sistema como base
para los sistemas de encriptación. Al solo haber ocho combinaciones posibles, esto
permite a un hacker, mediante un ataque de fuerza bruta -consiste simplemente en
probar diferentes combinaciones-, negociar los códigos cifrados y luego manipular
los códigos en tiempo real.” (Clarín.com, 21/08/2019). La vulnerabilidad afecta a
todos los chips Bluetooth de Qualcomm, Intel o Broadcomm que son los más
populares y presentes en la mayoría de dispositivos Bluetooth.
Esta noticia demuestra una vulnerabilidad al establecer las conexiones entre dos
dispositivos bluetooth, por lo que nos demuestra que esto se puede prevenir al evitar
realizar un emparejamiento.
-
~ 18 ~
En varios artículos que hablan sobre estos ataques y vulnerabilidades recomiendan
que si no necesitamos el Bluetooth es mejor mantenerlo apagado, pero si hacemos
uso de este nos veremos expuestos a algún tipo de ataque. Por esto es que nos
preguntamos si ¿hay una forma de tener encendido nuestro Bluetooth así no
hagamos uso de este ya sea por descuido, pero que nos permita estar seguros? La
idea básica es realizar una aplicación para dispositivos Android que busque
contrarrestar estos ataques.
1.2.2 MARCO TEÓRICO
ESTÁNDAR DE COMUNICACIÓN INALÁMBRICA BLUETOOTH Versiones del Estándar: La propuesta de Bluetooth nace de la idea de crear una conexión inalámbrica de corto alcance entre dispositivos, logrando así la exclusión total de cableado en el momento de transmitir voz, datos o multimedia. En un comienzo fue Ericsson Mobile Communications que propuso la idea y posteriormente fue apoyada y creada por el SIG (Special Interest Group) en 1998, el cual se componía de las compañías Nokia, Ericsson, IBM, Toshiba e Intel y que más adelante más miembros se unieron a este grupo de investigación como 3Com, Compaq, Dell, Axis Communication, Motorola, Lucent Technologies UK Limited, Xircom y Qualcomm. El objetivo de Bluetooth es lograr una transmisión exitosa entre dos o más dispositivos operados por la radiofrecuencia en la banda ISM (Industrial, Scientific and Medical) de 2.4 GHz, logrando atravesar paredes o muros físicos. Bluetooth se encuentra clasificado según su potencia: la clase 1 tiene una potencia de 100 mW (20 dBm) logrando un alcance de hasta 100 metros; la clase 2 maneja una potencia de 2,5 mW (4 dBm) con un alcance de 20 metros y la clase 3 con un alcance de 1 metro al manejar una potencia de 1 mW (0 dBm). Desde la creación de Bluetooth se ha generado varias versiones que buscan una mejoría constante en cuanto a calidad del servicio (QoS), y como es de esperarse, en su primera versión v1.0, presentó varios problemas que posteriormente fueron solucionados, además fue integrada como estándar de comunicaciones (IEEE 802.15.1-2002), con capacidad de transmisión sobre los 721 kbps, añadió soporte para canales no cifrados, implementó el salto de frecuencia adaptable AFH ( Adaptive Frequency -hopping) para mejorar la resistencia de las interferencias de radio e implementó el control de flujo de datos y formas de retransmisión L2CAP. La versión v2.0 se caracteriza por hacer uso de una tasa de datos mejorada EDR (Enhanced Data Rate) de 3 Mbit/s, además hace uso de la modulación por desplazamiento de frecuencia gaussiana GFSK (Gaussian Frequency Shift Keying),
-
~ 19 ~
y por desplazamiento de fase PSK (Phase Shift Keying). En el 2007 la versión 2.1 se enfocó en las mejoras de seguridad y en el emparejamiento de dispositivos. La versión v3.0 implementó una gran mejora que fue el HS (High-Speed), logrando transmitir grandes cantidades de datos como archivos de multimedia y mejorando la tasa de transferencia de 24Mbps, además implementa AMP (Alternate MAC/PHY), el cual hace uso de 802.11 para el transporte de alta velocidad en la transmisión de grandes cantidades de datos, mientras el radio de Bluetooth se hace cargo de la detección de dispositivos y conexión inicial. La versión v4.0 fue presentada en el 2010 y consta de un bluetooth de alta velocidad basado en Wi-Fi y el bluetooth clásico que es de bajo consumo al perseverar los protocolos, además su velocidad de transferencia de datos aumenta a 32 Mbit/s. Por último, se tiene la versión 5.0 presente desde el año 2017 el cual tiene como objetivo mejorar la conectividad con el IoT al transmitir una doble tasa de datos y con un mayor rango de cobertura. Pila de Protocolos: Conocer la pila de protocolos que usa Bluetooth permite ver de forma general las debilidades del protocolo que puede explotar un atacante.
Ilustración 1: Pila de protocolos de Bluetooth
Fuente: https://rooibo.wordpress.com/category/protocolos/.
Los protocolos más relevantes a tratar en la seguridad de Bluetooth son varios; uno de estos es el L2CAP (Logical Link Control and Adaptation Protocol) el cual se encarga de multiplexar múltiples conexiones lógicas cuando no hay compatibilidad de protocolos entre los dos dispositivos en los niveles superiores y adapta el flujo de datos en diferentes tamaños de paquetes. Otro protocolo muy importante es el RFCOMM (Radio Frequency Communications) el cual se encarga de emular la conexión y flujo de datos virtual por serie, además es uno de los protocolos más
-
~ 20 ~
usados por las aplicaciones gracias a su soporte y facilidad de encontrar APIs públicas que usan el puerto serie en diferentes sistemas operativos. El protocolo LMP (Link Management Protocol) establece y controla el enlace de radio entre los dispositivos. El protocolo SDP (Service Discovery Protocol) como su nombre lo dice es el protocolo que se encarga de identificar los servicios que tienen otros dispositivos, por ejemplo, cuando se conecta un celular con unos audífonos, estos son identificados para recibir audio al estar clasificado su servicio. Un aspecto muy importante que cabe mencionar son los comandos HCI (Host Controller Interface), que se encarga de generar un método uniforme de comandos facilitando el ingreso al hardware de bluetooth, además proporciona un servidor con capacidad de controlar las conexiones de las capas de enlace hacia otros dispositivos bluetooth, todo esto es controlado en un firmware que se ejecuta dentro del procesador de bluetooth para encargarse del LMP, saltos de frecuencia, la conectividad por radio, entre otros temas de radiofrecuencia de bajo nivel. Niveles de seguridad en la conexión: Bluetooth presenta 3 modos de seguridad que son los siguientes:
1. Modo de seguridad 1 - Sin protección: En este modo de seguridad no se hace uso de cifrado o autenticación, pero el dispositivo trabaja en modo no discriminatorio.
2. Modo de seguridad 2 - Basado en aplicación/servicio (L2CAP): Una vez se establece la conexión el administrador de seguridad realiza la autenticación.
3. Modo de seguridad 3 - Vínculo - Capa autenticación con PIN/ cifrado de dirección MAC: Permite realizar la autenticación antes de establecer la conexión, pero se usa cifrado transparente logrando que el dispositivo esté vulnerable.
Bluetooth basa su seguridad en generación de claves al utilizar códigos PIN, el cual se encuentran entre 1 y 16 bytes de longitud, pero en la actualidad la mayoría hace uso de 4 bytes. Su proceso de generación de claves comienza al usar el algoritmo E2 que asigna una clave de vínculo de 16 bytes permitiendo la autenticación y posteriormente implementa la clave de cifrado al usar el algoritmo E3. La seguridad Bluetooth se ha visto gravemente afectada debido a varias vulnerabilidades existentes en el momento de establecer una conexión entre dos o más dispositivos móviles. Cuando un usuario malicioso logra adquirir el pase de entrada a otro dispositivo este se convierte en una amenaza frente a la información. Al día de hoy se han registrado varios ataques y que han comprometido seriamente la confidencialidad de la información de otros usuarios, pero para afrontarlos solo se ha generado parches y actualizaciones frente a estas amenazas por parte de algunas compañías.
-
~ 21 ~
TIPOS DE ATAQUES EN REDES INALÁMBRICAS DE CORTO ALCANCE
Algunos de los ataques más populares, que se han registrado son el Bluejacking, el Bluesnarfing, el Bluebugging, Blueborne, Bluesmack, Bluesnarf y muchos más. Es importante conocer cada uno de estos ataques y su forma de comprometer la información de otros dispositivos. Dentro de los más importantes están el Bluejacking el cual no realiza robo de información, pero si ingresa al dispositivo enviando constantemente mensajes de spam y así logra compartir por bluetooth una vCard o una nota y que posteriormente realiza envío de mensajes, imágenes, videos y hasta troyanos. Con el bluesnarfing puede realizar las mismas acciones que realiza el bluejacking, pero con la diferencia que en este tipo de ataque si se puede alterar la información del dispositivo de la víctima e incluso el robo de la misma ya sea desde un computador o un celular de forma invisible para la víctima. El ataque Bluebugging es uno de los más peligrosos que ha existido ya que realiza la tarea de los dos anteriores ataques con la diferencia de que puede tomar el control total del dispositivo, es decir, que puede descargar malware, suscribirse a servicios, enviar datos, entre otros. Su forma de operación prima en el aprovechamiento de bugs a la hora de realizar la autenticación del dispositivo y una vez lo logra, ejecuta comandos AT en el terminal, aunque en algunos casos es necesario que la víctima autorice la conexión inicial entre dispositivos y para esto hacen uso de ingeniería social u otros métodos. Estos ataques en su mayoría se presentan cuando el bluetooth se encuentra activo y visible, como en el caso del ataque Blueborne que solo es necesario tener activo el bluetooth y se hace efectivo su ataque ya que se presenta una vulnerabilidad en el Protocolo de Encapsulamiento de Red bluetooth (BNEP) al desencadenar una corrupción de la memoria y comenzar a ejecutar código en el dispositivo atacado. El ataque de Blueborne fue reportado con más de 5000 millones de dispositivos infectados en el segundo semestre del año 2017. (Yubal. “BlueBorne, así es la vulnerabilidad de Bluetooth que afecta a 5.000 millones de dispositivos”. {En línea}. {Fecha de consulta: 17 agosto de 2018}. Disponible en https://www.xataka.com/seguridad/blueborne-asi-es-la-vulnerabilidad-de-bluetooth-que-afecta-a-5-000-millones-de-dispositivos). Otro ataque que es popular es el Bluestack que consiste en un ataque DoS, que de igual forma que el ping ICMP (Internet Control Message Protocol), se realiza un ataque de desbordamiento de búfer al hacer uso de mensajes de eco L2CAP. (Browning, Dennis. “Bluetooth Hacking: A Case Study”. Champlain College Center for Digital Investigation. Edith Cowan University. Pág. 4.
https://www.xataka.com/seguridad/blueborne-asi-es-la-vulnerabilidad-de-bluetooth-que-afecta-a-5-000-millones-de-dispositivoshttps://www.xataka.com/seguridad/blueborne-asi-es-la-vulnerabilidad-de-bluetooth-que-afecta-a-5-000-millones-de-dispositivos
-
~ 22 ~
COMANDOS AT
Los comandos AT son un estándar abierto que inicialmente permitió la configuración de módems y fue desarrollado por la empresa Hayes Communications. Estos comandos también son conocidos como comandos Hayes, los cuales también son usados para la configuración de bluetooth. Al configurar un módulo HC se puede cambiar la velocidad de transmisión, el nombre por defecto, el código de vinculación, invertir de modo esclavo a maestro, entre otras. Un ejemplo de comando tenemos AT+ROLE=1\r\n que sirve para colocar el módulo en modo Maestro o el comando AT+ROLE=0\r\n que sirve para colocar el módulo en modo Esclavo, otro comando es AT+PIN (pin de 4 dígitos) el cual configura la clave de emparejamiento nueva. HACKING ÉTICO
Existen varias herramientas para detectar o hackear las vulnerabilidades presentes en bluetooth, pero para este proyecto se hará uso de una indispensable que es Kali Linux. Este es un sistema operativo basado en Debian GNU/Linux que permite la auditoría de la seguridad informática brindando varias herramientas que ayudan a la investigación de seguridad, realizar informática forense, pruebas de penetración, ingeniería inversa, entre otras. Esta herramienta fue lanzada en el año 2013 con el objetivo de ayudar a encontrar vulnerabilidades en los sistemas, además se caracteriza por tener más de 600 herramientas de pruebas de penetración, parchado para inyección, desarrollado en un entorno seguro, tener paquetes y repositorios firmados por GPG, compatibilidad con varios idiomas, etc. Uno de los últimos ataques registrados sucedió en el mes de julio de 2018, el cual fue notificado por el Instituto Nacional de Ciberseguridad (INCIBE) el cual consiste en inyectar un malware a los dispositivos que se encuentren en un rango de proximidad y tengan activado el bluetooth. Este ataque afectó a usuarios de Apple, Broadcom, Intel y Qualcomm. Esto demuestra que las vulnerabilidades siguen presentes y que es necesario prestarle atención a esta tecnología que es vital para la era del IoT. PROYECTOS Y REFERENCIAS
Bluetooth Firewall: FruitMobile Bluetooth Firewall es una aplicación de seguridad para Android que protege el dispositivo de ataques de hacking sobre bluetooth y asegura la protección de la privacidad. Posee características como detección de vulnerabilidad BlueBorne, vista de radar bluetooth, alertas de firewall, realiza el escaneo de bluetooth para el dispositivo Android, registra todos los eventos bluetooth, protege las contraseñas para el firewall y datos sensibles, opción de
-
~ 23 ~
hacer dispositivos remotos de confianza y un modo estricto. Este proyecto es una guía clave sobre las aplicaciones ya creadas y su forma de actuar. Su funcionalidad sirve como ejemplo para realizar mejoras o implementar un nuevo modelo de seguridad en este proyecto. Bluetooth Vulnerability Finder: Este es uno de los primeros escáneres de vulnerabilidades para tecnología BTL IoT (Bluetooth Low Energy Internet of Things), el cual puede diagnosticar el estado de seguridad de los dispositivos IoT sin necesidad de usar algún hardware especializado. La aplicación analiza los anuncios BLE de los dispositivos e informa sobre su nivel de seguridad. Este clasifica el dispositivo en uno de cuatro niveles e ilustra la criticidad a través de un código de colores: Rojo - Crítico; Naranja - Alto; Amarillo - Medio; Verde - Bajo. Esta aplicación sirve de referencia para alimentar el proyecto ya que presenta un modelo de seguridad de bluetooth al escanear las vulnerabilidades en especial con el IoT.
1.3. MÉTODO DE INVESTIGACIÓN
1.3.1 METODOLOGÍA APLICADA
La metodología seleccionada para este proyecto es SCRUM, el cual es una metodología de desarrollo ágil para proyectos de software, en el que se pretende realizar seguimiento continuo al proyecto por medio de ciclos cortos y fijos. Su objetivo consiste en que cada ciclo se genere un resultado estable y completo del producto para que sea entregado al usuario final o jurado cuando lo soliciten. Scrum se ajusta correctamente a este proyecto ya que es necesario realizar por medio de ciclos cortos cada uno de los objetivos hasta que se cumplan en su totalidad haciendo un seguimiento constante durante los próximos cinco meses de desarrollo. Para comenzar con este proyecto es necesario tener en cuenta las características de los requerimientos de los clientes, de los ejecutivos y del equipo de trabajo, el cual una vez anotadas se les denomina historias de usuario (User Story). Estas historias de usuario las agregamos a una reserva de producto o más conocido como Backlog del producto (Product Backlog) y luego designamos el Product Owner y el Scrum Master. El Product Owner que se encargará de:
● Seleccionar las historias de usuario correctas que se encuentran en el Backlog del producto
El Scrum Master se encargará de:
-
~ 24 ~
● Verificar que todo el equipo tenga las herramientas necesarias. ● Realizar reuniones de seguimiento. ● Realizar planeación de liberación del software.
Dentro de la metodología se encuentra otros roles como son el de desarrollador, la persona de pruebas y los ejecutivos, el cual serán asignados por los integrantes de este proyecto. Después de este proceso se genera un Release Backlog (reserva de lanzamiento), el cual se toman las historias de usuario del Backlog del producto que se desean liberar, asignándoles una priorización y una estimación de tiempo para el cumplimiento de estas tareas. Las tareas que impliquen días deberán ser divididas en horas para que todas queden en el mismo nivel de estimación. Posteriormente es necesario generar varios Sprints, el cual se encargan de ser la vía corta para realizar el cumplimento de las tareas por medio de días y, además, divide el Release Backlog de acuerdo al periodo de días seleccionado. Estos sprint se pueden estimar de 2 a 30 días, pero para este proyecto se realizarán sprints máximo de cinco días. Los sprints cumplen una fase de trabajo que son los siguientes:
● Planificación de sprint: Los miembros del equipo informan sobre el trabajo y la estimación del tiempo para cumplirlo durante el sprint.
● Scrum diario: Es necesario realizar reuniones diarias de 15 minutos máximo para validar el estado del sprint.
● Revisión de sprint: Cuando todo el equipo de trabajo finalice el sprint, se reúne para validar su cumplimiento y realiza una retrospectiva del presente sprint.
● Retrospectiva del sprint: Si se encontraron falencias es necesario volver y corregir, pero se espera que esto no suceda, sino que se mantenga una mejora continua.
Por último, Scrum permite crear un Burndown Chart, que se encarga de llevar la medición día a día de la cantidad de trabajo pendiente en el Sprint y con esta medición podemos calcular la velocidad del Burndown, que es la tasa promedio de productividad de todo el equipo de trabajo. Para la medición de los resultados, usaremos la metodología cuantitativa, realizando el paralelo entre los ataques sobre BT que tengan éxito contra el número de ataques realizados hasta tener un caso positivo de hacking en los diferentes escenarios de pruebas, con ello lograremos medir la efectividad de la solución teniendo como referencia la reducción del número de ataques que tengan éxito. Para esto, implementaremos varios sets de prueba que nos permitan tomar la muestra, realizando varios ataques de diferente índole sobre los dispositivos BT de prueba y recopilando los datos arrojados:
-
~ 25 ~
- Tipo de ataque - Dispositivo atacado - Número de intento - Información que logra capturar el evento.
Estos registros serán recopilados en una bitácora para poder realizar las comparaciones y mediciones respectivas al implementar la solución tecnológica. El resultado esperado es que después de implementada la solución, el número de ataques exitosos debería ser reducido considerablemente. Metodología de Investigación para proyectos de hacking La OSSTMM (Open Source Security Testing Methodology Manual) proporciona una
metodología abierta para una exhaustiva prueba de seguridad, desarrollada por
ISECOM donde se proponen las pautas para comprobar la seguridad informática.
Como metodología está diseñada para ser consistente y repetible, como proyecto
de fuente abierta permite a cualquier profesional en pruebas de seguridad contribuir
con ideas para realizar pruebas de seguridad más precisas, concretas y eficientes,
además esto permite la difusión de información y propiedad intelectual. En la versión
2.2 de esta metodología se introdujo el concepto de “Valores de Evaluación de
Riesgo” conocidos por la sigla RAV. Estas métricas establecen el riesgo de
seguridad de un sistema y poder compararlo con posibles soluciones; en la versión
3 se concretan los procedimientos de cálculo para estos valores.
Al ser los entornos informáticos significativamente más complejos comparados con
años anteriores, debido a tecnologías de operaciones remotas, virtualización,
computación en la nube y otros nuevos tipos de infraestructuras, no se puede
pensar pruebas básicas para PC, servidores y equipos de telecomunicaciones.
Para establecer una categorización de las pruebas a realizar, OSSTMM propone la
siguiente clasificación: Seguridad de los procesos, seguridad física, seguridad de
las tecnologías de Internet, seguridad de la información y seguridad inalámbrica.
Esto lo hace perfectamente viable para pruebas de computación en la nube,
infraestructuras virtuales, middleware de mensajería, infraestructuras de
comunicación móvil, ubicaciones de alta seguridad, recursos humanos,
computación confiable, y cualquier proceso lógico el cual cubra todos los diversos
canales y que requiera un diferente tipo de prueba de seguridad. Las métricas de
superficie de ataque, denominadas ravs, proporciona una herramienta poderosa y
-
~ 26 ~
altamente flexible la cual permite una representación gráfica del estado, y muestra
cambios en a través del tiempo.
Se trabajará bajo el marco de OpSec, validando la porosidad en la seguridad del
sistema a través de las operaciones que podamos hacer para tener visibilidad,
acceso y confianza, evaluando la exposición y vulnerabilidad existente dentro del
dispositivo móvil Android a través de Bluetooth. Probaremos la fortaleza de la
tecnología Bluetooth atacando las vulnerabilidades a los controles de clase A
(Interactivos): autenticación, indemnización, resiliencia, subyugación y continuidad;
y los controles de clase B (Proceso): no repudio, confidencialidad, privacidad,
integridad y alarma, que expone el marco de trabajo OSSTMM.
1.3.2 LIMITACIONES
• Tener acceso a una tarjeta Bluetooth que permite modificar sus
parámetros de conectividad como dirección MAC y nombre de red. Esto
para el despliegue de ataques como Bluesnarfing.
• La aplicación está diseñada para trabajar bajo sistema operativo Android
a partir de su versión 5 sobre dispositivos móviles de diferentes marcas
que soporten Bluetooth.
• No se soportan versiones de Bluetooth menores a la v. 4.0.
• El protocolo de comunicación de Bluetooth no puede ser restringido o
modificados sus parámetros de conexión, ya que estos se determinan
basados en las interfaces físicas de los dispositivos, obligando a controlar
los eventos de conectividad de dicha interface.
-
~ 27 ~
1.4. DESPLIEGUE DE ATAQUES BLUETOOTH
1.4.1 CARACTERÍSTICAS DE LOS DISPOSITIVOS USADOS PARA LAS
PRUEBAS
Para la realización de las pruebas de hacking de bluetooth se utilizó las siguientes
herramientas:
TIPO DISPOSITIVO
CARACTERÍSTICAS VERSIÓN BLUETOOTH
Computador 1
Marca: Toshiba
4.0 Realtek Bluetooth 4.0 Adapter
Fabricante: Windows
Sistema Operativo: Windows 10 / Kali Linux
RAM: 6 GB
Procesador: AMD A10 / 2.4 GHz
Bluetooth: SÍ
Tipo de Sistema: 64 bits
Computador 2
Marca: AMD
4.0 Realtek Bluetooth
Sistema Operativo: Windows 10 / Kali Linux
RAM: 16 GB
Procesador: AMD Ryzen 7
Bluetooth: SÍ
Tipo de Sistema: 64 bits
Celular 1
Marca: Huawei P8
4.1; A2DP; BT LE
Sistema Operativo: Android 5.0.1 lollipop; EMUI 3.1
RAM: 3 GB
Procesador: Octa-core Kirin 930 - 2 GHz
Bluetooth: SÍ
Celular 2
Marca: Motorola G7
4.2 LE + aptX HD 24-bit
Sistema Operativo: Android 9.0 Pie
RAM: 4GB
Procesador: 1.8 GHz Snapdragon 632
Bluetooth: SÍ Tabla 1: Características de los dispositivos de prueba.
-
~ 28 ~
1.4.2 ENTORNO DE PRUEBAS DE PENTESTING KALI LINUX
Kali Linux es una distribución de GNU/Linux de código abierto que contiene las
herramientas de software para realizar auditorías de seguridad sobre sistemas
informáticos creada por la empresa de seguridad informática Offensive Security. Kali
Linux está provisto por una gama de programas de auditoría y control de sistemas
tales como Wireshark, ntop, nmap, entre otras y más específicamente para el
propósito del proyecto cuenta con: bluelog, bluesnarfer y bluesmack. Con esta
herramienta se busca que los hackers pretendan romper la seguridad de las redes
y buscar puntos debiles en la infraestructura.
Kali Linux presenta las siguientes características principales:
• Es libre.
• Trae mas de 600 herramientas para las pruebas de penetración.
• Cuenta con amplio soporte para dispositivos inalámbricos.
• Entorno de desarrollo seguro.
• Árbol Git Open Source.
• Paquetes y repositorios firmados con GPG.
• Kernel personalizado, con parches para inyección.
• Cumple con FHS (Filesystem Hierarchy Standard)
• Permite varios lenguajes.
• Se puede personalizar.
La última versión generada por Kali Linux fue hecha en febrero del 2019 y lleva
como nombre 2019.1 y se encuentra disponible para su descarga en forma gratuita
en los portales de Offensive Security:
https://www.offensive-security.com/kali-linux-vm-vmware-virtualbox-image-
download/
En esta última versión se presenta paquetes actualizados para Harvester, DBeaver
y más.
Selección del entorno de despliegue para Kali Linux
El sistema operativo bien siendo una imagen de disco puede ser instalada por un
gestor de máquinas virtuales (como VMWare y VirtualBox) o instalada en una
partición de disco en una CPU y tener así el control total de los controladores físicos
y virtuales del dispositivo. La selección del entorno (máquina virtual o máquina real)
radica en la finalidad para la cual deseemos usar la herramienta Kali Linux: Si
https://www.offensive-security.com/kali-linux-vm-vmware-virtualbox-image-download/https://www.offensive-security.com/kali-linux-vm-vmware-virtualbox-image-download/
-
~ 29 ~
deseamos un entorno de pruebas controlado para no llamar la atención con
respecto a las acciones que realicemos (en modo de práctica), o si deseamos
explotar las funcionalidades de Kali Linux en entornos de pentesting reales para
empresas de acuerdo a los tipos de pruebas (Caja negra, caja blanca o caja gris).
Instalación de Kali Linux como máquina virtual
Para consultar sobre la instalación de Kali Linux remítase al anexo 1 de este
documento.
1.4.3 ATAQUES DE BLUETOOTH
Las pruebas realizadas son de tipo caja blanca (tandem), ya que implementamos el
entorno de ataque usando la plataforma de pentesting Kali Linux, documentando
cada herramienta y diseñando las pruebas de hacking sobre Bluetooth; además
teniendo el conocimiento de las características de los dispositivos de prueba. De
esta forma simulamos las condiciones ideales que requiere un ataque para generar
escenarios que muestren los aspectos primordiales sobre cómo abordar una
solución que mitigue de forma óptima las vulnerabilidades explotadas por los
diferentes entornos de ataque desplegados.
Despliegue del ataque
Fase de Reconocimiento: Para poder tener parámetros que permitan identificar los
diferentes dispositivos y sus características de conectividad bluetooth desplegamos
las herramientas de identificación y reconocimiento que tenemos a disposición en
Kali Linux.
Preparación para los ataques: Debemos asegurar que el adaptador de Bluetooth
está encendido y a la escucha de conexiones por parte de otros dispositivos. Para
ello usamos los siguientes comandos:
root@kali:~# service bluetooth start root@kali:~# service bluetooth status ● bluetooth.service - Bluetooth service Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset Active: active (running) since Sun 2018-11-11 11:35:52 -05; 5h 33min ago Docs: man:bluetoothd(8) Main PID: 622 (bluetoothd) Status: "Running" Tasks: 1 (limit: 4915) Memory: 4.0M CGroup: /system.slice/bluetooth.service └─622 /usr/lib/bluetooth/bluetoothd
Una vez el servicio bluetooth corriendo, validamos la interfaz del adaptador de
bluetooth:
-
~ 30 ~
root@kali:~# hciconfig hci0: Type: Primary Bus: USB BD Address: C8:FF:28:A6:15:F1 ACL MTU: 820:8 SCO MTU: 255:16 UP RUNNING PSCAN ISCAN RX bytes:3857 acl:0 sco:0 events:602 errors:0 TX bytes:28371 acl:0 sco:0 commands:388 errors:0
Tenemos el adaptador hci0, el cual usaremos para ejecutar los ataques. La
dirección MAC es C8:FF:28:A6:15:F1.
BlueLog: Es una herramienta de detección nativa de Kali, que muestra y registra
los dispositivos detectables en la red Bluetooth. Para ello ejecutamos en la consola
de comandos bluelog:
root@kali:~# bluelog Bluelog (v1.1.2) by MS3FGX --------------------------- Autodetecting device...OK Opening output file: bluelog-2018-11-11-1655.log...OK Writing PID file: /tmp/bluelog.pid...OK Scan started at [11/11/18 16:55:26] on C8:FF:28:A6:15:F1. Hit Ctrl+C to end scan.
Este comando genera una salida de texto con las direcciones MAC de los
dispositivos encontrados en el escaneo.
• 08:EF:3A:DD:91:F9
• 24:EC:99:23:16:88
BlueScanner: Esta herramienta nativa de Kali provee de la funcionalidad de
escaneo a través del adaptador de red Bluetooth, logrando capturar todas las
características de conectividad de los dispositivos detectados en la red. Para
realizar este ataque usamos los siguientes comandos:
root@kali:~# btscanner
El cual despliega una consola para trabajar con la interfaz de la herramienta:
-
~ 31 ~
Ilustración 2: Herramienta BlueScanner
Iniciamos el escáner con el comando y empieza a detectar y registrar los
dispositivos en red, generando un directorio con la MAC del dispositivo y un archivo
con toda la información recopilada.
Address: 88:9F:FA:B4:DC:8D Found by: C8:FF:28:A6:15:F1 OUI owner: Hon Hai Precision Ind. Co.,Ltd. First seen: 2018/09/22 18:31:45 Last seen: 2018/09/22 18:31:45 Name: Dell Wireless 365 Bluetooth Module Vulnerable to: Clk off: 0x5e05 Class: 0x000000 Miscellaneous Services: HCI Version ----------- LMP Version: n/a (n/a) LMP Subversion: n/a Manufacturer: n/a (n/a) HCI Features ------------ Features: n/a n/a n/a n/a Address: 84:C7:EA:57:36:D7 Found by: C8:FF:28:A6:15:F1 OUI owner: Sony Mobile Communications AB First seen: 2018/09/02 19:45:21 Last seen: 2018/09/02 19:45:21 Name: Xperia XA Vulnerable to: Clk off: 0x316f Class: 0x5a020c Phone/Smart phone Services: Networking,Capturing,Object Transfer,Telephony
-
~ 32 ~
HCI Version ----------- LMP Version: 4.2 (0x8) LMP Subversion: 0x713 Manufacturer: MediaTek, Inc. (70) HCI Features ------------ Features: 0xbf 0x3e 0x8d 0xfe Address: 30:21:AA:8E:E2:CF Found by: C8:FF:28:A6:15:F1 OUI owner: First seen: 2018/09/22 18:31:49 Last seen: 2018/09/22 18:31:49 Name: LN-18 Vulnerable to: Clk off: 0x0135 Class: 0x240408 Audio-Video/Hands free Services: Rendering,Audio HCI Version ----------- LMP Version: 3.0 (0x5) LMP Subversion: 0x1f4 Manufacturer: CONWISE Technology Corporation Ltd (66) HCI Features ------------ Features: 0xbf 0x3a 0x85 0xfa
-
~ 33 ~
Una vez con los dispositivos objetivo identificados iniciamos la fase de ataque
descrita a continuación:
ATAQUE SPOOFING
Spoofing traduce al español suplantación de identidad, por lo tanto, este tipo de
ataque consiste en que el atacante altera los datos en una comunicación para
presentarse a la víctima desde una fuente desconocida pero disfrazada de remitente
auténtico y seguro. El spoofing presenta varios tipos para ser efectuado que son los
siguientes:
● Spoofing de IP: En este tipo se ve reflejado en la tercera capa del modelo
OSI donde se sustituye un paquete TCP/IP por otra dirección IP que se va a
suplantar. Para esto cualquier programa que haga esta labor puede tomar
cualquier protocolo correspondiente al TCP/IP el cual se tiene en cuenta el
envío de paquetes SYN y ACK con su SYN específico sin olvidar que el
verdadero dueño de la IP puede cortar la conexión en cualquier momento.
● Spoofing de ARP (Protocolo de resolución de direcciones): Construye tramas
de solicitud y respuesta ARP alteradas para falsear la tabla ARP de la
víctima, logrando así que se envíe paquetes a un host atacante en vez de
enviarlos a su destino original. Para prevenir este tipo de ataques se
recomienda instalar aplicaciones que detecten cambios generados en las
tablas ARP o en el caso de switches se puede usar la seguridad de los
puertos
● Spoofing de GPS: Genera una señal modificada más fuerte que la generada
por los satélites engañando al receptor de GPS logrando que este determine
una posición asignada por el atacante que es diferente a la real de la cual
está solicitando. Para que este ataque sea exitoso es necesario que el
atacante conozca con precisión la posición de la víctima para que su señal
sea alterada. El envío de la señal debe ser ligeramente más poderosa y tener
un retardo mínimo de diferencia con la señal a suplantar, ya que si es más
rápida que esta señal lograra un ataque de perturbación porque se pierde la
fijación de la señal y fracasa el ataque.
● Spoofing de DNS (Sistema de Nombres de Dominio): En este tipo de spoofing
el atacante saca provecho de vulnerabilidades presentes en los servidores
para alterar la relación entre IP y DNS, es decir, que con la dirección IP altera
un nombre específico del DNS o viceversa. Al generar entradas falsas al
servidor DNS puede infectar la caché de otro servidor DNS.
● Spoofing Web: El atacante se encarga de falsear una página web que sea
visitada por la víctima, solicitando así datos, contraseñas u otra información
relevante. Este tipo de ataque no es el mismo phishing ya que este spoofing
-
~ 34 ~
se encarga de enrutar la conexión de la víctima y modificar dicha página web
mediante código incluso pasando por encima de las conexiones seguras
SSL. Una vez el usuario ingresa a internet, el atacante importa todas las
páginas web de la víctima, incluyendo las ventanas abiertas en otro
navegador web y así poderlas alterar para su conveniencia.
● Spoofing de correo: En este caso el spoofing es efectivo al crear un correo
electrónico con un remitente falso dentro de una red LAN o una red externa
por medio malware como los troyanos. Este ataque es sencillo al modificar
un servidor SMTP (Protocolo para transferencia simple de correo) ya que los
protocolos básicos no tienen ningún tipo de autenticación, logrando así
falsificación de identidad y Spam.
● Blue MAC Spoofing: Este tipo de ataque es el más interesante para este
proyecto. Este ataque afecta a todos los dispositivos que cuenten con la
tecnología bluetooth y consiste en sacar provecho a un fallo presentado en
el estándar y no a implementaciones incorrectas por parte de los fabricantes.
Este spoofing se encarga de suplantar la identidad de un dispositivo
emparejado y utilizar sus credenciales para ingresar al dispositivo de la
víctima sin que esta se entere logrando así obtener información y control de
las funciones del dispositivo.
Se conoce como Blue MAC Spoofing debido a que tiene relación con el
ataque de redes de Ethernet MAC, el cual se suplanta la dirección MAC de
un dispositivo permitiendo realizar acciones maliciosas con el resto de
equipos de la red. Para Blue MAC existen dos niveles:
● Suplantación de la dirección BD_ADDR de un dispositivo de confianza
para acceder a perfiles que requieren autorización.
● Suplantación de la dirección BD_ADDR y obtención de la clave de
enlace generada durante el emparejamiento accediendo a perfiles que
requieren autorización.
El éxito de este ataque se basa en conocimiento de comandos AT el cual son
instrucciones codificadas que permiten realizar acciones sobre el dispositivo
bluetooth como, por ejemplo:
● Acceder a los contactos para leerlos, añadirlos, modificarlos o
eliminarlos.
● Realizar llamadas telefónicas y configurar desvíos de llamadas.
● Acceder a los mensajes de texto para alterarlos.
Un protocolo de comunicaciones que permite realizar este ataque es el OBEX
(abreviatura de OBject EXchange) el cual se encarga del intercambio de
-
~ 35 ~
objetos binarios entre dispositivos. Con el protocolo OBEX Object Push se
puede enviar archivos y con el OBEX File Transfer permite el ingreso a
archivos almacenados en el dispositivo tanto en la memoria del teléfono
como en tarjetas extraíbles.
Despliegue del ataque Spoofing
Ingresamos en la consola los siguientes comandos para hacer el spoofing de la
interfaz bluetooth con un dispositivo conocido:
root@kali:~# spooftooph -i hci0 -a 84:C7:EA:57:36:D7 Manufacturer: Realtek Semiconductor Corporation (93) Device address: C8:FF:28:A6:15:F1 Unsupported manufacturer
Análisis de resultados del ataque spoofing: La tarjeta de red Bluetooth del PC
no es compatible con el api de Spoofing de Kali Linux, de manera que se entiende
que este tipo de ataques requiere una tarjeta homologada y de características
genéricas que permita modificar sus parámetros de conectividad para lograr el
spoofing.
ATAQUE BLUEJACKING
Este tipo de ataque fue popular en el año 2003 cuando se hizo popular el uso de
aquellos dispositivos que poseen esta tecnología y es más considerado como una
broma molesta que un ataque. Es una forma particular de enviar mensajes
anónimos que generan una notificación push en el dispositivo víctima. Estos
mensajes no son deseados y varias ocasiones son molestos. Los atacantes pueden
transmitir mensajes cortos y engañosos a los cuadros de diálogo de autenticación
en el momento que los dispositivos intercambian identificaciones durante la
asociación y posteriormente pueden engañar a los usuarios para que hagan uso de
códigos de acceso logrando así el ingreso a herramientas del dispositivo como lista
de contactos, archivos, entre otros.
Se ha sacado provecho a este tipo de ataque para realizar publicidad por parte de
alguna organización que se encuentre cerca a los dispositivos que cuenten el
bluetooth habilitado. Como se ha mencionado es un ataque inofensivo, pero si se
usa para comunicar insultos, amenazas o mensajes obscenos se convierte en un
problema. Para evitar este tipo de ataque se recomienda no habilitar el bluetooth en
momentos innecesarios o si se va a hacer uso de él, configurarlo como “no visible”.
-
~ 36 ~
Despliegue del ataque Bluejacking:
Para realizar el ataque requerimos de crear un contacto, sólo que en la casilla de
nombre irá el mensaje, en la libreta de direcciones del dispositivo que actuará como
atacante y se guarda el contacto.
Luego se busca un área con una gran cantidad de dispositivos móviles, selecciona
la opción "send vía Bluetooth" (enviar vía Bluetooth). Esto busca cualquier
dispositivo bluetooth que esté al alcance. Seleccionamos el dispositivo y enviamos
la información de contacto. Esta se codifica a través del protocolo de bluetooth Obex
y genera una notificación push en el teléfono atacado con el mensaje.
Análisis de resultados del ataque Bluejacking: Los dispositivos son vulnerables
a este tipo de ataque, ya que el simple evento está enfocado a la generación de la
notificación push, se planea generar una interfaz de Android que permite almacenar
estos eventos y bloquear las notificaciones, para evitar la molestia del spaming de
notificaciones push.
ATAQUE BLUESMACK
Es una forma de hacer DoS (Denial of Service) sobre dispositivos que tengan
habilitado el bluetooth, la cual consiste usar la capa L2CAP para transferir un
paquete de gran tamaño. Este comienza a actuar cuando un dispositivo intenta
ubicar otro dispositivo dentro del rango de cobertura y así enviar una solicitud a la
que responderán todos los dispositivos detectables, de esta forma se saca provecho
de la capa L2CAP.
Básicamente en la capa L2CAP existe la posibilidad de solicitar y recibir un eco de
otro interlocutor Bluetooth. Este ping L2CAP ayuda a verificar la conectividad y el
tiempo de ida y vuelta de las conexiones establecidas con otros dispositivos
habilitados. Cada dispositivo cuenta con un límite en el tamaño del ping L2CAP y al
exceder su tamaño, este se bloqueará.
A este tipo de ataque se le hace referencia el “Ping of Death” o ping de la muerte el
cual explica que la formación correcta de un ping tiene un tamaño de 56 bytes, pero
un paquete IPv4 puede tener un tamaño de 65.535 bytes por lo que el atacante
abusa de este tamaño para enviar un paquete muy grande y mal formado a la
dirección IP de la víctima haciendo que se divida en múltiples fragmentos. En el
momento que el dispositivo de la víctima ensamble los fragmentos de IP le resultara
un paquete de mayor tamaño a 65.535 logrando que el dispositivo no lo pueda
controlar y lograr así un desbordamiento de búfer, falla del sistema e incluso la
inyección de código malicioso.
-
~ 37 ~
Despliegue del ataque Bluesmack:
Para desarrollar este ataque se requiere de una línea de comando ejecutada
directamente en la consola del dispositivo atacante, la cual realiza una determinada
cantidad de llamados en un intervalo de tiempo lo cual desemboca en la caída del
servicio de bluetooth por parte del host o dispositivo víctima.
El script consiste en lo siguiente:
root@kali:~# while read r; do l2ping -s 50 84:C7:EA:57:36:D7; done < numscans
Lo primero, creamos un archivo llamado numscans con un contador de 1 hasta 100,
para tenerlo como referencia en el script y evitar desbordamiento de memoria o
sobrecarga en el host atacante.
Luego creamos un bucle infinito, realizando la lectura de una variable que siempre
retorna verdadero, y lo usamos como condición dentro de un ciclo do-while en la
consola de comandos de linux que lo ejecuta directamente en el kernel.
Para finalizar, lo que usamos dentro de la instrucción que se ejecutará es un L2PING
con un tamaño de paquete de 50 kb para hacer envíos de paquetes que fuerzan al
servidor a estar en escucha y procesando bits que no poseen algún tipo de
información, hasta que el servidor usa todo el espacio en memoria disponible y cae,
debido al desbordamiento de memoria.
root@kali:~# while read r; do l2ping -s 50 84:C7:EA:57:36:D7; done < numscans Ping: 84:C7:EA:57:36:D7 from C8:FF:28:A6:15:F1 (data size 50) ... 0 bytes from 84:C7:EA:57:36:D7 id 0 time 5.91ms 0 bytes from 84:C7:EA:57:36:D7 id 1 time 304.80ms 0 bytes from 84:C7:EA:57:36:D7 id 2 time 310.98ms 0 bytes from 84:C7:EA:57:36:D7 id 3 time 297.25ms 0 bytes from 84:C7:EA:57:36:D7 id 4 time 85.90ms 0 bytes from 84:C7:EA:57:36:D7 id 42 time 318.46ms 0 bytes from 84:C7:EA:57:36:D7 id 43 time 329.73ms 0 bytes from 84:C7:EA:57:36:D7 id 44 time 331.37ms 0 bytes from 84:C7:EA:57:36:D7 id 45 time 330.58ms 0 bytes from 84:C7:EA:57:36:D7 id 46 time 63.44ms Send failed: Connection reset by peer Ping: 84:C7:EA:57:36:D7 from C8:FF:28:A6:15:F1 (data size 50) ...
Análisis de resultados del ataque bluesmack: Los dispositivos son susceptibles
a este tipo de ataques, para ello planeamos crear una interfaz que permita
almacenar los eventos de conectividad y que permita bloquear dispositivos molestos
que generan notificaciones y registrar la acción de bloquear el dispositivo atacante.
-
~ 38 ~
ATAQUE BLUESNARFING
Bluesnarfing se le conoce a la acción de robar información del dispositivo de la
víctima. Sus funciones son parecidas al ataque bluejacking con la diferencia de que
en bluejacking es inofensivo al enviar mensajes molestos constantemente, pero en
bluesnarfing el atacante roba y manipula la información haciendo un mal. El
atacante debe estar cerca de la víctima para lograr el acceso no autorizado a la
información del dispositivo. Este atacante puede ingresar y obtener la lista de
contactos, archivos de multimedia, mensajes de texto, correos electrónicos. Cuando
el dispositivo tiene habilitado el bluetooth puede ser sometido a bluejacking y
posteriormente puede ser sometidos a bluesnarfing si existe alguna vulnerabilidad
en el software del proveedor.
Por el momento se recomienda para evitar este ataque tener el bluetooth
desactivado o ponerlo en modo oculto, aunque esto puede generar un ataque de
fuerza bruta para adivinar la dirección MAC. Para adivinar la dirección MAC existen
8.4 millones de intentos por fuerza bruta ya que la dirección MAC de bluetooth
consta de 48 bits, el cual 24 primeros bits son comunes de fabricante y el restante
son adivinados por fuerza bruta.
Despliegue del ataque de bluesnarfing:
root@kali:~# sdptool browse --tree --l2cap 84:C7:EA:57:36:D7 Failed to connect to SDP server on 84:C7:EA:57:36:D7: Connection reset by peer root@kali:~# sdptool browse --tree --l2cap 84:C7:EA:57:36:D7 Browsing 84:C7:EA:57:36:D7 ... Attribute Identifier : 0x0 - ServiceRecordHandle Integer : 0x10000 Attribute Identifier : 0x1 - ServiceClassIDList Data Sequence UUID16 : 0x1801 Attribute Identifier : 0x4 - ProtocolDescriptorList Data Sequence Data Sequence UUID16 : 0x0100 - L2CAP Channel/Port (Integer) : 0x1f Data Sequence UUID16 : 0x0007 Channel/Port (Integer) : 0x1 Version (Integer) : 0x5 Attribute Identifier : 0x5 - BrowseGroupList Data Sequence UUID16 : 0x1002 - PublicBrowseGroup Attribute Identifier : 0x0 - ServiceRecordHandle Integer : 0x10001 Attribute Identifier : 0x1 - ServiceClassIDList Data Sequence
-
~ 39 ~
UUID16 : 0x1800 Attribute Identifier : 0x4 - ProtocolDescriptorList Data Sequence Data Sequence UUID16 : 0x0100 - L2CAP Channel/Port (Integer) : 0x1f Data Sequence UUID16 : 0x0007 Channel/Port (Integer) : 0x14 Version (Integer) : 0x1c Attribute Identifier : 0x5 - BrowseGroupList Data Sequence UUID16 : 0x1002 - PublicBrowseGroup root@kali:~# bluesnarfer -r 1-100 -b 84:C7:EA:57:36:D7 device name: Xperia XA bluesnarfer: hci_read_remote_name failed bluesnarfer: unable to get device name bluesnarfer: unable to relase rfcomm
Análisis de resultados del ataque bluesnarfing: Inicialmente el ataque lista los
diferentes protocolos que provee la interfaz bluetooth del dispositivo que es víctima
del ataque, luego se trata de cambiar la configuración de la tarjeta atacante para
que simule ser un dispositivo anteriormente emparejado y poder ganar acceso. La
tarjeta no permite la modificación de dichos parámetros por la configuración del
modelo y marca, pero otros modelos y marcas son más flexibles y permiten
modificar sus parámetros de conexión para ser usadas en este tipo de ataques.
1.4.4 RECOPILACIÓN DE RESULTADOS DE LOS ATAQUES
Podemos evidenciar que el protocolo Bluetooth está diseñado para brindar
facilidades en la interconexión de dispositivos y este es un enfoque necesario para
la comunicación de dispositivos IoT, de forma que a través de la solución de
software que diseñamos no planeamos limitar o bloquear la funcionalidad del
protocolo de forma automatizada por una aplicación o un servicio, esto lo relegamos
al usuario, diseñando una aplicación que le permita consultar los eventos de
conectividad, los dispositivos emparejados, pueda tomar la decisión de bloquear o
no un dispositivo y podrá gestionar un servidor de comandos GATT a través de la
interfaz bluetooth con la que puede interactuar con otros dispositivos a través de
bluetooth registrando cada evento de conectividad.
-
~ 40 ~
2. FASE DE DISEÑO
2.1 ESTRUCTURA DEL SOFTWARE
Para la estructura de la solución se plantea la creación de los siguientes artefactos de desarrollo:
Dispositivos
Ilustración 3: Componente dispositivos.
El componente dispositivos implementa la clase device.java, la cual actúa como modelo de datos, la clase devicesContract.java se encarga de instanciar las columnas compuestas por los atributos del modelo y la clase devicesDBHelper.java suple los controladores para generar la persistencia del modelo para los eventos bluetooth y los métodos del CRUD para el modelo. La clase dispositivosCursor.java
-
~ 41 ~
se encarga de generar el cursor que carga la información de los dispositivos, la clase dispositivosFragment.java es la lista del cursor mostrada en la interfaz de usuario, donde se provee la funcionalidad para el bloqueo / desbloqueo de los dispositivos y por último la interfaz que contenga el listado dispositivos.java.
Eventos
Ilustración 4: Componente eventos.
El componente eventos implementa la clase event.java, la cual actúa como modelo de datos, la clase eventsContract.java se encarga de instanciar las columnas compuestas por los atributos del modelo y la clase eventsDBHelper.java suple los controladores para generar la persistencia del modelo para los eventos bluetooth y los métodos del CRUD para el modelo.
-
~ 42 ~
GattServer
Ilustración 5: Componente BTGattServer.
-
~ 43 ~
El componente de BTGattServer se plantea como una funcionalidad que a través de la interfaz de Gatt Server para Bluetooth pueda, inicialmente, detectar los dispositivos conectados con un servicio de perfil de tiempo que permite enviar actualizaciones de zona horaria a los dispositivos cercanos que se encuentren en el rango de conexión con el dispositivo servidor. Esta funcionalidad puede tener un gran alcance al aumentar los servicios y controladores disponibles con la interfaz de android para Bluetooth Gatt Server.
Actividades de Aplicación
Ilustración 6: Actividades de aplicación.
Las actividades de aplicación están ligadas directamente con los componentes dispositivos y eventos como interfaz de entrada para la aplicación con el artefacto
-
~ 44 ~
MainActivity.java y la interfaz para acceder al log de eventos de aplicación que registra los eventos Bluetooth.
Comparten las funciones nativas de Android como onCreate(), onStop(), onDestroy() y onBackPressed(), para el control de las actividades de la aplicación. Y las demás funcionalidades que permitan el control del adaptador de bluetooth del dispositivo, la detección de dispositivos y eventos y las interfaces de navegación entre actividades.
2.1.1 DIAGRAMA DE CLASES
Ilustración 7: Diagrama de clases.
-
~ 45 ~
2.1.2 ESQUEMA DE DATOS
Ilustración 8: Diagrama de base de datos.
El diagrama de base de datos muestra la base de datos Sqlite de la aplicación
compuesta por dos tablas: eventos y dispositivos. Las dos entidades tienen relación
1 a n; un dispositivo genera n eventos y ambas entidades almacenan los atributos
para la interfaz Android intent (evento) y bluetooth device (dispositivo).
-
~ 46 ~
2.1.3 DIAGRAMA DE ITERACIÓN
Ilustración 9: Diagrama de iteración.
El diagrama muestra al dispositivo con la aplicación ejecutándose, participando de
diferentes comunicaciones con otros dispositivos, el dispositivo se encuentra en un
entorno susceptible a ataques donde recibe diferentes ataques bluetooth. El
dispositivo cuenta con una interfaz bluetooth la cual se comunica con la aplicación
(BlueLock) al instanciar el adaptador de bluetooth.
La aplicación (BlueLock), posee un filtro de eventos que detecta específicamente
los cambios de estado del adaptador de bluetooth, como conexiones entrantes y
registrando todo en la base de datos, así como en el log de aplicación.
La característica que permite el bloqueo de los dispositivos radica en actualizar el
campo bloqueado del modelo “devices” de la aplicación, esto lo hace el usuario a
través de la interfaz de BlueLock en la opción bloquear dispositivos. La idea es
bloquear dispositivos sospechosos que estén o no emparejados previamente con el
dispositivo; permitiendo o manteniendo desbloqueado los dispositivos de conexión
cotidiana como audífonos, parlantes etc.
-
~ 47 ~
2.2. DESARROLLO DE LA SOLUCIÓN
2.2.1 API´S DE ANDROID USADAS POR LA SOLUCIÓN
Bluetooth Adapter: Se encarga del inicio de las acciones de Bluetooth. Es el
adaptador de bluetooth local. Se encarga de buscar y generar el listado de los
dispositivos habilitados, crea la instancia de un dispositivo usando una dirección
MAC conocida y crea el BluetoothServerSocket para escuchar las solicitudes de
otros dispositivos. Con esta clase se hizo uso de varias constantes en la aplicación
que facilitan el llamado a funciones específicas de Bluetooth como las siguientes:
● ACTION_STATE_CHANGED: Es una acción de broadcast el cual permite
cambiar el estado del adaptador de bluetooth local, es decir, que si está
activo se desactiva o viceversa.
● ACTION_DISCOVERY_STARTED: Comienza el proceso de descubrimiento
de dispositivos. Este proceso tiene una duración aproximada de 12 segundos
y posteriormente realiza un análisis del bluetooth para obtener su nombre.
● ACTION_DISCOVERY_FINISHED: Finaliza el proceso de descubrimiento de
dispositivos.
● ACTION_SCAN_MODE_CHANGED: Esta acción se encarga de indicar que
el modo de escaneo ha cambiado en el bluetooth local, es decir, que a esta
aplicación le puede notificar cuando el dispositivo haya finalizado la
detección. Además, esta acción contiene los archivos adicionales
EXTRA_SCAN_MODE y EXTRA_PREVIOUS_SCAN_MODE que contienen
los nuevos y antiguos escaneos.
● ACTION_CONNECTION_STATE_CHANGED: Transmite el cambio de
estado de la conexión de bluetooth local a un perfil del dispositivo remoto.
Esta acción se emite cuando el adaptador no está conectado a un perfil de
un dispositivo remoto y cuando ya se encuentre conectado esta acción deja
de enviar intentos de conexión. Una vez se desconecte el adaptador volverá
a enviar intentos de conexión. En la aplicación es muy útil ya que permite
estar pendiente si el adaptador local está conectado a algún perfil. Esta
acción tiene tres extras que son EXTRA_CONNECTION_STATE (estado de
conexión actual), EXTRA_PREVIOUS_CONNECTION_STATE (estado de
conexión anterior) y EXTRA_DEVICE (dispositivo bluetooth remoto).
● ACTION_REQUEST_ENABLE: Se encarga de que el sistema le muestre al
usuario si pu