martes, 8 de septiembre de 2009

Para saber si el navegador del usuario está virtualizado


Aquí va una entrada, a modo de apunte rápido, sobre cómo emplear los recursos del navegador para detectar si un usuario está navegando o no desde un entorno virtualizado. Jeremiah Grossman escribía sobre esto hace unas semanas.

J.G nos sugiere dos trucos para detectar entornos virtualizados: ver el tamaño de la ventana del navegador mediante Javascript, y ver la dirección MAC del equipo. El tamaño de la ventana puede obtenerse mediante Javascript, y al parecer, en el caso de entornos virtualizados suelen obtenerse tamaños un tanto extraños. La dirección MAC del equipo no puede obtenerse mediante Javascript, pero sí mediante un applet Java, y ocurre que los primeros octetos de la dirección MAC son fijos, e identifican al fabricante (por ejemplo VMWare).

Además de saberse si un navegador se encuentra virtualizado, también es posible saber por ejemplo si está usando el modo “privado” del navegador (“InPrivate” de IE8, “Private Browsing” de Firefox, o “Incognito” en Chrome). Un usuario empleará este modo en el caso de que se encuentre usando un equipo público, por ejemplo un PC de un cibercafé. Le permite controlar la información que se guarda en el histórico del navegador, cookies, etc. Una última utilidad interesante podría ser conocer si el usuario está usando plugins de seguridad como Noscript.

La conocida herramienta “beef”, que permite explotar vulnerabilidades en los navegadores, incorpora un módulo para detectar si el navegador Internet Explorer está o no virtualizado, mirando la dirección MAC mediante Javascript.

Slds!

Si te gustó esta entrada, quizás quieras suscribirte al blog por RSS...

2 comentarios:

Alberto dijo...

La MAC con JS? Creo que es una errata porque habías dejado claro antes que no se podía si no era con un Applet Java.

Un par de apuntes, tanto las resoluciones "Extrañas" como la MAC del equipo no me parece nada de lo que te puedas fiar. La MAC se cambia fácilmente y la resolución... cualquiera que haya trabajado con entornos virtualizados entenderá el hecho de los valores "raros" pero no tiene por qué ser así.

Saludos!

des dijo...

Buenas @alberto! Pues no, no es una errata: eso es lo que pone en ambos enlaces (el de J.G y el de beef). Uno de los dos se equivoca, claro está.

Como dices, las resoluciones extrañas y la MAC no son totalmente fiables, ambos pueden cambiarse por valores normales. Si no encontramos los valores que buscamos, no sabemos si el navegador está virtualizado o no. Pero si encontramos estos valores, sí es posible que estemos ante un navegador virtualizado, que seguramente no ha sido actualizado. Un creador de malware podría utilizar esta técnica como fuente de información para ver si intenta infectar un equipo o no (es lo que intenta explicar Grossman y que me he tomado la libertad de traducir).

Slds!