Menú principal

martes, 28 de junio de 2011

Gestión insegura de redes WiFi en iOS

Hace un par de semanas, Chema Alonso publicaba en su blog un comportamiento inseguro que tienen los dispositivos Apple con sistema operativo iOS, es decir, iPad, iPhone e iPod Touch. La inseguridad existe en la política de gestión de redes conocidas que hace este sistema operativo, a la hora de conectarse a una red WiFi. Por defecto, en el momento que un terminal con sistema operativo iOS tiene configurada activa la conexión WiFi, el dispositivo intentará conectarse a una red conocida

Este comportamiento no se puede cambiar, es decir, en el momento en que esté activada la conexión WiFi el dispositivo buscará una red conocida y se conectará a ella. Esta  política de conexión a redes conocidas es bastante confusa y tiene unos fallos en cuanto política que merece la pena resaltar.

Conexión a redes conocidas siempre

Muchos usuarios han confundido el selector que aparece debajo de la lista de redes WiFi como un selector de política de conexión automática sí o no, pero eso no es así. Ese selector solo tiene utilidad cuando no hay una red conocida cerca. Si hay una red conocida cerca se conectará sí o sí.

Figura 1: Con el selector apagado se conectará automáticamente a las redes conocidas

Figura 2: Con el selector encendido se conectará automáticamente a las redes conocidas

Solo en el caso de que no exista una red conocida en las proximidades, el dispositivo optará por dos políticas. La primera de ellas mostrará, mediante un cuadro de dialogo de notificación que saldrá por encima de cualquier aplicación que esté activa en ese instante, la lista de las redes en las proximidades, para que el usuario seleccione la que desea utilizar. 

En el caso de que no esté activo ese selector, el usuario deberá ir al panel de configuración de redes WiFi en el módulo de Ajustes y seleccionarla manualmente. 

¿Cuál es la lista de redes conocidas?

El problema que se plantea a continuación es saber qué redes son las que un dispositivo WiFi tiene almacenadas en un determinado instante como conocidas. Y el sistema operativo iOS no las muestra. Esta lista de redes se almacena un fichero en formato SQLite que se encuentra en la lista /private/var/Keychains/keychain-2.db, pero desde el interfaz gráfico es imposible consultar.

En dispositivos con jailbreak es posible acceder a ese fichero e investigarlo para conocer la lista de redes existentes. Además, para consultar esta lista junto con las contraseñas de conexión es posible utilizar la herramienta WiFi Paswords.

¿Cómo borrar una red conocida?

El sistema operativo iOS solo permite borrar una red conocida si está en las proximidades, pero si no, no es posible eliminarlas de la lista, lo que hace necesario modificar manualmente el fichero keychain-2.db. Esto quiere decir que puede haber una red conocida, a la que el dispositivo fue conectado alguna vez, y la próxima vez que la encuentre se conectará.

¿Cuál es la política de elección de red a conectarse?

Tras hacer múltiples pruebas, parece que los dispositivos con iOS, en el caso de que haya más de una red WiFi conocida en las proximidades, el terminal elije la última red a la que haya sido conectado, es decir, parece utilizar un sistema de elección LiFO (Last In First Out).

¿Cómo se reconoce una red WiFi?

Aquí viene el problema principal. Los dispositivos iOS utilizan el SSID, es decir, el nombre de la red WiFi, y la tecnología, es decir, el protocolo de cifrado y la contraseña de conexión. Esto es un problema serio, ya que debería utilizarse el ESSID (Extended SSID) para reconocer la red, y no solo el nombre. Esto puede generar que el dispositivo se conecte a una falsa red, solo porque tenga el mismo nombre y la misma configuración.

Todo este funcionamiento descrito puede llevar a serios riesgos de seguridad, que pueden ser dirigidos o aleatorios, dependiendo de la estrategia del atacante.

Ataque aleatorio con nombres de redes comunes

