jueves, mayo 16, 2013

Tu privacidad en peligro por culpa de las conexiones WiFi

Hace tiempo que quería escribir sobre este tema que me tiene dando vueltas a la cabeza, y no es otra que la privacidad de las personas y las redes WiFi que frecuenta. En un titular, la idea es que alguien puede saber qué lugares frecuentas - includo dónde vives - gracias las redes WiFi que busca tu dispositivo. Es decir, saber en qué ciudades has estado, en que hoteles, en qué bloques de edificios o en que restaurantes has comido, siempre que te hayas conectado a una red WiFi allí y no hayas tenido la precaución de eliminarla.

Esta afirmación tiene muchos detalles importantes, así que voy a intentar ir por partes para no dejarme nada, y poder llevaros a una conclusión final entendible. Comencemos por un fallo de seguridad en los dispositivos iOS, Android y los equipos Mac OS X - seguro que alguno más también, pero no los Microsoft Windows -, como aperitivo.

Búsqueda de redes WiFi

Cuando una red WiFi expone su SSID (su nombre) mediante la difusión de Beacon Frames, no es necesario que ningún equipo cliente vaya buscándola incansablemente. ¿Qué ganaría?. El equipo sólo podría conectarse a ella si la red está emitiendo Beacon Frames que indiquen que está activa.

Sin embargo, aunque la red no esté oculta, los equipos con iOS, Android o Mac OS X, buscan insaciablemente todas las redes a las que se han conectado alguna vez, lo que permite a cualquier atacante que escuche los mensajes Probe de estos dispositivos, saber a qué redes se ha conectado alguna vez ese dispositivo.

Figura 1: SSIDs buscados por un iPhone

Si a esto le sumamos que ni iOS, ni Android, ni Mac OS X validan el BSSID - y la validación BSSID es importante -, los hacen más que propensos a los ataques de Rogue AP, pero esa es otra historia de la que ya hemos hablado por aquí hace tiempo.

En el caso de los sistemas Microsoft Windows esto no es así. Si un equipo con Windows 6.X {Vista, 7 u 8} tiene configurada una red WiFi, este equipo no emitirá un mensaje Probe si la red no está emitiendo los Beacon Frames, con lo que no descubrirá nunca a qué redes se ha conectado en el pasado. Como debe de ser para proteger la seguridad de un cliente.

Conexiones a redes WiFi ocultas

Pero como en todo, hay dos caras en esta moneda. Si el dueño de la red WiFi, para quitarse curiosos ha decidido ocultar la red WiFi mediante la no emisión de Beacons Frames, entonces los clientes Microsoft Windows no se conectarían nunca a esa red, ya que no emitirían mensajes Probe hasta no recibir un anuncio de la presencia de la WiFi. Para ello, en la configuración de las propiedades de una red inalámbrica es posible marcar una opción que dice: "Conectar aunque la red no difunda su nombre (SSID)".

Figura 2: Opciones de conexiones a redes WiFi en Windows

En ese caso, los equipos Windows emitirían mensajes Probe para localizar las redes WiFi que están ocultas - solo con estas redes -, pero claro, esto lo harían en cualquier ubicación donde esté el sistema, descubriendo las redes a las que se han conectado en el pasado. La ventaja en Microsoft Windows es que se puede elegir - como en muchos de los ejemplos descritos en Máxima Seguridad en Windows -, y en el peor de los casos se comportaría como un Mac OS X, y solo a cambio de tener el beneficio de poder tener la red WiFi oculta - algo se gana -.

Pensando en la privacidad de los clientes

No obstante, visto lo visto, creo firmemente que puestos a elegir es mejor no descubrir a qué redes se conecta una persona - para garantizar su privacidad - a costa de no ocultar el SSID de una red WiFi, ya que esa protección solo es para curiosos, y no para atacantes que estén haciendo wardriving en la zona. Cualquier atacante avanzado solo tiene que esperar un poco en la zona para descubrir toda la información de la red, ya que con el primer cliente que se conecte será posible descubrir que allí hay una red WiFi oculta con un SSID que va en el mensaje Probe de establecimiento de conexión.

