miércoles, julio 10, 2013

Técnicas para el Fingerprinting de Web Browsers

Intentar camuflar el navegador que se está utilizando en una conexión web es algo muy habitual. Esto puede hacerse con el objetivo de conseguir ver el sitio web de otra forma - como simular ser un terminal móvil para ver la página web mobile - o para simular ser el navegador de una víctima en un esquema de robo en el mundo del Fraude Online. Utilizar el valor de USER-AGENT para tratar de reconocer el navegador web que utiliza la víctima dejo hace tiempo de ser válido, y por eso se utilizan otras técnicas para reconocerlo.

Figura 1: Web Browser Fingerprinting basado en mensajes de error JavaScript

En el año 2008 Pedro Laguna (@p_laguna) propuso utilizar en Web Browser Fingerprinting un truco basado en generar errores JavaScript en los navegadores para reconocer con ellos la versión del navegador que estaba visitando una determinada página web, lo que dio lugar a WBFingerprinting.


Figura 2: Paper How Unique Is Your Web Browser?

En el año 2010 la EFF publicó el paper How Unique Is Your Web Browser? en el proyecto Panopticlick, donde haciendo enumeración de plugins, idiomas de navegadores, tipos de fuentes disponibles, etcétera, era posible conseguir la huella digital de una conexión para poder hacer tracking de determinados individuos solo analizando su navegador.

Figura 3: Cookieless Monster

Las diferentes técnicas para hacer Web Browser Fingerprinting se explican en un paper publicado este año 2013, donde además se extienden algunas técnicas. El documento, titulado Cookieless Monster: Exploring the Ecosystem of Web-based Device Fingerprinting, explica y compara las técnicas utilizadas en Panopticlick, y por empresas especializadas en la generación de huellas digitales de conexión para el mundo de la publicidad y el fraude, como son Bluecava, Threat Metrix o IOvation.

Figura 4: Comparativa de técnicas de Web Browser Fingerprinting utilizadas en diferentes sitios

El documento explica en detalle algunas técnicas viejas y nuevas para la detección del navegador web. Alguna de ellas bastante curiosa, tales como utilizar como side-channel el ancho que ocupan algunas determinas fuentes dependiendo del navegador que esté utilizando.

Figura 5: Determinar el tamaño de fuentes en navegadores

Una de las que más me ha llamado la atención, especialmente para aquellos preocupados por la seguridad, es ver cómo tener activado Adobe Flash es la gran fuente de información para las empresas que se dedican a hacer fingerprinting, pues pueden llegar a conocer el kernel exacto y la versión del sistema operativo que estás usando, enumerar todas la fuentes instaladas, las zonas horarios, y hasta la dirección IP de verdad de la conexión si estás conectado utilizando un Proxy Anónimo.

Figura 6: Abuso de Flash para descubrir la dirección IP real detrás de un Proxy Anónimo

Si tienes tiempo, no dudes en darle una lectura al paper, que merece la pena ver la de cosas que hacen hoy las empresas de tracking de conexiones digitales.

Más técnicas de WebBrowsing Fingerprinting publicadas

En la DEFCON 21 se presentó el trabajo "Defense by Numb3r5", que utilizaba una técnica distinta basada en detección de navegadores usando el diferente comportamiento de los navegadores ante distintos códigos de estado HTTP.

Además, poco después se popularizó el tuco que mostraba cómo con el uso de las etiquetas eTag se pueden generar cookies sin utilizar cookies, algo que permite seguir a los usuarios que no tengan activado el uso de las cookies.

Por último, hay que destacar que se ha conocido un leak en los protocolos WebRTC que permite acceder a la dirección IP local de la conexión cuando el cliente se conecta con Mozilla Firefox o Google Chrome.

Saludos Malignos!

1 comentario:

Anónimo dijo...

This is interesting. I work at NSA and I am sure you would be and maybe not impressed with things we can do and see. Keep it up champion. Just consider me as another follower...

Entradas populares