Supongamos una conferencia, un aeropuerto o cualquier lugar con concentración de personas en las que puedan existir terminales Apple con sistema operativo iOS. Es probable que muchos de ellos se hayan conectado alguna vez a una red WiFi abierta, llamada Default, Free o Public. Todos esos nombres son muy comunes en espacios públicos u hoteles, por lo que es probable que muchos usuarios tengan esa red en su lista de redes conocidas. Si no hay otra red conocida cerca, esos dispositivos se conectarán automáticamente e intentarán enviar y recibir datos todas las aplicaciones, que podrían ser interceptadas por el atacante que haya puesto el punto de acceso WiFi falso.

Ataque dirigido con nombre de red conocida

Este mismo ataque puede ser hecho de forma dirigida, por ejemplo, entre los compañeros de una empresa, o de establecimientos, como cafeterías, restaurantes, hoteles. Supongamos un entorno en el que todos los miembros conocen la contraseña de la red WiFi. Si uno de ellos quisiera atacar a otro, podría replicar la red WiFi que ambos conocen en otro entorno, donde la víctima no espere que exista esta red, haciendo que el dispositivo se conecte automáticamente a este falso punto de acceso.

Mejoras de seguridad en conexiones WiFi

Estos dos entornos permitirían al enemigo realizar ataques de man in the middle, robando o interceptando datos del terminal de la víctima, poniendo en riesgo la seguridad del usuario. Es por eso que pensamos que Apple debería cambiar la política de conexión a redes WiFi añadiendo:

a) La posibilidad de ver la lista de redes conocidas.
b) La posibilidad de eliminar una red conocida de la lista aún cuando ésta no esté cerca.
c) La posibilidad de elegir el orden de prioridad de conexión a redes conocidas.
d) El reconocimiento de redes WiFi por medio del ESSID.

Y puestos a pedir, sería recomendable que la dirección física de la tarjeta WiFi y la tarjeta BlueTooth no guarden ninguna relación que permita predecir la dirección Bluetooth a partir de la dirección mac de la tarjeta  WiFi.

Veremos si el funcionamiento de este módulo de conexión WiFi en la versión 5 de iOS de Apple mantiene este comportamiento o añade alguna modificación que incida en la seguridad de los usuarios, pero por si acaso, es recomendable apagar la tarjeta WiFi en momentos en los que no se vaya a hacer uso de ella.