Por otro lado, el que una persona vaya contándole a todo el mundo a qué redes se conecta es como ir contándole a todo el mundo dónde vive, dónde trabaja, dónde veranea y en que lugar vive su amante. Algo que puede afectar seriamente a la privacidad de los clientes.

Cómo saber en qué lugar está una red WiFi

Hasta el momento yo he dicho que publicar a qué redes te conectas es como enumerar una lista de sitios que frecuentas, y esto es así gracias a las bases de datos de wardriving creadas con el esfuerzo de muchos amantes de esa disciplina. Estas bases de datos no suelen ser abiertas para todo el mundo, y suele haber sistemas de radio para acceder a ellas - es decir, tú colaboras reportando las redes WiFi que descubra tu equipo y te dejamos consular la base de datos -. 

Figura 3: Popular herramienta de Wardriving WiFiFoFum

Ejemplos de estas herramientas pueden ser WiFiFoFum o WiFiGet Scan, pero si quieres ver un ejemplo funcional de una base de datos grande, Wigle.net tiene una base de datos de los Estados Unidos bien repleta, y permite buscar todas las redes en ubicaciones GPS utilizando el SSID.

Figura 4: Ubicación GPS de la red amanda3413 en Wigle.NET

Los grandes Wardrivers: Google y Apple

Para que la localización de personas se pueda hacer a través del valor SSID de la red WiFi es necesario contar con una buena base de datos de nombres SSID, valores BSSID y ubicaciones GPS, lo que implica muchos amantes del wardriving peinando ciudades. 

Para solucionarlo, los grandes wardrivers, a.k.a. Google y Apple, decidieron convertir a todos los clientes de sus terminales iOSAndroid - además de utilizar el Google Street Car - en wardrivers, de tal manera que cada vez que un usuario con los servicios de localización activados en su dispositivo detecta una red WiFi, reporta su posición tanto a Google como a Apple.

Figura 5: Ejemplo de reporte a Apple de información de red WiFi

Esto dio lugar a la famosa charla de "Cómo conocí a tu chica" en BlackHat, en la que se hacía uso de la API de Google para localizar ubicaciones físicas de equipos WiFi basados en su dirección MAC. Pero la API está ahora prohibida. Google ha capado esa conexión.

Lo curioso es que el reporte no es inmediato, así que si activas los servicios de localización se reportan las últimas redes WiFi y sus posiciones, lo que lleva a que el propio reporte de las redes WiFi a las que te conectas con un iOS sea también un leak de información que deje claro a que BSSIDs te conectas.

Debido a este comportamiento de los dispositivos Apple se ha publicado iSniff-GPS, que permite capturar los mensajes que emite un iPhone/iPad pudiendo localizar las redes WiFi a las que se ha conectado y su ubicación GPS. Adios privacidad.

Figura 6: iSniff-GPS mostrando en un mapa las redes a las que se conecta un terminal iOS

¿Cómo protegernos de esto?

Tras analizar esto, hay que suponer que, el SSID y el BSSID de nuestra red WiFi, y su ubicación GPS, de una manera u otra ha acabado en una base de datos de Wardrivers, ya sea de aficionados a esta disciplina o de grandes profesionales en esta materia como Google o Apple. Así que, cualquiera que sepa a qué redes nos conectamos acabará por localizar nuestros lugares de hábito, lo que para muchas personas puede ser un grave problema.

Para evitar esto, si tienes un equipo portátil, parece que Windows es el que mejor trata la seguridad de las conexiones WiFi, así que no ocultes el SSID de tu red WiFi, fortifica la red para estar más protegido contra los ataques, y listo. Como truco, utiliza SSIDs comunes, aunque no demasiado. Me explico, lo suficientemente comunes para que salgan bastantes redes con el mismo SSID en cualquier base de datos de wardriving, pero no demasiado comunes como para que alguien haya decidido pre-calcularse las rainbow tables de ese SSID para WPA/WPA2-PSK. Aquí tienes un artículo sobre cómo atacar redes WPA/WPA2-PSK.

