miércoles, junio 15, 2011

Serios fallos de Seguridad en el iPhone y el iPad

Una de las características más destacables que tiene el sistema iOS de Apple, que usan sus equipos iPhone e iPad, es su sencillez de uso. Esta manera de ser hace que para muchos usuarios sea una herramienta perfecta, que pueden aprender a utilizar de forma rápida, lo que es parte de la popularidad que ha adquirido el teléfono iPhone, el iPod Touch y el popular Tablet iPad.


Sin embargo, esta simplicidad, en muchos casos está reñida con la seguridad los usuarios y así se ha visto en varias ocasiones. El no poder configurar una política de carga de imágenes o no en los correos electrónicos personalizada por mensaje, el no poder ver el código original de un mensaje de correo electrónico o el que una página web pueda quitar la barra de direcciones en el navegador, abren vectores a los atacantes. Vectores, que en sistemas operativos con más proteccion, hace tiempo que son conocidos, por tener mucha historia ya tras de sí, y se configuran con cuidado.

Hoy hablaremos de otro vector de ataque clásico que ya es conocido, pero que iOS de Apple no configura correctamente, y es la política de conexión a redes conocidas, que puede dar como resultado un ataque Man in The Middle (Hombre en el medio) en WiFi por medio de un rogue AP (Punto de Acceso Picaro) , es decir, por un falso punto de acceso WiFi que simula ser la red “habitual” de la conexión.

PRIMER FALLO: La lista de redes conocidas

Hay que destacar que la primera característica de falta de seguridad es la no posibilidad de ver cuál es la lista de redes que conoce un iPhone o un iPad. Esta lista se encuentra almacenada en un archivo en el teléfono o su iPad que se encuentra en la ruta /private/var/Keychains/keychain-2.db, pero que no puede ser visualizada desde ninguna opción del dispositivo, lo que deja al usuario “ciego” ante esta configuración.

La única forma de eliminar una red conocida es encontrase cerca de ella, y mediante una opción “olvidar esta red”. En cualquier caso, frente a un ataque de Rogue AP, esto sería inútil, ya que utilizaría el nombre de una red que el usuario sí quiere tener en su configuración, lo que no ayuda en mucho.

La opción de "Preguntar al conectar" es una de las menos entendibles opciones de la WiFi, ya que, se seleccione preguntar o no, siempre hace referencia a nuevas redes y no, a las redes conocidas, a las que se conectará de forma automática.

SEGUNDO FALLO: ¿Cuál es la política de conexión a las redes conocidas?

Esta es una de las preguntas con la que más hemos estado jugando. Supongamos un entorno en el que nuestro usuario tiene un alto movimiento geográficoy se conecta a 20 redes conocidas con asiduidad.. ¿cuál es la política de conexión de redes que sigue iPad? En el caso de clientes Wifi de Ubuntu en la versión 8.0.4 utilizaba una política de orden alfabético, mientras que en Windows y las nuevas versiones de Linux se puede elegir el orden manualmente. En el caso de iOS hemos visto que aplica una política LIFO, es decir, la última red conectada es la que tiene prioridad, pero en ningún caso el usuario puede configurar esta política.

TERCER FALLO: El más importante ¿Cómo reconoce a una red conocida?

Pues hemos podido constatar que esta política ha cambiado en las diferentes versiones, pero sigue siendo mala. En las versiones probadas inferiores a iOS 4.2.1, el reconocimiento de una red se hace solo por el SSID, es decir, únicamente por el nombre de la red. Esto abre muchos vectores de ataque, ya que bastaría con saber cuál es el nombre de la red utilizada en un entorno para que un hacker cree una con el mismo nombre totalmente abierta, para que los usuarios de iPad, iPod Touch o iPhone con versiones anteriores se conecten automáticamente a ellas.


Lo curioso es que, ante la existencia de las dos redes en el mismo entorno físico, prevalece la que tiene más potencia de señal. Así, como se puede ver en este entorno, tenemos un iPad con 4.2.1 conectado a una red WPA2-PSK, en la que se puede ver el candadito.

Creamos una red abierta, sin cifrado alguno ni autenticación, y lo que se consigue es que el iOS de los dispositivos de Apple, se desconecte de esa red y pase a conectarse a nuestro falso Rogue AP. Es decir, lo hicimos caer fácilmente en nuestra trampa, el sistema operativo no se protege ni ligeramente, el usuario del teléfono o el iPad, ni se entera, ni tiene ninguna posibilidad de configurar su equipo para protegerse.

Para iOS en versiones 4.3.1, hemos podido hacer las mismas pruebas, y esto no funciona de la misma manera, sin embargo, sigue abriendo un vector de ataque.

CUARTO FALLO: Reconocimiento de la red por nombre y descripción, pero no por el ESSID.


Una red puede identificarse por el SSID (nombre), el BSSID (solo para un único punto de acceso) o el ESSID (Extended SSID), para aquellas redes que tiene más de un AP que da servicio al mismo SSID. Es por ello que si en un edificio hay muchos AP con el mismo nombre para la red WiFi, el equipo puede ir saltando de uno a otro con normalidad. Si una red es de infraestructura debe ser reconocida por su ESSID, sin embargo iOS en la versión 4.3.1 (la que hemos podido probar) permite conectarse a cualquier AP que tenga el mismo SSID y la misma configuración de cifrado y autenticación. Y esto es un fallo de seguridad.



¿Por qué?

Pues es un fallo porque cualquier miembro conectado conoce la configuración de la red, por lo que puede crear un rogue AP con la configuración esperada por un iPhone o un iPad y hacer un “man in the middle” perfecto.

¿Solución?

El primer paso, evidentemente es actualizar a la última versión de iOS todos los dispositivos, ya que el funcionamiento en 4.3.1 es mejor que en el resto de los casos. En el caso de las empresas, la única solución sería utilizar sistemas NIDS para detectar los AP que se conectan en los alrededores y en el resto de los entornos (aeropuertos, cafés, hogares)… tener mucho cuidado, ya que, al no poderse ver las redes WiFi conocidas, es muy probable que alguna vez se haya conectado a alguna red Default, Public, Wifi, o similar, que pueda ser fácilmente suplantada.



¡ Happy Hacking Friends ¡



Initially posted by Chema Alonso (Madrid)

No hay comentarios.: