#MundoHacker: Algunas nuevas maneras creativas de trackear al usuario

tracking sin gps

Por más que algunos nos hemos molestado estos últimos años en explicar de forma detallada cómo funcionan los sistemas de tracking de usuarios (WhitePaper), todavía veo que existe la absurda creencia que con llevar el GPS desactivado somos algo así como un ninja.

Nada más lejos de la realidad.

Es más, en su día profundizamos en los sistemas de seguimiento de patrones utilizados en la amplia mayoría de centros comerciales, y ecosistemas como el que Google ha llegado a desarrollar alrededor de Android son actualmente tan ambiguos que inclusive si una aplicación no hace uso de los servicios de localización podría, en base al uso de múltiples sensores y a los datos agregados de Google Play Services, llegar a saber nuestra posición exacta.

En esta pieza quería recopilar un par de las últimas técnicas conocidas del sector, que pueden o no estar siendo explotadas, y que demuestran una vez más que en un ecosistema rico en información la privacidad se ve lamentablemente minada.

Tracking basado en el conocimiento multimedia

Es probable que usted sea capaz de saber al ver una foto de sus amigos o familiares que ellos se encuentran en un lugar específico, ¿verdad? Esto se debe a que tanto las personas que aparecen como lo que puede ver del lugar probablemente le resulte familiar.

Pues esto mismo se puede aplicar a nivel genérico siempre y cuando cuentes con un ecosistema informacional lo suficientemente amplio. Cosa que, sin lugar a dudas, ocurre en Facebook.

Los chicos de la red social daban a conocer estos días que son capaces de identificar dónde está el usuario en una foto en base a todo el conocimiento multimedia que tienen a sus espaldas. Y utilizarían para ello atajos verdaderamente interesantes, como:

  • Pareado en base al archivo: Una de las variables que puede ayudarles a identificar con quién y dónde está una persona es en base al nombre del archivo (EN/PDF). Comparándolo con su base de datos y los registros temporales en los que se subieron hace que sea bastante probable que una imagen con nombre IMG_6523453.jpg y otra del tipo IMG_6523454.jpg que tienen unos metadatos semejantes hayan sido sacadas por el mismo dispositivo, ergo probablemente hay relación entre ambos usuarios.
  • Pareado en base a errores del hardware/software: Los ingenieros de la compañía han llegado a desarrollar patentes que permitirían identificar relaciones y localizaciones por errores visibles en las fotografías. Estos días se ha hablado mucho (EN) de que la compañía podría ser capaz de reconocernos en base a alguna mota de polvo de la cámara, y se ha llegado a especular incluso con que utilizaban el micrófono de nuestro smartphone para espiarnos, cosa que ya demostré que era falsa e innecesaria, pero basta revisar el documento para darse cuenta de que más allá de los datos puramente informáticos, esto aplica también a las variables identificativas del hardware y el software utilizado. Una manera sutil de aplicar fingerprinting en la vida real.
  • Pareado en base a los sensores: Lo trataré con más detalle en el siguiente apartado, pero también demostraban que era posible saber si en un mismo espacio (por ejemplo, un bar) dos personas estaban o no juntas (EN/PDF) gracias a la posición que marcan los acelerómetros y giroscopios de sus dispositivos. Basta con identificar primero la posición del smartphone en el bolsillo/bolso del usuario (dónde es arriba y dónde es abajo), y luego comparar si ambos se están o no mirando (sabiendo donde está el Norte), se mueven juntos (misma velocidad y dirección)… Con esto, faltaría únicamente compararlo con los datos que ambos tienen en común para obtener el resto de la información, y por ejemplo sugerirnos al día siguiente que nos agreguemos.

Sobra decir que todo esto son pruebas que a priori la compañía asegura que no se está utilizando en el día a día. Pero sirve para darse cuenta del potencial y el riesgo que tiene el acceso a una biblioteca de conocimiento lo suficientemente amplia.

Tracking en base a los sensores de nuestros dispositivos

¿Es posible conocer la localización de un usuario teniendo acceso únicamente a los sensores locales de su smartphone? Lo cierto es que sí, como demostraban recientemente varios investigadores de la Universidad de Princeton, en New Jersey:

El truco para rastrear con precisión a una persona con este método es averiguar qué tipo de actividad está realizando. Ya sea que esté caminando, conduciendo un automóvil o viajando en un tren o avión, es bastante fácil darse cuenta cuando sabes lo que estás buscando.

Los sensores pueden determinar cómo de rápido viaja una persona y qué tipo de movimientos hace. Moverse a paso lento en una dirección indica caminar. Ir un poco más rápido pero girar a ángulos de 90 grados significa conducir. Más rápido aún, estamos en el territorio del tren o el avión. Es fácil determinarlo en función de la velocidad y la presión del aire.

Una vez que la aplicación determina lo que está haciendo, usa la información que recopila de los sensores. El acelerómetro transmite su velocidad, el magnetómetro le dice a su relación con el norte verdadero, y el barómetro ofrece la presión de aire a su alrededor y la compara con información públicamente disponible. Comprueba con The Weather Channel los datos de presión de aire del barómetro para determinar a cuánta distancia está sobre el nivel del mar. Google Maps y los datos ofrecidos por US Geological Survey Maps proporcionan lecturas de elevación increíblemente detalladas.

Una vez que haya reunido toda esta información y determinado el modo de transporte que está tomando en ese momento, se puede comenzar a reducir en donde se encuentra el usuario. Para los vuelos, cuatro algoritmos comienzan a estimar la ubicación del objetivo y reducen las posibilidades hasta que su tasa de error llega a cero.

Si estás conduciendo, puede ser incluso más fácil. La aplicación conoce la zona horaria en la que se encuentra según la información que le ha proporcionado el teléfono. A continuación, accede a la información del barómetro y magnetómetro y la compara con la información de los mapas disponibles al público y los informes meteorológicos. Después de eso, realiza un seguimiento de los giros que haces. Con cada giro, las ubicaciones posibles disminuyen hasta que identifica exactamente dónde se encuentra.

Para demostrar cuán exacto es, los investigadores realizaron una prueba en Filadelfia. Tardaron únicamente 12 iteraciones antes de que la aplicación supiera exactamente dónde estaba el vehículo.

Por aquí tiene un enlace al paper (EN/PDF).

La investigación me ha parecido además un ejemplo más del valor que tienen los datos una vez somos capaces de agregarlos a una base de conocimiento.

Por separado la mayoría de estas variables son intrascendentes, pero basta que alguien sea capaz de compararlas con la biblioteca adecuada para que, de pronto, unos datos barométricos nos permitan limitar el número de posibles posiciones. Que esto, unido a los datos del velocímetro, sirva además para identificar cómo se está moviendo el objetivo, lo que a su vez supone limitar aún más los espacios disponibles (un tren solo viaja por las vías de un tren, un coche por carretera…). Y vamos sumando y sumando hasta que lo que a priori eran variables aisladas sirven para trackear a error cero la posición exacta del usuario.

Sin hacer uso del GPS, sin aplicar mecánicas de ambient listenning and seeing, y por tanto sin que el usuario, realmente, tenga manera de evitarlo.

 

________

Puede ver más artículos de esta serie en #MundoHacker, donde tratamos en varios tutoriales las medidas para atacar y/o defenderse en el mundo digital.

Y si el contenido que realizo le sirve en su día a día, piense si merece la pena invitarme a lo que vale un café, aunque sea digitalmente.

hazme patrono pabloyglesias