Si tienes la red oculta, o un Mac OS X, o un terminal móvil con iOS {iPhone & iPad} o Android, lo mejor que apagues la WiFi siempre que no sea estrictamente necesario que la tengas encendida, usa conexiones 3G - cuidado con las GPRS - siempre que te sea posible, y borra cualquier red WiFi que hayas usado una vez termines de trabajar con ella - y aún esté en tu ámbito de alcance -.

Saludos Malignos!

18 comentarios:

  1. Espectacular.
    Un muy buen artículo.

    Ahora a leer los enlaces que dejaste por toda la pagina para complementar la lectura.

    ResponderEliminar
  2. Gran artículo, Chema. Enhorabuena!

    ResponderEliminar
  3. Buen artículo también por mi parte Chema. Guardo el post en favoritos que lo veo muy muy completo.
    Un saludo y a seguir así

    TraviS - SecForYou.com

    ResponderEliminar
  4. 8 pestañas de lectura interesante han salido de este artículo, me encanta la forma de redactar de Chema Alonso

    ResponderEliminar
  5. En todo caso, ese problema sólo existe con los smartphones, no con los portátiles, ya que no conectas el portátil a internet a todos los sitios que vas, además que un portátil (con linux por ejemplo) no enviará datos sobre tus redes preconfiguradas.

    Pero en los smartphones si que reconozco que puede llegar a ser un problema, también a nivel familiar. Imaginad que tu señora descubre configurada en tu smartphone la wifi de casa de su mejor amiga, no le haría ninguna gracia.

    ResponderEliminar
  6. No son pocas las personas que he visto con su portátil de empresa conectadas en zonas wifis de cafeterías y demás aunque está claro que el objetivo principal son los móviles.

    Juan Felipe - SecForYou.com

    ResponderEliminar
  7. Un artículo muy interesante. Algunas cosas las conocía, otras como que se hace un probe automático de todas las redes conocidas no... es totalmente absurdo! Imaginaba que más bien escuchaba beacons y buscaba entre su lista si el AP lo tenía (que está feo feo que no haga comprobaciones de bssid, pero bueno). Me voy a poner a limpiar la lista a la de ya :P!

    Parece mentira que con todos los avances, algunas cosas sigan en un estado tan precario...

    ResponderEliminar
  8. Y ¿Qué pasa con equipos que tengan instalada alguna distribución GNU/Linux? ¿también tienen ese fallo de seguridad?

    ResponderEliminar
  9. Hola Buenas tardes ..Buen articulo y he podido darme cuenta que estaras de visita por Perú me gustaria que pueda darme un email de contacto, ya que me gustaria comprarle sus libros y seria mucho mejor si en su viaje pueda traerlos. Gracias.

    ResponderEliminar
  10. La tecnología Wifi es muy cómoda, pero su seguridad es de lo malo lo peor. Tal es así que incluso cultando tu SSID (red oculta) apareces en un rastreo simple como RED OCULTA (es de risa). Algunas redes ocultas aparecen como un espacio en blanco junto al medidor de intensidad de señal, de cualquier modo la MAC es visible.

    (Para curios@s... incluso sen SO´s Windows). Por su parte, algun@s técnic@s instaladores de routers, instalan sin cambiar (de forma razonablemente segura) la contraseña de fábrica, e incluso dejan abierto el puerto bluetooth (si el modelo lo permite se entiende) así a lo kamikaze.

    No forman al cliente ni le informan en un lenguaje claro (esto es responsabilidad del proveedor), y de los teléfonos de asistencia mejor ni hablamos.

    ResponderEliminar
  11. Chema, sobre las bases de datos, aquí en Madrid, te puedo garantizar y señalar un buen puñado de culpables que estando "legalizados" hacen negocio con ellas, incluso hay personas pagadas (equipos completos) cuya misión es el mapeo por sectores.

    Y no creas que poseen grandes conocimientos, los sueltan con programitas y su única misión es recoger especialmente la MAC, ahora hay más mapers gracias a la crisis (se llama esclavitud), pero sí, también envían furgos tipo Telecos.

    Luego sólo les basta cotejar datos con otras bases y comparar los tipos de identificativos y asignaciones de los proveedores para dar con el cliente, hacer spam telefónico (a la hora de la siesta me tienen frito) y a revender copias de las bases.

    Luego como somos tont@s, apenas denunciamos a la OCU.

    ResponderEliminar
  12. Muy interesante el artículo.
    Un comentario menor: al ocultar el SSID se omite su valor en las tramas de Beacon, pero estas se siguen enviando al ser imprescindibles para la coordinación del diálogo.
    TR

    ResponderEliminar
  13. Oye TraviS, gracias por esta gran tarde (cotilleando por el Chat) al final me he petado 3 cubatas más je je. Ponte bueno para poder darle caña a esas tarjetas virtualizadas.

    Y gracias a X!REDMASSEGURA por banear al indeseable de hoy.

    Chema, mañana nos vemos y gracias por lo de Alex tronco. http://es.scribd.com/doc/88179762/Alejandro-necesita-ayuda#fullscreen

    ResponderEliminar
  14. Muy interesante la entrada, aunque me gustaría sugerir un uso más correcto y adecuado del término privacidad. Este ha sido importado del ingles "privacy" está claro, pues no existe en el uso como tal en nuestra lengua, así que lo correcto sería usarlo en forma de préstamo lingüístico en la forma inglesa original. Aunque la RAE lo recoja, mucha gente no entiende adecuadamente su significado.

    Personalmente me gusta más usar el término intimidad. El término intimidad lo entiende perfectamente hasta mi abuela, y nadie discute el derecho a la intimidad, pero el derecho a la privacidad se entiende muchas veces como el recelo de algunas personas, en muchos casos paranoicas, a preservar su vida en la red.

    Defendamos el derecho a la intimidad antes de que lo perdamos.

    Saludos

    ResponderEliminar
  15. Muy buen artículo Chema. Este tema de establecer un perfil del cliente a través de sus probes es algo que yo siempre he pensado y tenido en cuenta. Es asombrosa la cantidad de información que se puede conocer. Una vez, le di un ejemplo en vivo de esto a un amigo, preguntándole por si había estado hace poco en un conocido pabellón de deportes y se quedó asombrado.
    Respecto a esto, en su día me hice un pequeño script en Perl para poder clasificar todos los probes que emite un dispositivo y organizar esta información a partir de una captura con aircrack o Kismet, que suele proporcionarnos toda esta información pero de manera desorganizada y difícil de leer. Si lo llego a saber te lo paso para que incluyeras un ejemplo guapo.
    Por cierto F4l53-19, grandes tus comentarios y grande tu post en el blog de Chema y en tu blog "Vida artificial". Se nota que eres de los grandes y que tienes mucho que enseñar a muchos.
    Lo dicho, gran entrada Chema. Eres un crack

    ResponderEliminar
  16. chema por favor una pregunta que me urge si me puedes contestar el wps por boton no por codigo tambien se puede atacar grasias

    ResponderEliminar
  17. Conocí los comienzos del wardriving y confirmas mis sospechas. Los grandes usan a esta "función".

    Quedo horrorizado cuando veo las licencias que todo el mundo acepta sin pestañear.

    Gracias por este artículo y en general por toda tu labor divulgativa.
    un saludo

    ResponderEliminar
  18. Se está dando la vuelta: Microsoft cada día más preocupados por la privacidad, y Google cada día más preocupados por violar la privacidad.

    ResponderEliminar