miércoles, 26 de septiembre de 2012

Explicación de la vulnerabilidad de USSD en Android

En la última Ekoparty 2012 realizada en Buenos Aires, (aqui pueden descargar la presentación del workshop que dicte), presento una charla en la que exponia una vulnerabilidad presente en casi todos los dispositivos con sistema operativo Android, el cual autoejecuta todos los comandos USSD que recibe. Mucho se hablo sobre está vulnerabilidad, es por eso que en el siguiente post intento poner un poco de luz sobre este tema.

Los códigos USSD son esos códigos que usan los carácteres * y #, por ejemplo si tecleamos  *#06# automáticamente aparecera un número llamado IMEI, este número identifica univocamente a cada celular dentro de la red, una especie de DNI de cada equipo. 
Estos códigos tienen numerosos usos dentro de las redes GSM, pero a grandes rasgos diremos que su uso es muy similar al de los SMS.

Ravi se apoyo en un tag perfectamente valido y definido en la W3C, (el ente que maneja los estandares de internet) que es el tag TEL:, esté posibilita que desde un link se puedan marcar números telefónicos. Los que venimos trabajando en movilidad desde hace tiempo, este tag nos es muy familiar ya que lo usabamos en la epoca de las páginas WAP, dicho sea de paso, 30 segundos de silencio por el protocolo WAP.... QEPD :-P
Esta capacidad de interpretar este tag no es exclusiva de los dispositivos con Android, si no de todas las plataformas, e inclusive de teléfonos de gama baja, solo es necesario que tenga un navegador móvil.
Hasta aqui, no vemos una vulnerabilidad a la vista, bueno el problema se da en que Android corre de forma automática  los comandos USSD, esto quiere decir que los ejecuta sin preguntarle al usuario.
Ahora bien, sumado a este pequeño problema se agrega que los dispositivos Android de Samsung usan un código USSD (*2767*3855#) que posibilita realizar el wipe (borrado de todos los datos y volver a estado de fábrica el teléfono).
Los vectores de ataque, es decir las formas en que un atacante podria aprovechar está vulnerabilidad son varios, a saber:
1) SMS
2) QR Codes
4) Links recortados, los que suelen usarse en Twitter.
5) y para los smartphones lanzados hace poco,  NFC.

Ahora me han hecho varias preguntas que vamos a intentar responder:

Todos los telefonos con Android son susceptibles a este ataque?
SI, Google anuncio que la ultima versión de Jelly Bean (4.1) no ejecuta automaticamente los comandos USSD. Ahora bien, no todos los Android son susceptibles al borrado total del teléfono, solo los Samsung.

Tengo un firmware de Cyanogen, puede ser victima de este ataque?
Al ser Firmwares personalizados y modificados, puede no tener ese bug, pero en las dos versiones que probe se ejecuto y se borro el teléfono. Por eso es cuestion de probar.

Como evito esto?
-Si tienes NFC, deshabilitarlo. (al igual que el Bluetooth)
-No abrir links acortados de fuentes desconocidas.
-No usar para leer QR Codes la app que viene por defecto como el QRDroid.
-No abrir links que vienen en SMS de fuentes desconocidas.
-Recientemente Collin Mulliner, un investigador alemán, desarrollo una aplicación que posibilita no ejecutar los comandos USSD de forma automatica, se descarga de AQUI

No tengo un dispositivo Android de Samsung, me tengo que preocupar?
Si, ya que otra de las formas de ataque consiste en deshabilitar la SIM card, colocando PIN y PUK inválidos, o sea que si fueramos victimas de este ataque tendremos que ir a comprar o pedir el cambio de la SIM Card.

Como saber si mi teléfono tiene está vulnerabilidad?
Haz click aqui, tranquilo no pasa nada, si en tu teléfono aparece tu numero IMEI, significa que puedes sufrir este ataque.

Conclusión
Esta vulnerabilidad NO ROBA DATOS, NI LOS ENVIA A NADIE. Pero si logra que como máximo perdamos todos los datos del telefono (recordar siempre hacer un backup del mismo), y como mínimo nos inhabiliten la SIM Card y quedemos incomunicados hasta tanto podamos ir a cambiarla o comprar otra.

Espero que esto ayude y deje mas tranquilo (o alimente la paranoia) de todos.
Saludos.

martes, 12 de junio de 2012

Las mejores practicas para asegurar tu móvil.

Samsung SIII, iPhone 4S, New iPad, Blackberry, Nokia Lumia, etc. Ok, tenemos los dispositivos móviles mas rapidos y poderosos, pero y que pasa cuando los perdemos o nos lo roban?
A todos nos gusta disfrutar de nuestros gardgets, pero pocos son los que toman recaudos para prevenir la fuga de información de los mismos. Desde hace un tiempo leemos y escuchamos noticias de que fotos intimas o comprometedoras de famosos han salido a la luz. Que medidas debemos tomar para prevenir cuando nos pasa este tipo de eventos?

1) Colocar pin al desbloqueo de pantalla, si se que es molesto, que es incomodo pero te acordaras de estas palabras despues. repito ponle PIN a tu telefono, los Android usan patron, pero con algunos amigos nos dedicamos a descrifrar los patrones de la gente en base al dibujo que realizan con el movimiento de los dedos, naturalmente nuestros dedos tienen una capa de grasa es por eso que sugiero colocar PIN.

2) Realizar borrado total (memoria dispositivo y SD card) luego de N cantidad de intentos de desbloqueo frustrado. Se que suela drastico, pero la realidad es que si tu dispositivo cae en malas manos lo que menos quieres es que pueda ver tus datos como tu agenda telefonica, SMS y fotos.

3) Encriptado de datos, no todos los telefonos tienen esta función, pero en general casi todas las Blackberry, las mas polulares como las 8300 y 8500 lo tienen, los iPhone a partir de la versión 3Gs, y los Android, en general los móviles que que poseen mas de 800 MHZ de velocidad soportan está función, lo ideal es encriptar la memoria del dispositivo y la SD card.
Ante la pregunta de si el móvil se puede poner mas lento, la respuesta es si, pero creanme que ante un caso extremo la tranquilidad de que tus datos estan seguros, vale la pena perder ese poco de velocidad.

4) Si tiene tu IOS o Android Jailbreakeado o Rooteado, cambia la clave root de tu dispositivo, y deshabilita la función de SSH mientras no la usas.

5) Usa algun servicio en la nube para mantener tus contactos y calendario. No guardes tus contactos en la SIM Card, hoy en dia cualquier Smartphone o Tablet al sincronizar tu correo de Gmail, por ejemplo automaticamente descarga todos tus contactos como calendario, es muy práctico tambien si cambias seguido de teléfono, ya que con solo borrar la cuenta de correo de Gmail automaticamente se borran los contactos y el calendario.la otra ventaja clara es que si tienes varios dispositivos si das de alta o borras un evento o contacto, automaticamente se soncronizara en todos los dispositivos.

Espero que estos consejos les sirvan y sobre todo los pongan en practica.