NCN V, 18/10/2005 dab@digitalsec.net Seguridad en bluetooth.

Post on 23-Jan-2016

233 views 0 download

Transcript of NCN V, 18/10/2005 dab@digitalsec.net Seguridad en bluetooth.

NCN V, 18/10/2005

dab@digitalsec.netdab@digitalsec.net

SeguridaSeguridad en d en

bluetoothbluetooth

AgendaAgenda

Introducción.Introducción. Identificación de dispositivos.Identificación de dispositivos. Vulnerabilidades.Vulnerabilidades. Otras consideraciones.Otras consideraciones. Conclusiones.Conclusiones.

IntroducciónIntroducción Historia.Historia.

Toma el nombre del Rey danés Toma el nombre del Rey danés Harald Harald Blaatand (Blaatand (940-981940-981))..

Conocido como diente azul Conocido como diente azul (bluetooth).(bluetooth).

Famoso por el dialogo y la Famoso por el dialogo y la conversión al cristianismo de los conversión al cristianismo de los vikingos.vikingos.

El emblema viene de sus iniciales.El emblema viene de sus iniciales.

IntroducciónIntroducción Bluetooth Special Interest Group Bluetooth Special Interest Group

(SIG).(SIG).

Diseñado con la intención de sustituir Diseñado con la intención de sustituir cables en pequeños dispositivos.cables en pequeños dispositivos.

Fundado en 1998 por una organización Fundado en 1998 por una organización formada por empresas como Ericsson, formada por empresas como Ericsson, Nokia, IBM, Toshiba, Microsoft e Intel.Nokia, IBM, Toshiba, Microsoft e Intel.

IntroducciónIntroducción

Cambios de 1.2 a EDR (Enhanced Data Rate) o Cambios de 1.2 a EDR (Enhanced Data Rate) o 2.0.2.0.

Mayor alcance: hasta 100m.Mayor alcance: hasta 100m.

Velocidad: 721Kb/sec a 2Mbit/sec.Velocidad: 721Kb/sec a 2Mbit/sec.

Saltos de frecuencia (evita interferencias).Saltos de frecuencia (evita interferencias).

Reducción de velocidad en el establecimiento de Reducción de velocidad en el establecimiento de enlace.enlace.

Hed

y L

amarr (1913-2

000)

IntroducciónIntroducción Diferencias entre bluetooth y wireless:Diferencias entre bluetooth y wireless:

Bluetooth: diseñado para sustituir cables Bluetooth: diseñado para sustituir cables en pequeños dispositivos móviles.en pequeños dispositivos móviles.

802.11b: diseñado para sustituir cables en 802.11b: diseñado para sustituir cables en LAN.LAN.

Bluetooth: no necesita poco ancho de Bluetooth: no necesita poco ancho de banda.banda.

802.11b: requiere amplio ancho de banda.802.11b: requiere amplio ancho de banda.

Similitudes entre bluetooth y wireless:Similitudes entre bluetooth y wireless: Ambas emiten en 2.4Ghz.Ambas emiten en 2.4Ghz.

IntroducciónIntroducción

Piconet:Piconet: Un “maestro” por piconet.Un “maestro” por piconet. El maestro define parámetros de El maestro define parámetros de

conexión.conexión. Máximo de 7 clientes esclavos.Máximo de 7 clientes esclavos.

IntroducciónIntroducción

Scatternet:Scatternet: Un maestro no puede serlo en dos Un maestro no puede serlo en dos

piconet.piconet. Dos esclavos en una misma piconet.Dos esclavos en una misma piconet. Soporte opcional.Soporte opcional.

IntroducciónIntroducción Modos de seguridad:Modos de seguridad:

Modo 1Modo 1: Permite conexiones desde : Permite conexiones desde cualquier dispositivo. cualquier dispositivo.

Modo 2Modo 2: requiere una seguridad : requiere una seguridad sencilla por servicio: L2CAP.sencilla por servicio: L2CAP.

Modo 3Modo 3: utiliza procedimientos de : utiliza procedimientos de seguridad antes de establecer el canal seguridad antes de establecer el canal de la comunicación:de la comunicación:

Uso de autenticación mediante PIN.Uso de autenticación mediante PIN. filtro por dirección de origen (BD_ADDR).filtro por dirección de origen (BD_ADDR). Cifrado mediante SAFER+.Cifrado mediante SAFER+.

IntroducciónIntroducción Pila Bluetooth:Pila Bluetooth:

Bluetooth radioBluetooth radio: convierte datos a señal : convierte datos a señal de radio y viceversa.de radio y viceversa.

