11.6.12

“Ubercookies”: Ellas saben quién eres

Originalmente publicado por  Luis Enrique Corredera en elreservado.es, 12 de mayo de 2010

En los anteriores artículos sobre privacidad en Internet [1,2] habíamos presentado a las cookies, y a sus hermanas mayores, las SuperCookies, como medios para rastrear los hábitos de uso de internet, y de paso, invadir nuestra privacidad. A modo de recuerdo, diremos que las cookies son pequeños ficheros de texto que almacena nuestro navegador Web Internet Explorer, Firefox, Opera, Safari, Chrome, etc. para mantener cierta información del visitante de una página Web durante la visita y así poder disfrutar de un Internet más personalizado, pero en su lado más oscuro encierran el poder de comprometer la confidencialidad del usuario sobre sus accesos a información y sitios Web.

Concienciados de las posibilidades de las cookies, hemos configurado nuestros navegadores Web para evitar que las páginas Web nos pongan cookies de terceros sitios Web (generalmente redes de afiliación de empresas especializadas en publicidad en Internet). Sin embargo, ignorábamos la existencia de las SuperCookies (Flash Cookies, LSOs, etc.), que al más puro estilo zombie son capaces de resucitar las cookies normales que hemos borrado, almacenar muchísima más información, compartirse entre diferentes navegadores, y evitar ser borradas con los métodos habituales de los navegadores Web. A pesar de lo fuertes que son las SuperCookies, hemos visto cómo “vencerlas” configurando tu pluging de Flash, y usando el complemento BetterPrivacy [3] para tu navegador Web.

Hoy introduciremos un nuevo término en privacidad Web: Ubercookies. Acuñado por el investigador Arvind Narayanan [4,6], agrupa y combina conceptualmente la conocida técnica de robo del historial de navegación Web (History Stealing) con la exposición de identidad que las personas practican en las redes sociales. Veamos en qué consisten. ¡Cuidado! Si eres propenso a las paranoia [5], no sigas leyendo este artículo, o nunca más estarás solo.

Robo de historial de navegación Web

A estas alturas del siglo XXI, para ninguno de nosotros es ajeno que nuestros navegadores web se acuerdan de dónde hemos estado navegando, y que estos recuerdos los usan para mejorar nuestra experiencia de usuario “con memoria de pez”: todos los navegadores Web tienen una opción de historial que nos permite consultar las páginas que hemos accedido en Internet en el pasado (muy útil más de una vez), y también tienen la deferencia de pintar de otro color más “apagado” los enlaces que ya hemos visitado en las páginas Web, para que sepamos distinguir dónde hemos estado y donde no.

Sería una catástrofe desde el punto de vista de la privacidad que las páginas Web por las que visitemos pudieran tener acceso a cada uno de los elementos que contiene nuestro historial Web, y es algo que técnicamente no está permitido hacer mediante Javascript. (Si eres un purista de la seguridad, estarás pensando en aprovechar vulnerabilidades en los navegadores Web, como en la mismísima Pwn2Own [7], que han servido incluso para robar mensajes sms de teléfonos iPhone [8]. Son técnicas válidas, pero casi ninguna de estas técnicas persisten durante una década sin solución, como las que explicarán este artículo).

Un momento, ¿Javaqué? Javascript es una lengua de programación creada en 1995 por Netscape Corporation (los mismos que las cookies, sí señor) para hacer posible la interacción con el usuario en las páginas Web sin necesidad de enviar información al servidor Web y esperar una respuesta. Javascript permite, entre otras muchísimas cosas, la interacción con el historial Web del navegador, enviando al usuario a la página que visitó anteriormente, o varias páginas atrás, o incluso saber cuántas páginas ha visitado antes de llegar a la página actual sin tocar el botón atrás del navegador. Javascript es hoy una pieza fundamental en la programación de páginas Web, y su uso ha permitido sitios Web mucho más ágiles, cómodos y personalizados, añadiendo contenido de forma dinámica a las páginas, cambiando sus colores y formatos, etc. Aunque seríamos muy inocentes al pensar que Javascript sólo tiene ventajas para el usuario. El lado oscuro de Javascript es posiblemente uno de los más apasionantes en la tecnología, y dará lugar a nuevos artículos en ElReservado en un futuro. Pero ahora centrémonos en el robo de historial.