8 comentarios:

  1. Se me ocurren varios comentarios a entraadas tan imparciales como esta o las de Chema:
    - Da la impresión que animáis a la gente a hacer Jailbreak. Es así?
    - Podéis asegurar que al hacer jailbreak no estais abriendo grietas por otros lados?
    - Bendecis algún sistema de jailbreak como 100% seguro?
    - Habéis tenido en cuenta que los usuarios que son conscientes de la seguridad de QUALQUIER dispositivo móvil es posible que no se conecte NUNCA a una Default, Free o Public?
    - Hace mucho tiempo alguien dijo que el principal origen de los problemas de seguridad y/o informática en general está entre la pantalla y la silla. Creo que los que nos dedicamos a estas cosas, más que meter miedo deberíamos educar a los usuarios en el uso de las más básicas medidas de seguridad.

    ResponderEliminar
  2. Hola Anónimo,

    en primer lugar gracias por juzgar la imparcialidad de la entrada.

    1) Nosotros no animamos a hacer el jailbreak, de hecho, como sabes, ya hablamos en un artículo de las ventajas e inconvenientes. Cada uno debe elegir, y hay que recordar que en muchos países es legal.

    2) Hacer jailbreak no garantiza que no haya grietas de seguridad, igual que no hacerlo tampoco lo garantiza.

    3) No, no bendecimos ningún sistema con jailbreak como 100% seguro, pero tampoco sin jailbreak.

    3) Sí, pero esos usuarios son también los que demandan mejores herramientas para decir hacerlo o no voluntariamente. La gestión de seguridad de la WiFi en iOS es insegura.

    4) No metemos miedo, educamos a los usuarios. ¿Qué les dirías tú ante este tipo de comportamiento inseguro? El que te dijo eso de la silla y el teclado, también te diría que la seguridad debe venir por defecto y por diseño.

    Saludos Malignos!

    ResponderEliminar
  3. 1) Ok, entonces el spam no es malo porque en algunos países no es ilegal?
    2) Recuerdo más de un caso en que el proceso de jailbreak dejaba un 'regalito' en el dispositivo, y veo que se pasa siempre de puntillas por ese aspecto.
    3) Podéis bendecir algún sistema 100%?
    3bis) Existe alguna WiFi 100% segura? (es que me viene a la memoria alguna ponencia tuya de hace unos años).
    4) Quien lo dijo fue un técnico de nivel alto de Microsoft en una conferencia, y no añadió nada más porque por entonces un simple lápiz USB le daba cerita al los XP, que no es precisamente seguridad por defecto y por diseño (te recuerdo que en XP la solución es bastante reciente, y no todo el mundo puede pagarse una actualización a Vista, 7 o las aplicaciones corporativas soportan un cambio de vesión de S.O.).
    Chema, me gustabas más cuando repartías cerita a todos, incluso lo hacías delante Rosa M. García
    A ver cuando empezáis a entender que lo que os criticamos es que pedimos ecuanimidad en la crítica y análisis, no me creo que conozcas a ningún maquero serio que te diga que OS X ni iOS es perfecto (a no ser que sea en una conversación en cachondeo y con una cerveza en la mano).

    ResponderEliminar
  4. Hola,
    Desde hace algunas semanas estoy siguiendo a Chema Alonso por twitter, su blog y, visionado su conferencias, hasta he comprado algún libro de informatica64.

    Hasta el día de hoy, creo que he tenido todo menos miedo...dire más, en algunas ocasiones me ha ayuda a salir de mi zona de seguridad (yo creía zona segura) y abrirme los ojos.

    Bajo ningún concepto creo que su intención sea meter miedo...ahora, si se quiere seguir viviendo con una venda en los ojos, cada uno es libre. Pero la actitud de vivir de forma despreocuda la seguridad como usuario asegura un susto tarde o temprano.

    Saludos,
    @kiakli

    ResponderEliminar
  5. Yo soy usuario habitual de OSX y también lector habitual de este blog entre otros y vamos a ver... Chema Alonso hace un análisis imparcial.. ¿quien es totalmente objetivo? seamos serios.
    Por otra parte, todo lo que dice es cierto, discutir lo evidente es bastante absurdo.

    Nunca he tenido la sensación de que seguridad apple anime a piratear, ni sea un blog para hundir a apple, se plantean las cosas como son.

    Me parece buen artículo, seguiré leyendo el blog y seguiré usando Mac OSX y mi iphone con iOS, como habituales, por el momento.

    Y conste que no conozco de nada ni a la gente del blog ni a Chema Alonso x´DDD pero se agradece el trabajo.

    Seguid dando caña a la manzana.
    Saludos.

    ResponderEliminar
  6. Coincido con el comentario de @kiakli, gracias por mostrarnos de forma tan clara estos errores de Apple.

    ResponderEliminar
  7. Y no sólo redes como "default", "public", etc., sino también otras como "Hotel AC", "Hotel NH", "ALSASUPRA", "Youth Hostel", "Starbucks"... Anda que no habrá redes con nombres más o menos típicos que se podrían usar para realizar ataques...

    ResponderEliminar
  8. @Anonimo troll del principio.

    1)La implicación lógica absurda que has hecho es porque has leído mi comentario.

    2)cierto, y?

    3)Podemos poner un sistema razonablemente seguro, pero ¿te parece bien tener un sistema evidentemente inseguro? Y sí, hay WiFis seguras, si quieres te enseño a montarlas con WPA2 TLS-EAP-TLS.

    Y respecto a la ecuanimidad, aquí creo que mis compañeros pusieron una queja de Microsoft...

    http://www.seguridadapple.com/2011/06/microsoft-actualiza-office-y-se-acuerda.html

    ¿Qué tiene que ver todo esto con la entrada de hoy? El sistema de WiFi en iOS es un truño, hay que arreglarlo y punto. Ya está. ¿Qué te apuestas a que Apple lo arregla? ¿Dirás entonces que no hacía falta?

    Saludos Malignos!

    ResponderEliminar

Artículos relacionados

Otras historias relacionadas

Entradas populares