BasebandBaseband: parámetros de bajo nivel de : parámetros de bajo nivel de conexión (cifrar y descifrar paquetes, conexión (cifrar y descifrar paquetes, corrección de errores).corrección de errores).

Link ManagerLink Manager: gestión de conexiones, : gestión de conexiones, comprueba su estado o las elimina si han comprueba su estado o las elimina si han terminado.terminado.

L2CAPL2CAP: quienes y donde están : quienes y donde están conectados. Capa Intermediaria entre la conectados. Capa Intermediaria entre la API y protocolos más bajos.API y protocolos más bajos.

RFCOMMRFCOMM: Emula puertos serie.: Emula puertos serie. TCSTCS: gestiona las conexiones de audio.: gestiona las conexiones de audio. SDPSDP: sistema por el cual se gestionan los : sistema por el cual se gestionan los

servicios de los dispositivos.servicios de los dispositivos. OBEXOBEX: protocolo de intercambio de datos.: protocolo de intercambio de datos.

IntroducciónIntroducción Pila Bluetooth:Pila Bluetooth:

IntroducciónIntroducción Seguridad en autenticación - PIN:Seguridad en autenticación - PIN:

Generalmente de 4 dígitos (soporta Generalmente de 4 dígitos (soporta hasta 16).hasta 16).

Productos con PIN por defecto: Productos con PIN por defecto: 00000000.. Posibilidad de obtener un PIN de Posibilidad de obtener un PIN de 6 6

dígitosdígitos en en 12,5 segundos12,5 segundos (fuente: (fuente: @atstake).@atstake).

Identificación de Identificación de dispositivos.dispositivos.

Captura de tramas Captura de tramas HCI.HCI.

IntroducciónIntroducción Claves utilizadas en el “Paring”:Claves utilizadas en el “Paring”:

KxKx: Kx = E21(LK_RAND, BD_ADDR): clave de : Kx = E21(LK_RAND, BD_ADDR): clave de cada dispositivo Kx (se genera solo una vez).cada dispositivo Kx (se genera solo una vez).

KinitKinit: Kinit=E22(PIN, PIN_LENGTH, : Kinit=E22(PIN, PIN_LENGTH, IN_RAND): clave inicial necesaria para IN_RAND): clave inicial necesaria para siguientes pasos.siguientes pasos.

““A” genera y manda en texto claro a “B”, A” genera y manda en texto claro a “B”, IN_RAND, un número aleatorio.IN_RAND, un número aleatorio.

Se genera en cada dispositivo: LK_RAND.Se genera en cada dispositivo: LK_RAND. Se transmiten los RAND.Se transmiten los RAND.

KlinkKlink: clave temporal de enlace.: clave temporal de enlace. Puede ser Kx o Kab (depende del modo de Puede ser Kx o Kab (depende del modo de

seguridad y características del dispositivo).seguridad y características del dispositivo). Se utiliza en el proceso de autenticación.Se utiliza en el proceso de autenticación.

IntroducciónIntroducciónClave Kx:

Clave Kinit:

IntroducciónIntroducción Autenticación en el “Paring”:Autenticación en el “Paring”:

Dispositivo “B” transmite a “A” su BD_ADDR.Dispositivo “B” transmite a “A” su BD_ADDR. Dispositivo “A”, genera AU_RAND y lo Dispositivo “A”, genera AU_RAND y lo

transmite a “B”.transmite a “B”. Dispositivo “B” genera SRES y lo envía a “A”.Dispositivo “B” genera SRES y lo envía a “A”. SRES: SRES=E1(AU_RAND, BD_ADDRb, SRES: SRES=E1(AU_RAND, BD_ADDRb,

Klink)Klink) Se comprueba que ambos dispositivos tienen el Se comprueba que ambos dispositivos tienen el

mismo SRES y se concluye la autenticación.mismo SRES y se concluye la autenticación.

IntroducciónIntroducción Clave Kab, generada dependiendo Clave Kab, generada dependiendo

del modo de seguridad:del modo de seguridad:

Ambos dispositivos crean la clave.Ambos dispositivos crean la clave. Se genera en cada dispositivo Se genera en cada dispositivo

LK_RANDx.LK_RANDx. Se transmiten LK_RAND usando Kinit.Se transmiten LK_RAND usando Kinit. Se genera la clave K del otro Se genera la clave K del otro

dispositivo, con el LK_RAND y Kinit.dispositivo, con el LK_RAND y Kinit. Se genera Kab: Kab=XOR(Ka,Kb).Se genera Kab: Kab=XOR(Ka,Kb).