Reflexionemos: si nuestros navegadores Web no permiten enumerar cada elemento del historial del navegador Web, pero pintan ingenuamente los colores de los enlaces visitados de un color más apagado, ¿cómo puede alguien saber qué páginas Web hemos visitado? La respuesta es sencilla: basándonos en el color con que el navegador pinta los enlaces visitados. Ilustrémoslo con un ejemplo: imaginaros que alguien quiere saber si habéis visitado el sitio Facebook de ElReservado (http://www.facebook.com/elreservado). Sólo tiene que pintar el enlace en una página Web, y mediante Javascript, mirar qué color tiene el enlace, cosa que además puede hacerse de forma invisible para el usuario, sin que éste se entere. Y de esta forma [9,10], cualquier página Web podría robarte el historial, sabiendo si estuviste en el grupo de Facebook de ElReservado.

El estado de la tecnología actual permite que responder a varios miles de estas preguntas mediante Javascript lleve una cantidad despreciable de tiempo (muy pocos segundos). ¿Miles? ¿Para qué miles?

Redes sociales + robo de historial = Ubercookies

Querido amigo, que un día fuiste niño y jugaste con tus amigos al “quién es quién”, y de forma deductiva adivinabas la identidad del personaje que había elegido tu amiguito en base a una serie de preguntas estructuradas: ¿Es chico o chica? Chico. ¿Tiene gafas? Sí. ¿Tiene pelo largo? No, no tiene pelo. ¿Tiene perilla? Sí. Seguro que es Luis. (Para los puristas, esto tiene una base científica llamada Teoría de la Información, enunciada por Claude Shannon, y sobre la que puedes leer más en [11 y 12]).

Las redes sociales son un filón desde el punto de vista del seguimiento de usuarios en el Web, y los grupos y páginas de las redes sociales son el cebo que mordemos para caer en la jaula de la identificación: ¿Es fan de “ElReservado”?. Sí. ¿Le gusta el grupo musical “Mess of Skirts”?. ¿Le gusta el grupo de “iPhone Developers”?. Sí. ¿Sigue el Twitter de ThiefBuster y a Fernando Rueda?. Sí. ¡Seguro que es Luis!

¿Y cómo sabe una tercera Web si me gustan todas esas cosas, si no tiene acceso a mi perfil con mi login y mi password? Es sencillo, usando las direcciones de muchos grupos [13,15] en las redes sociales en una “batería de preguntas” que el navegador contestará sin rechistar, como si el propio Humphrey Bogart le apuntara con el flexo en una peli de cine negro. Este mismo planteamiento llevado al límite, y con varios miles de preguntas es el resultado de la investigación presentada por la gente de ISecLab en el 31º Congreso de Seguridad y Privacidad del IEEE [14,15] (de lectura más que aconsejable para los puristas de la seguridad).

Cómo protegernos

Ahora que ya somos conscientes de que podemos ser observados de forma silenciosa por todo aquel que quiera hacerlo, y que además pueden llegar a conocer nuestra identidad concreta gracias al voyeurismo de las redes sociales, deberíamos pasar a una posición defensiva. ¿Cómo? Un buen paso consistiría en desactivar la funcionalidad de Javascript en los navegadores Web, aunque sería muy incómodo trabajar sin él (en algunas Web, incluso imposible). El complento “NoScript” [16] de Firefox sirve para evitar que las páginas Web que visitemos ejecuten Javascript, a no ser que le hayamos dado permiso de forma explícita nosotros mismos.

Los más puristas de la seguridad, serán conscientes de que existen formas más sofisticadas de robo de historial Web [17,18], basados en CSS, pero en la actualidad, todos los navegadores disponen de un modo de navegación privado, que no cambian de color cuando el enlace ya ha sido visitado en modo privado. También existe una extensión para Firefox llamada SafeHistory [19] que nos puede ayudar a mantener el historial en secreto, sin prescindir del la ayuda de sitios visitados. Los puristas de la seguridad pronto se habrán dado cuenta de que los sitios como Facebook podrían aleatorizar sus direcciones de grupos para evitar el robo del historial de sus usuarios (como ya ha hecho Xing en sus grupos [20]), pero eso implica confiar la seguridad directamente en la buena fe de un tercero… y eso ya es ser menos purista ;-)

Querido amigo, ahora que ya sabes que nuestra privacidad está mucho más comprometida de lo que hubieras soñado, y que el anonimato en Internet es una entelequia, espero contarte nuevas e inquietantes curiosidades técnicas en el siguiente artículo. Ten cuidado. Si no entras a leerlo, sabré que no estuviste y te estaré esperando...
;-)

Referencias Web:

   1. Las cookies secretas que espían los ordenadores: http://www.elreservado.es/news/view/220-noticias/64-las-cookies-secretas-que-espian-ordenadores
   2. ¿Cómo protegernos de las SuperCookies?: http://www.elreservado.es/news/view/220-noticias/97-como-protegernos-de-las-supercookies
   3. Better Privacy: https://addons.mozilla.org/es-ES/firefox/addon/6623/
   4. Arvind Narayanan: http://33bits.org/about-arvind-narayanan/
   5. Definición de Paranoia, en Wikipedia: http://es.wikipedia.org/wiki/Paranoia
   6. UberCookies: http://33bits.org/2010/02/18/cookies-supercookies-and-ubercookies-stealing-the-identity-of-web-visitors/
   7. Pwn2Own: http://cansecwest.com/index.html
   8. iPhone SMS Database Hijacked though Web Browser: http://www.zdnet.com/blog/security/pwn2own-2010-iphone-hacked-sms-database-hijacked/5836
   9. Javascript History Stealing: http://www.dicabrio.com/javascript/steal-history.php
  10. I know where you have been: http://jeremiahgrossman.blogspot.com/2006/08/i-know-where-youve-been.html
  11. Teoría de la información: http://es.wikipedia.org/wiki/Teor%C3%ADa_de_la_informaci%C3%B3n
  12. A primer on Information Theory and Privacy: https://www.eff.org/deeplinks/2010/01/primer-information-theory-and-privacy
  13. Browsing History Through Facebook URLs: http://www.fbhive.com/facebook-urls-reveal-browsing-history/
  14. 31 IEEE Simposium on  Security and Privacy: http://oakland31.cs.virginia.edu/
  15. A Practical Attack to De-Anonymize Social Network Users: http://www.iseclab.org/papers/sonda-TR.pdf
  16. Complemento noscript para Firefox: http://noscript.net/
  17. Inferring Context Using Cascading Style Sheets and Browser History: https://www.indiana.edu/~phishing/browser-recon/
  18. Stealing Browser History Without Javascript: http://ha.ckers.org/blog/20070228/steal-browser-history-without-javascript/
  19. SafeHistory para Firefox: http://www.safehistory.com/
  20. Aleatorización de direcciones de grupos en XING: http://blog.xing.com/2010/02/de-de-anonymizing-in-four-days/

No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.