desarrollo de una aplicaciÓn que permita...

144
~ 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

Upload: others

Post on 26-Jan-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

  • ~ 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