IntroducciónIntroducciónAutenticación:

Clave Kab:

IntroducciónIntroducción Cifrado de datos:Cifrado de datos:

Los datos se cifran con el Los datos se cifran con el algoritmo:XOR(BD_ADDR, CLOCKa, algoritmo:XOR(BD_ADDR, CLOCKa, Kc).Kc).

Generación de Kc:Generación de Kc: Kc: Kc=E3(EN_RAND, Klink, COF).Kc: Kc=E3(EN_RAND, Klink, COF).

COF: Obtenido de ACO, en el proceso de COF: Obtenido de ACO, en el proceso de autenticación.autenticación.

COF: Concatenación de ambas BD_ADDR.COF: Concatenación de ambas BD_ADDR.

CLOCKa: hora del sistema.CLOCKa: hora del sistema.

IntroducciónIntroducciónClave Kc:

Cifrado de datos:

Identificación de Identificación de dispositivos.dispositivos.

Identificación de dispositivos Identificación de dispositivos visibles.visibles.

Hcitool: herramienta del paquete “bluez” de Hcitool: herramienta del paquete “bluez” de Linux.Linux.

# hcitool scan# hcitool scan

22:22:22:22:22:22 PDA22:22:22:22:22:22 PDA

33:33:33:33:33:33 t63033:33:33:33:33:33 t630

44:44:44:44:44:44 nokia66044:44:44:44:44:44 nokia660

Obtención de información posiblemente Obtención de información posiblemente interesante: modelos y marcas de dispositivos.interesante: modelos y marcas de dispositivos.

Identificación de Identificación de dispositivos.dispositivos. Blueprint.Blueprint.

Identificación de dispositivos utilizando Identificación de dispositivos utilizando una base de datos, que almacena:una base de datos, que almacena:

BD_ADDR.BD_ADDR. Servicios (SDP).Servicios (SDP).

# # sdptool browse --tree 00:02:78:38:94:3C | sdptool browse --tree 00:02:78:38:94:3C | ./bp.pl./bp.pl

00:02:78:38:94:3C -nomac00:02:78:38:94:3C -nomac00:0A:D9@406369800:0A:D9@4063698device: device: Sony Ericsson T610Sony Ericsson T610version: R1L013version: R1L013date: n/adate: n/atype: mobile phonetype: mobile phonenote: n/anote: n/a

Identificación de Identificación de dispositivos.dispositivos.

Identificación de Identificación de dispositivos.dispositivos.

RedFang.RedFang.

Identificación de dispositivos “no Identificación de dispositivos “no detectables”, mediante fuerza detectables”, mediante fuerza bruta.bruta.

Soporte para múltiples “dongles”.Soporte para múltiples “dongles”.

Excesivamente lento.Excesivamente lento.

Identificación de Identificación de dispositivos.dispositivos.

Identificación de Identificación de dispositivos.dispositivos. Bluespam.Bluespam.

Identificación de la categoría de dispositivos con Identificación de la categoría de dispositivos con el fin de mandarle Spam.el fin de mandarle Spam.

Clase: mediante este atributo es posible obtener Clase: mediante este atributo es posible obtener que tipo de dispositivo es.que tipo de dispositivo es.

https://www.bluetooth.org/foundry/assignnumb/document/basebahttps://www.bluetooth.org/foundry/assignnumb/document/basebandnd

VulnerabilidadesVulnerabilidades Bluejacking.Bluejacking.

Consiste en enviar un contacto cuyo nombre es el texto Consiste en enviar un contacto cuyo nombre es el texto que se desea que aparezca a la persona en la pantalla que se desea que aparezca a la persona en la pantalla de su terminalde su terminal..

No es una vulnerabilidad, no implica riesgo.No es una vulnerabilidad, no implica riesgo.

Utilizada para mandar mensajes de texto a modo de Utilizada para mandar mensajes de texto a modo de “chat”.“chat”.

http://http://www.bluejackq.com/www.bluejackq.com/

VulnerabilidadesVulnerabilidades

PSM Scanning.PSM Scanning.

Comprobar los servicios disponibles sin Comprobar los servicios disponibles sin utilizar SDP (browse).utilizar SDP (browse).

Similar a un análisis de puertos en TCP/IP.Similar a un análisis de puertos en TCP/IP.

Herramienta: BTAudit. Herramienta: BTAudit. http://www.betaversion.net/btdsd/download/http://www.betaversion.net/btdsd/download/

Identificación de Identificación de dispositivos.dispositivos.

VulnerabilidadesVulnerabilidades BlueSnarf.BlueSnarf.

