jueves, julio 21, 2016

Servicios MAC-quiavélicos

Más o menos al cabo de un año he vuelto a pasar por Heathrow y el departamento de IT se acordaba de mí: "Hello m, Welcome to Heathrow", en la página web de arranque de la Wi-Fi. Un año han guardado mi nombre de usuario ("m") y mi dirección MAC y ni siquiera llegamos a firmar un contrato. ¿Es esto para preocuparse?


Una dirección MAC es un identificador del hardware con el que te conectas a la red y viene dado de fábrica. La MAC se usa para dirigir paquetes de red a sus respectivos destinatarios y generalmente no trasciende la red local: si tienes un PC en casa, tu propio router ve la dirección MAC del PC, pero desencapsula los paquetes IP, desecha la MAC y los encapsula de otra manera antes de enviarlos al exterior (a Internet). La MAC, por así decirlo, se queda en casa. Allí está bien.

Pero también los móviles tienen hardware de conexión de red (p.ej. Wi-Fi), el móvil lo llevas encima y esa MAC es entonces vista por todos los puntos de acceso (AP) Wi-Fi a los que se asocia (y que pasan a formar parte entonces de la red local del móvil). Sin ir más lejos: esta semana durante el IETF 91 el espónsor de conectividad (Time Warner) tenía desplegada por toda la ciudad una red Wi-Fi que puso a disposición de los asistentes a la conferencia de manera gratuita. ¡Anda que no es bonito pasearse por la noche por Honolulu y estar al mismo tiempo en contacto con tus seres queridos a 12000 km de distancia! Mil gracias al espónsor por ello. Pero una pregunta hipotética:

¿Qué ha podido saber el espónsor de mí a cambio? A través de mi MAC, sus APs han podido identificarme y perseguir mi trayectoria: cuándo y dónde he estado, dónde he parado, en qué tienda (o en qué playa ;-) y cuánto tiempo. Probablemente también ha podido saber de quién iba acompañado (a través de MACs que estuvieran cercanas a mí, siguieran mi trayectoria y volvieran conmigo a la conferencia). Y todo ello independientemente de si mis comunicaciones (web/correo/etc.) estaban encriptadas o no.

Time Warner no lo hará, pero existen otras compañías (Euclid, Navizon, ...) que lo hacen de manera comercial... y con éxito: según esta presentación, más de 50 millones de individuos en sus bases de datos en EEUU con sólo 5 meses de actividad. Si lo hacen de manera comercial es que se puede ganar dinero. ¿Cómo? Échale un vistazo a las actividades ilegales de papeleras londinenses en la filimina 32 de la presentación:

La papelera que te conoce y te pone publicidad personalizada


Te voy a dar un respiro para que digieras lo que has leído hasta ahora. Porque la situación es más dramática de lo que piensas: tu móvil va difundiendo su MAC aunque no te asocies a ninguna red.

Como bien sabes, cuando el Wi-Fi del móvil está activado puedes hacer que te enseñe todas las redes cercanas (sin haberte aún conectado a ninguna ellas). Este escaneo de red se puede realizar de dos maneras:
- Escaneo pasivo: el móvil no hace nada más que esperar a que llegue por el aire una trama llamada "beacon" que envían los APs periódicamente dando señales de vida y publicando su nombre.
- Escaneo activo: el móvil envía una trama llamada "probe request" preguntando quién está cerca y espera a que los APs activos que le escuchan respondan inmediatamente con su respectiva "probe response".

Por razones de eficiencia los móviles suelen emplear el escaneo activo(!), en vez del pasivo: El pasivo tardaría demasiado y todos nos pondríamos nerviosos delante de la pantallita de marras porque no vemos todas las redes disponibles lo bastante rápido. Pero el no esperar tiene su precio: mientras que el escaneo pasivo no revela tu presencia, el activo sí: las tramas "probe request" contienen tu MAC en la cabecera, independientemente de si la red usa WPA para datos o no, porque tramas de administración y control nunca van encriptadas.

¿De verdad? Mira, acabo de montar un AP falso (con airbase-ng y airmon-ng) en el lounge del aeropuerto de San Francisco durante 5 minutos de reloj:


Filtro subtipo 0x04 corresponde a probe request


Sólo escuchando en el canal 11 y sin haberme movido de mi sofá he visto 360 dispositivos diferentes (mi propio móvil incluido). Nota aparte: en esos cinco minutos un panoli se ha asociado a mi AP experimental a pesar de que el nombre de la red (SSID "hacking") no prometía nada bueno.

Vaya. Sólo quería escribir un par de líneas y esto ha acabado siendo un verdadero sermón. Pero es por tu bien.

¿Qué se puede hacer al respecto? Una opción es llevar apagado el Wi-Fi en el móvil por defecto y sólo encenderlo cuando estés en casa (o en la oficina o donde sea que quieras asociarte a un AP conocido en concreto). Creo que hay apps para no tener que hacerlo a mano, pero no las he probado. No sólo los desarrolladores de aplicaciones ofrecen soluciones: Apple se ha tomado en serio el problema y en el último WWDC 14 en Junio anunció que iba a hacer cambios a iOS para que la MAC que anuncia cambiara en cada conexión y de manera aleatoria. Una idea muy buena, aunque al parecer no tan fácil de implementar.

Hasta que los demás sistemas operativos hagan otro tanto (o los estándares cambien) una opción más es juguetear tú mismo con un par de scripts para randomizar la MAC (soporte para Linux, Windows y Mac OS X). Yo lo he estado probando con el portátil esta semana en el IETF 91 en el marco de un experimento sobre el tema.