Es posible obtener datos confidenciales sin realizar Es posible obtener datos confidenciales sin realizar autenticación: agenda, sms.autenticación: agenda, sms.

Utilizando OBEX realiza el GET en un servicio Utilizando OBEX realiza el GET en un servicio utilizado generalmente para recibir contactos utilizado generalmente para recibir contactos (vCards); “OBEX PUSH”.(vCards); “OBEX PUSH”.

Archivos conocidos: (IrMC, Archivos conocidos: (IrMC, Ir Mobile Ir Mobile CommunicationsCommunications). Ejemplo: telecom/pb.vcf.). Ejemplo: telecom/pb.vcf.

Sony Ericsson T68, T68i, R520m, T610, Z1010.Sony Ericsson T68, T68i, R520m, T610, Z1010. Nokia 6310, 6310i, 8910, 8910i.Nokia 6310, 6310i, 8910, 8910i.

Identificación de Identificación de dispositivos.dispositivos.

VulnerabilidadesVulnerabilidades BlueSnarf++.BlueSnarf++.

Similar en concepto a bluesnarf.Similar en concepto a bluesnarf.

El contenido es navegable (semejante a un FTP).El contenido es navegable (semejante a un FTP).

Se pueden obtener datos de sistemas de Se pueden obtener datos de sistemas de almacenamiento externos; SD, MMC.almacenamiento externos; SD, MMC.

Permite escritura y lectura.Permite escritura y lectura.

- No existen datos públicos (WTH).No existen datos públicos (WTH).

VulnerabilidadesVulnerabilidades

Bluebug.Bluebug.

Riesgo alto.Riesgo alto.

Permite realizar una conexión al terminal e Permite realizar una conexión al terminal e introducir comandos AT (RFCOMM).introducir comandos AT (RFCOMM).

Llamadas de voz/datos, envío de SMS, obtención Llamadas de voz/datos, envío de SMS, obtención de información: IMEI, modelo del sistema, agenda.de información: IMEI, modelo del sistema, agenda.

Lista de comandos AT:Lista de comandos AT:

http://new.remote-exploit.org/index.php/BT_main.

VulnerabilidadesVulnerabilidades

BlueSmack.BlueSmack.

Denegación de servicio al estilo “ping de la muerte”.Denegación de servicio al estilo “ping de la muerte”.

Se realiza utilizando peticiones del tipo “request”, Se realiza utilizando peticiones del tipo “request”, en L2CAP.en L2CAP.

No requiere autenticación.No requiere autenticación.

Riesgo bajo.Riesgo bajo.

VulnerabilidadesVulnerabilidades Abuso del modo 3.Abuso del modo 3.

Ataque que aprovecha la falta de autorización por canal.Ataque que aprovecha la falta de autorización por canal.

Ejecución:Ejecución:

El atacante consigue introducirse en la lista de dispositivos de El atacante consigue introducirse en la lista de dispositivos de confianza, enviando una vCard por ejemplo. Requiere ingeniería confianza, enviando una vCard por ejemplo. Requiere ingeniería social.social.

El dispositivo no comprobará a que servicios puede acceder El dispositivo no comprobará a que servicios puede acceder permitiéndole acceder al servicio de puerto serie, Obex FTP, permitiéndole acceder al servicio de puerto serie, Obex FTP, etc.etc.

VulnerabilidadesVulnerabilidades

BlueBump.BlueBump.

Requiere ingeniería social: crear una conexión segura.Requiere ingeniería social: crear una conexión segura. Ejemplo: Enviar un vCard y forzar el modo-3.Ejemplo: Enviar un vCard y forzar el modo-3.

El atacante solicita borrar su clave, manteniendo la El atacante solicita borrar su clave, manteniendo la conexión establecida.conexión establecida.

La victima no controla que aun sigue la conexión La victima no controla que aun sigue la conexión establecida. El atacante solicita que la clave se establecida. El atacante solicita que la clave se regenere. regenere.

El atacante consigue entrar en la lista de la victima sin El atacante consigue entrar en la lista de la victima sin tener que autentificarse nuevamente.tener que autentificarse nuevamente.

VulnerabilidadesVulnerabilidades BlueDump o Bluespoof.BlueDump o Bluespoof.

Se realiza para obtener el PIN del emparejamiento Se realiza para obtener el PIN del emparejamiento de dos dispositivos.de dos dispositivos.

Es necesario conocer ambas BD_ADDR.Es necesario conocer ambas BD_ADDR.

Consiste en realizar un “spoof” de uno de los Consiste en realizar un “spoof” de uno de los dispositivos (BD_ADDR y class) y enviar una dispositivos (BD_ADDR y class) y enviar una petición del tipo petición del tipo “HCI_Link_Key_Request_Negative_Reply“HCI_Link_Key_Request_Negative_Reply”, que ”, que causa la generación de una nueva clave.causa la generación de una nueva clave.

VulnerabilidadesVulnerabilidades

Denegación de servicio en OBEXDenegación de servicio en OBEX

Mala implementación del protocolo OBEX.Mala implementación del protocolo OBEX.

Dispositivos afectados: nokia 7610, 3210, ¿otros?.Dispositivos afectados: nokia 7610, 3210, ¿otros?.

Envío de un archivo con caracteres “prohibidos” Envío de un archivo con caracteres “prohibidos” por el protocolo: “:” y “\”. (Punto 4.3, pagina 46 de por el protocolo: “:” y “\”. (Punto 4.3, pagina 46 de IrOBEX12.pdf).IrOBEX12.pdf).

Requiere aceptar la conexión: riesgo bajo.Requiere aceptar la conexión: riesgo bajo.

Identificación de Identificación de dispositivos.dispositivos.

Otras consideracionesOtras consideraciones

Carwhisper.Carwhisper.

Enlace con sistema de manos libres en Enlace con sistema de manos libres en coches.coches.

Clave por defecto.Clave por defecto.

Oír o interferir en las conversaciones.Oír o interferir en las conversaciones.

Otras consideracionesOtras consideraciones Bluetooone / Bluesniper.Bluetooone / Bluesniper.

Potenciar la señal de los dispositivos Potenciar la señal de los dispositivos bluetooth mediante antenas.bluetooth mediante antenas.

Bluesniper:Bluesniper:http://www.tomsnetworking.com/Sections-article106.php

Otras consideracionesOtras consideraciones Gusanos.Gusanos.

Cabir: vallez@29A.Cabir: vallez@29A. Primer gusano de transmisión vía bluetooth.Primer gusano de transmisión vía bluetooth. Requiere aceptar la instalaciónRequiere aceptar la instalación Riesgo bajo.Riesgo bajo.

Commwarior: e10d0r.Commwarior: e10d0r. Primer virus de propagación por MMS.Primer virus de propagación por MMS.

Lasco: vallez@29A.Lasco: vallez@29A. Evolución de CabirEvolución de Cabir Infecta otros archivos “.sis”.Infecta otros archivos “.sis”.

Medidas de SeguridadMedidas de Seguridad

DesactivarDesactivar Bluetooth si no se utiliza.Bluetooth si no se utiliza. Configurar el dispositivo como “Configurar el dispositivo como “no detectableno detectable”.”. Utilizar un nombre que no sea representativo de Utilizar un nombre que no sea representativo de

las especificaciones técnicas.las especificaciones técnicas. Utilizar un Utilizar un PIN complejo.PIN complejo. No aceptarNo aceptar conexiones de dispositivos conexiones de dispositivos

desconocidos.desconocidos. Verificar, de forma periódica, los dispositivos Verificar, de forma periódica, los dispositivos

tipificados como de confianza.tipificados como de confianza. Configurar el dispositivo para que Configurar el dispositivo para que acepte cifradoacepte cifrado.. Mantener el “firmware” Mantener el “firmware” actualizado.actualizado.

ConclusionesConclusiones

Los fallos encontrados pertenecen a una Los fallos encontrados pertenecen a una mala implementación del protocolo en el mala implementación del protocolo en el dispositivo.dispositivo.

Actualmente se puede considerar un Actualmente se puede considerar un protocolo seguro.protocolo seguro.

Se han reportado debilidades en multitud Se han reportado debilidades en multitud de sistemas distintos.de sistemas distintos.

ReferenciasReferencias

http://www.bluetooth.orghttp://www.bluetooth.org

http://www.trifinite.org/http://www.trifinite.org/

http://www.securityfocus.com/infocus/1836.http://www.securityfocus.com/infocus/1836.

http://www.blackops.cn/whitepapers/http://www.blackops.cn/whitepapers/atstake_smashing_teeth.pdfatstake_smashing_teeth.pdf

http://www.geektown.de/index.php?http://www.geektown.de/index.php?catid=9&blogid=1catid=9&blogid=1..

AgradecimientosAgradecimientos Organización de NCN, Govern Organización de NCN, Govern

Balear, Parc BIT.Balear, Parc BIT.

!dSR!dSR

FREED0M, ICEHOUSE, Ilo--.FREED0M, ICEHOUSE, Ilo--.