SlideShare une entreprise Scribd logo
1  sur  5
Télécharger pour lire hors ligne
WEB BROWSER FINGERPRINTING
Pedro Laguna Durán, Alejandro Martín Bailón, José María Alonso Cebrián
y Antonio Guzmán Sacristán
Informática 64 & División de Arquitectura de Computadores.
Escuela Superior de Ciencias Experimentales y Tecnología.
Universidad Rey Juan Carlos.
C/ Juan Ramón Jiménez 8, posterior, 28932, Móstoles (Madrid)
RESUMEN
La industria del malware está orientada cada vez más a un negocio organizado y automatizado. En dicha industria la
infección de máquinas clientes a través de navegadores sin actualizar, y por tanto vulnerables, es pieza clave en el
proceso delictivo. La toma de control de las máquinas se realiza a través de exploits adaptados a las diferentes versiones y
a los distintos navegadores de internet. Para decidir el exploit adecuado para un determinado navegador de internet se
utiliza el campo User-Agent de las cabeceras HTTP que envía el navegador cliente. Ese campo puede ser manipulado
para, mediante técnicas de engaño (deception techniques) se utilice un exploit que no funcione. Este trabajo demuestra
cómo, utilizando el lenguaje Javascript, se puede realizar un análisis fingerprinting del navegador y conocer la versión del
mismo para utilizar el exploit adecuado dejando la técnica de engaño por medio de modificación del valor User-Agent sin
ninguna utilidad.
PALABRAS CLAVES
Seguridad, Fingerprinting, Deception, Web Browser, Javascript
1. INTRODUCCIÓN
La industria del malware está orientada a la consecución de dinero mediante acciones delictivas de mayor o
menor grado de punibilidad en función de la legislación del cada país. Para la consecución de la ejecución de
estos delitos, ya sea el envío masivo de correos, la distribución de malware, el espionaje de actividades por
parte del usuario, las extorsiones por medio de denegaciones de servicio, el robo de identidad o el robo
fraudulento de dinero, la industria del malware utiliza máquinas controladas ilícitamente.
Para el control ilícito de estas máquinas se utilizan troyanos que son introducidos en las máquinas de muy
diversas formas. Una de las técnicas utilizadas es mediante el uso de navegadores de internet con alguna
vulnerabilidad. El proceso que se sigue en el control de la máquina es el siguiente:
a) Se controlan servidores web que son alimentados con exploits para todos los navegadores.
b) El usuario navega por una de las webs controladas
c) El servidor web analiza la versión del navegador
d) El servidor web lanza el exploit adecuado a la versión del navegador
e) Una vez obtenido control de ejecución sobre la máquina cliente se instala el troyano.
El presente artículo describe como se analiza la versión del navegador utilizando el parámetro HTTP
User-Agent y cómo las técnicas de decepción no son útiles ya que mediante técnicas de fingerprinting
utilizando Javascript se puede concluir la versión del navegador a utilizar.
2. ANÁLISIS DE LA VERSIÓN DEL NAVEGADOR DE INTERNET
En el proceso descrito en el punto anterior, es necesario que el servidor web analice la versión del navegador.
Esto se puede realizar fácilmente utilizando el campo User-Agent de la petición HTTP. Este mensaje está
Conferência IADIS Ibero-Americana WWW/Internet 2008
453
recogido en la especificación HTTP 1.1 del W3C [1] y cada fabricante de software decide que información
va a introducir en él dependiendo de las versiones y los complementos que tenga instalado el navegador.
3. ATAQUES DE DECEPCIÓN O ENGAÑO
Las técnicas de decepción o engaño han sido tradicionalmente utilizadas por los administradores para
dificultar la tarea de los posibles atacantes. Se han utilizado para cambiar versiones de servidores de correo,
ocultar la versión del sistema operativo e incluso analizar el comportamiento de los atacantes para poder
detectar algún posible fuga de información y conocer el comportamiento de los atacantes, dando lugar al
nacimiento de los honney-pots [2].
En el entrono en que nos situamos de amenaza, un posible ataque de decepción que podría realizar el
usuario para protegerse de los atacantes sería cambiar la información del campo User-Agent enviado por el
navegador al servidor. De esta manera el servidor obtendría información errónea y el software malicioso
intentaría vulnerar la máquina cliente por medio de un exploit inadecuado y por lo tanto no operativo.
3.1 Modificación del Valor de User-Agent
La manera de cambiar el User-Agent puede realizarse de manera temporal en una o varias peticiones
mediante el uso de herramientas de interceptación de comunicaciones HTTP como Odysseus[3], Burp Proxy
[4], Achilles [5] o extensiones de los navegadores como User Agent Switcher [6] para Firefox que permite
incluso la creación de perfiles de navegación.
Para realizar un cambio permanente en el valor User-Agent con el que se va a identificar el navegador se
deben utilizar mecanismos distintos dependiendo de la versión del mismo. A continuación se muestra cómo
se realiza en cada uno de los navegadores utilizados en el presente estudio.
3.1.1 Mozilla Firefox
Para cambiar el valor de User Agent en las versiones de este navegador hemos de acceder a las opciones de
configuración. Para ello se introduce en la barra de direcciones el URI about:config. Una vez abierto el menú
de opciones se debe cambiar el valor de la cadena general.useragent.extra.firefox por el valor que se desee.
3.1.2 Opera Web Browser
En Opera Web Browser el cambio del valor User-Agent se realiza en las opciones de configuración. Para
acceder a ellas se debe introducir en la barra de direcciones el URI opera:config. Una vez abierta la página
de configuraciones se debe localizar el apartado User Agent. En el navegador Opera se puede definir un valor
entero que equivale a un User Agent concreto. Los valores que vienen registrados son: 1. Opera (Original),
2. Mozilla (Muestra la versión real de Opera), 3. IE (Muestra la versión real de Opera), 4. Mozilla
(No hace mención a Opera) y 5. IE (No hace mención a Opera)
3.1.3 Microsoft Internet Explorer
Las versiones de Internet Explorer utilizan el registro de Windows para configurar algunos de sus
parámetros. Este es el caso del valor del campo User-Agent, por lo que es necesario crear una clave de
registro en la dirección HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionInternet
SettingsUser AgentPost Platform de tipo cadena. El valor de de esa clave de registro será el valor del campo
User-Agent que utilizará Internet Explorer.
3.1.4 Apple Safari
Para poder modificar el valor de User-Agent en Safari 3.0 se debe activar primero el Menú del Desarrollador
dentro de las Preferencias Avanzadas. Una vez activada esta opción aparece disponible un nuevo menú
llamado Develop dónde es posible seleccionar entre una gran multitud de valores para User-Agent entre los
que se encuentran los propios de productos Apple. En esta opción del menú también es posible crear un
nuevo valor de User-Agent.
ISBN: 978–972–8924–72-0 © 2008 IADIS
454
3.1.5 Google Chrome
La forma de cambiar el User-Agent en la versión actual de Google Chrome es la más compleja entre los
distintos navegadores analizados. Este navegador no presenta una forma propia de cambiar este valor si no
que hay que recurrir al uso de herramientas externas para modificar los ficheros del programa.
La cadena de User-Agent que se envía en cada petición con este navegador se encuentra ubicada dentro del
fichero chrome.dll de la carpeta de instalación de la aplicación.
Abriendo este fichero con un editor hexadecimal y localizando la posición de la cadena del User-Agent
podremos modificarla por la que deseemos, aunque siempre con una limitación: el tamaño de la cadena
resultante ha de ser el mismo que el de la cadena original.
3.1.6 Otros navegadores de Internet
La opción de cambiar el valor de User-Agent siempre es posible, si existiera algún navegador sin la opción
de cambiarlo siempre se podría realizar de forma temporal mediante herramientas externas como se ha citado
en la introducción de este apartado.
4. TÉCNICAS DE FINGERPRINTING
El objetivo de las técnicas de fingerprinting en seguridad informática es descubrir información analizando el
comportamiento que tiene un sistema ante determinados estímulos y comprobando las diferencias que hacen
a un sistema diferenciable de forma unívoca de software similar. Así, existen estudios sobre fingerprinting de
sistemas operativos [7], estudios de fingerprinting sobre servidores web [8], etc... Estos estudios dejan claro
que la ocultación de información no suele ser una buena solución como única medida para la protección de
un sistema.
4.1 Fingerprinting de Navegadores Web
En este caso, hemos realizado un estudio de comportamiento de los navegadores mediante el lenguaje
Javascript. Este estudio ha sido realizado sobre Navegadores Mozilla Firefox versiones 2 y 3, Apple Safari
versión 3, Opera versión 9 y Microsoft Internet Explorer versiones 6 y 7. Este conjunto de navegadores son
los más utilizados en Internet, cubriendo con el estudio más del 90 % de los clientes utilizados en Internet
hoy en día, según las estadísticas de W3Counter de Junio de 2008 [9].
Las características analizadas para este estudio han sido las respuestas ante el uso de los objetos AJAX
[10] en un navegador web y el intento de realización de funciones ilegales dentro de un entorno de seguridad
no permitido.
4.2 Prueba de Concepto
Este artículo va acompañado del código de la prueba de concepto utilizada para el estudio. Dicho código se
encuentra en el Apéndice A y está formado por dos funciones, la función CheckBrowser, que realiza la
prueba de fingerprinting al navegador y la función ShowBrowser, utilizada únicamente para escribir los
resultados en una página web.
La función CheckBrowser va a realizar tres operaciones para generar mensajes de error. En primer lugar
realiza la invocación de un componente AJAX que sólo existe en navegadores Microsoft Internet Explorer,
en segundo lugar intenta acceder a un recurso del sistema y en tercer lugar intentando enviar el fichero.
Si el componente AJAX de Microsoft está cargado, entonces la prueba de fingerprinting evalúa el
número, el mensaje y la descripción del error que se ha producido en las funciones de apertura del recurso
local o el envío del fichero. Esto permite discernir entre un navegador de versión 6 o versión 7.
En el caso de que el navegador no sea un Microsoft Internet Explorer entonces se evalúan los mensajes de
error obtenidos en ese proceso de tal manera que si el sistema recoge el mensaje “Access to restricted URI
denied” este código Javascript se ha ejecutado en un navegador Mozilla Firefox 3.0. Si el mensaje de error es
“Security violation” entonces se ha ejecutado sobre un Opera Web Browser 9. Si se obtiene “Permission
denied” sobre un Apple Safari 3 o Google Chrome (ya que comparten motor de renderizado HTML) y si el
Conferência IADIS Ibero-Americana WWW/Internet 2008
455
mensaje es “Permission denied to call method XMLHTTPRequest.open”, entonces el sistema está frente a un
Mozilla Firefox 2.0.
Cómo se puede ver, basta con generar errores y catalogar los distintos mensajes de error que son
producidos por las distintas versiones de los navegadores para poder averiguar que versión exacta es la que
está ejecutando el código Javascript.
4.3 Resultados en Laboratorio
Este código, situado en una página web que sea visitada a través de Internet permite detectar una
manipulación de versión entre todos los navegadores incluidos en el estudio. En la Figura 1 se puede ver
cómo se ha manipulado el valor de User-Agent en un navegador Safari 3 para simular ser un navegador
Mozilla Firefox versión 2 y el programa detecta dicha manipulación.
Figura 1. Safari 3 con User-Agent manipulado
5. CONCLUSIÓN
El presente trabajo demuestra que es posible aplicar las técnicas de fingerprinting para la detección de la
versión del navegador. Cómo se puede ver este trabajo es una versión preliminar, pero aplicando técnicas
similares se podrían detectar versiones más detalladas del software e incluso complementos instalados en los
navegadores, permitiendo un ajuste mucho más fino en la información extraída.
Este trabajo demuestra que la decepción o engaño en la versión del navegador mediante el cambio del
valor mostrado en User-Agent no es una medida efectiva para la protección del navegador frente a amenazas
de Internet mientras que por el contrario tiene como efecto negativo el entorpecimiento de la navegación,
pues el valor User-Agent es utilizado por muchos desarrolladores de Internet para configurar correctamente
las opciones de visualización y accesibilidad de una determinada página web.
Además, si la manipulación del valor User-Agent se mostrara como una medida efectiva para la
ocultación de la versión del navegador, la industria del malware siempre podría aplicar técnicas de fuerza
bruta, heurística o probabilísticas para seguir encontrando el exploit que funciona o los exploits a probar en
un determinado cliente.
Cómo recomendación efectiva en el incremento de la seguridad de la navegación contra la infección por
software malicioso queda siempre recurrir a los principios de fortificación de plataforma que cada fabricante
de software ofrece y que se pueden recoger en las reglas de Defensa en Profundidad, Mínimo Punto de
Exposición y Mínimo Privilegio Posible, ampliamente tratadas en recomendaciones de seguridad.
AGRADECIMIENTOS
Los autores de este trabajo quieren dar las gracias a la comunidad de amigos interesados por la seguridad en
Internet que comparten día a día su conocimiento y que con sus aportaciones hacen más interesante y
divertido el trabajo en seguridad Informática.
ISBN: 978–972–8924–72-0 © 2008 IADIS
456
REFERENCIAS
Network Working Group 1990, Hypertext Transfer Protocol -- HTTP/1.1, RFC 2616,
HTTP://www.w3.org/Protocols/rfc2616/rfc2616.html, Junio de 1999.
Niels Provos* 2004, Google, Inc, A Virtual Honeypot Framework, Proceedings of the 13th USENIX Security
Symposium, HTTP://www.citi.umich.edu/u/provos/papers/honeyd.pdf, Agosto de 2004.
Bindshell 2006, Odysseus, HTTP://www.bindshell.net/tools/odysseus, Diciembre de 2006.
Portswigger, Burp Proxy, HTTP://portswigger.net/proxy/
Robert Cardona 2000, Systegra, Achilles, HTTP://www.mavensecurity.com/Achilles.php, Octubre de 2000.
Chris Pederick 2003, User Agent Switcher, HTTP://chrispederick.com/work/user-agent-switcher/, Febrero 2003.
Fyodor 1998, NMAP, Remote OS Detection via TCP/IP Stack Fingerprinting,
HTTP://www.nmap.org/nmap/nmap-fingerprinting-article.html, October de 1998.
Hernan Riacciatti 2005, HTTP Fingerprinting, Revista @rroba #96,
HTTP://www.hernanracciatti.com.ar/articles/HPP27_HTTP_Fingerprinting.pdf, Noviembre de 2005.
W3Counter 2008, Global Stats, HTTP://www.w3counter.com/globalstats.php?date=2008-06-30, Junio 2008.
John Moore 2008, RIAspot.com, What is Ajax?, HTTP://www.riaspot.com/articles/entry/What-is-Ajax-, Julio 2008.
APÉNDICE A: CÓDIGO FUENTE DE LA PUEBRA DE CONCEPTO
<html><head><title>AJAX-way Browser Version footprinting</title></head>
<body onLoad="checkBrowser()"> <script>
var browser = 0;
document.write("<div style="text-align:center;"> <h2>User Agent:"+navigator.userAgent+"</h2>”);
document.write("<h2>Real Browser: ");
function checkBrowser() {
try { if(window.XMLHTTPRequest)
{x=new XMLHTTPRequest();}
else {x=new ActiveXObject('Microsoft.XMLHTTP'); }
x.open("GET","about:blank",false);
x.send();
} catch(e) {
if(e.message) {
switch(e.message){
case "Access to restricted URI denied": document.write("Firefox 3.0</h2></div>"); break;
case "Security violation": document.write("Opera 9.5 </h2></div>");break;
case "Permission denied":
try { if(google) {} }
catch(w) {
if(w.message.length > 1) document.write("Safari 3</h2></div>");
else document.write("Google Chrome</h2></div>")
} finally { break; }
default: break;}
} else { if(e == "Permission denied to call method XMLHTTPRequest.open");
document.write("Firefox 2.0 </h2></div>"); }
if(e.number && !e.name.match(/Type/)) {document.write("Internet Explorer 6.0</h2></div>");}
if(e.description.match(/ /) && browser == 0) {document.write("Internet Explorer 7.0</h2></div>");}
} finally {break;}
} </script></body></html>
Conferência IADIS Ibero-Americana WWW/Internet 2008
457

Contenu connexe

Tendances

Revista la luz
Revista la luzRevista la luz
Revista la luznvillam
 
Seguridad en base de datos practica momento 4 troyano grupo 233009 1 2014
Seguridad en base de datos practica momento 4 troyano grupo  233009 1 2014Seguridad en base de datos practica momento 4 troyano grupo  233009 1 2014
Seguridad en base de datos practica momento 4 troyano grupo 233009 1 2014Jaime Alfonso Castro Angarita
 
Scareware y ramsomware . valdez avila , ramirez camacho , vazquez martinez
Scareware y ramsomware . valdez avila , ramirez camacho , vazquez martinezScareware y ramsomware . valdez avila , ramirez camacho , vazquez martinez
Scareware y ramsomware . valdez avila , ramirez camacho , vazquez martinezargenisjearimvaldez123
 
Seguridad en base de datos practica troyano grupo 233009 1 2014
Seguridad en base de datos practica troyano grupo  233009 1 2014Seguridad en base de datos practica troyano grupo  233009 1 2014
Seguridad en base de datos practica troyano grupo 233009 1 2014Jaime Alfonso Castro Angarita
 
Denegación de servicio
Denegación de servicioDenegación de servicio
Denegación de servicioYufri Soto
 
Implementación y pruebas de monitoreo en una red lan, basados en snm pv3
Implementación y pruebas de monitoreo en una red lan, basados en snm pv3Implementación y pruebas de monitoreo en una red lan, basados en snm pv3
Implementación y pruebas de monitoreo en una red lan, basados en snm pv3Marcelo Venegas Zúñiga
 
Google Earth Ahora Viene Troyano Incluido
Google Earth Ahora Viene Troyano Incluido
Google Earth Ahora Viene Troyano Incluido
Google Earth Ahora Viene Troyano Incluido comprarantiviruschrome75
 
Investigacion y manual de instalacion de un servidor proxy
Investigacion y manual de instalacion de un servidor proxyInvestigacion y manual de instalacion de un servidor proxy
Investigacion y manual de instalacion de un servidor proxySuemypoottah
 

Tendances (14)

Actividad3crs
Actividad3crsActividad3crs
Actividad3crs
 
Revista la luz
Revista la luzRevista la luz
Revista la luz
 
Actividad 3 crs
Actividad 3 crsActividad 3 crs
Actividad 3 crs
 
Evidencia 3 sandra jaramillo
Evidencia 3 sandra jaramilloEvidencia 3 sandra jaramillo
Evidencia 3 sandra jaramillo
 
Seguridad en base de datos practica momento 4 troyano grupo 233009 1 2014
Seguridad en base de datos practica momento 4 troyano grupo  233009 1 2014Seguridad en base de datos practica momento 4 troyano grupo  233009 1 2014
Seguridad en base de datos practica momento 4 troyano grupo 233009 1 2014
 
Scareware y ramsomware . valdez avila , ramirez camacho , vazquez martinez
Scareware y ramsomware . valdez avila , ramirez camacho , vazquez martinezScareware y ramsomware . valdez avila , ramirez camacho , vazquez martinez
Scareware y ramsomware . valdez avila , ramirez camacho , vazquez martinez
 
Seguridad en base de datos practica troyano grupo 233009 1 2014
Seguridad en base de datos practica troyano grupo  233009 1 2014Seguridad en base de datos practica troyano grupo  233009 1 2014
Seguridad en base de datos practica troyano grupo 233009 1 2014
 
Denegación de servicio
Denegación de servicioDenegación de servicio
Denegación de servicio
 
Vulnerabilidades y soluciones
Vulnerabilidades y solucionesVulnerabilidades y soluciones
Vulnerabilidades y soluciones
 
Owasp proyecto
Owasp proyectoOwasp proyecto
Owasp proyecto
 
Implementación y pruebas de monitoreo en una red lan, basados en snm pv3
Implementación y pruebas de monitoreo en una red lan, basados en snm pv3Implementación y pruebas de monitoreo en una red lan, basados en snm pv3
Implementación y pruebas de monitoreo en una red lan, basados en snm pv3
 
Google Earth Ahora Viene Troyano Incluido
Google Earth Ahora Viene Troyano Incluido
Google Earth Ahora Viene Troyano Incluido
Google Earth Ahora Viene Troyano Incluido
 
Investigacion y manual de instalacion de un servidor proxy
Investigacion y manual de instalacion de un servidor proxyInvestigacion y manual de instalacion de un servidor proxy
Investigacion y manual de instalacion de un servidor proxy
 
Proyecto 6
Proyecto 6Proyecto 6
Proyecto 6
 

En vedette

Índice del libro "Infraestructuras Críticas y Sistemas Industriales: Auditor...
Índice del libro "Infraestructuras Críticas y Sistemas Industriales: Auditor...Índice del libro "Infraestructuras Críticas y Sistemas Industriales: Auditor...
Índice del libro "Infraestructuras Críticas y Sistemas Industriales: Auditor...Telefónica
 
Libro Bitcoin: La tecnología Blockchain y su investigación
Libro Bitcoin: La tecnología Blockchain y su investigaciónLibro Bitcoin: La tecnología Blockchain y su investigación
Libro Bitcoin: La tecnología Blockchain y su investigaciónTelefónica
 
Configurar y utilizar Latch en Magento
Configurar y utilizar Latch en MagentoConfigurar y utilizar Latch en Magento
Configurar y utilizar Latch en MagentoChema Alonso
 
Índice del libro "Hacking Web Technologies"
Índice del libro "Hacking Web Technologies"Índice del libro "Hacking Web Technologies"
Índice del libro "Hacking Web Technologies"Telefónica
 
DirtyTooth: It´s only Rock'n Roll but I like it
DirtyTooth: It´s only Rock'n Roll but I like itDirtyTooth: It´s only Rock'n Roll but I like it
DirtyTooth: It´s only Rock'n Roll but I like itTelefónica
 
DirtyTooth: It´s only Rock'n Roll but I like it [Slides]
DirtyTooth: It´s only Rock'n Roll but I like it [Slides]DirtyTooth: It´s only Rock'n Roll but I like it [Slides]
DirtyTooth: It´s only Rock'n Roll but I like it [Slides]Telefónica
 
Some dirty, quick and well-known tricks to hack your bad .NET WebApps
Some dirty, quick and well-known tricks to hack your bad .NET WebAppsSome dirty, quick and well-known tricks to hack your bad .NET WebApps
Some dirty, quick and well-known tricks to hack your bad .NET WebAppsTelefónica
 
You Are Where You Are
You Are Where You AreYou Are Where You Are
You Are Where You AreTelefónica
 
Tu iPhone es tan (in)seguro como tu Windows
Tu iPhone es tan (in)seguro como tu WindowsTu iPhone es tan (in)seguro como tu Windows
Tu iPhone es tan (in)seguro como tu WindowsChema Alonso
 
CyberCamp 2015: Low Hanging Fruit
CyberCamp 2015: Low Hanging FruitCyberCamp 2015: Low Hanging Fruit
CyberCamp 2015: Low Hanging FruitChema Alonso
 
Libro de Seguridad en Redes
Libro de Seguridad en RedesLibro de Seguridad en Redes
Libro de Seguridad en RedesTelefónica
 
Disclosing Private Information from Metadata, hidden info and lost data
Disclosing Private Information from  Metadata, hidden info and lost data Disclosing Private Information from  Metadata, hidden info and lost data
Disclosing Private Information from Metadata, hidden info and lost data Chema Alonso
 
Defense by numbers: Making Problems for Script Kiddies and Scanner Monkeys
Defense by numbers: Making Problems for Script Kiddies and Scanner MonkeysDefense by numbers: Making Problems for Script Kiddies and Scanner Monkeys
Defense by numbers: Making Problems for Script Kiddies and Scanner MonkeysChris John Riley
 
2015 04 26 cuenca, campió espanya 47 i europeus
2015 04 26 cuenca, campió espanya 47 i europeus2015 04 26 cuenca, campió espanya 47 i europeus
2015 04 26 cuenca, campió espanya 47 i europeusclubbillarsueca
 
2015 05 03 cronica europeu
2015 05 03 cronica europeu2015 05 03 cronica europeu
2015 05 03 cronica europeuclubbillarsueca
 
Raul, campio espanya quadre
Raul, campio espanya quadreRaul, campio espanya quadre
Raul, campio espanya quadreclubbillarsueca
 
Recuperar dispositivos de sonido en Windows Vista y Windows 7
Recuperar dispositivos de sonido en Windows Vista y Windows 7Recuperar dispositivos de sonido en Windows Vista y Windows 7
Recuperar dispositivos de sonido en Windows Vista y Windows 7Chema Alonso
 
Manual de integración de Latch en Mosquito MQTT Broker
Manual de integración de Latch en Mosquito MQTT BrokerManual de integración de Latch en Mosquito MQTT Broker
Manual de integración de Latch en Mosquito MQTT BrokerTelefónica
 

En vedette (18)

Índice del libro "Infraestructuras Críticas y Sistemas Industriales: Auditor...
Índice del libro "Infraestructuras Críticas y Sistemas Industriales: Auditor...Índice del libro "Infraestructuras Críticas y Sistemas Industriales: Auditor...
Índice del libro "Infraestructuras Críticas y Sistemas Industriales: Auditor...
 
Libro Bitcoin: La tecnología Blockchain y su investigación
Libro Bitcoin: La tecnología Blockchain y su investigaciónLibro Bitcoin: La tecnología Blockchain y su investigación
Libro Bitcoin: La tecnología Blockchain y su investigación
 
Configurar y utilizar Latch en Magento
Configurar y utilizar Latch en MagentoConfigurar y utilizar Latch en Magento
Configurar y utilizar Latch en Magento
 
Índice del libro "Hacking Web Technologies"
Índice del libro "Hacking Web Technologies"Índice del libro "Hacking Web Technologies"
Índice del libro "Hacking Web Technologies"
 
DirtyTooth: It´s only Rock'n Roll but I like it
DirtyTooth: It´s only Rock'n Roll but I like itDirtyTooth: It´s only Rock'n Roll but I like it
DirtyTooth: It´s only Rock'n Roll but I like it
 
DirtyTooth: It´s only Rock'n Roll but I like it [Slides]
DirtyTooth: It´s only Rock'n Roll but I like it [Slides]DirtyTooth: It´s only Rock'n Roll but I like it [Slides]
DirtyTooth: It´s only Rock'n Roll but I like it [Slides]
 
Some dirty, quick and well-known tricks to hack your bad .NET WebApps
Some dirty, quick and well-known tricks to hack your bad .NET WebAppsSome dirty, quick and well-known tricks to hack your bad .NET WebApps
Some dirty, quick and well-known tricks to hack your bad .NET WebApps
 
You Are Where You Are
You Are Where You AreYou Are Where You Are
You Are Where You Are
 
Tu iPhone es tan (in)seguro como tu Windows
Tu iPhone es tan (in)seguro como tu WindowsTu iPhone es tan (in)seguro como tu Windows
Tu iPhone es tan (in)seguro como tu Windows
 
CyberCamp 2015: Low Hanging Fruit
CyberCamp 2015: Low Hanging FruitCyberCamp 2015: Low Hanging Fruit
CyberCamp 2015: Low Hanging Fruit
 
Libro de Seguridad en Redes
Libro de Seguridad en RedesLibro de Seguridad en Redes
Libro de Seguridad en Redes
 
Disclosing Private Information from Metadata, hidden info and lost data
Disclosing Private Information from  Metadata, hidden info and lost data Disclosing Private Information from  Metadata, hidden info and lost data
Disclosing Private Information from Metadata, hidden info and lost data
 
Defense by numbers: Making Problems for Script Kiddies and Scanner Monkeys
Defense by numbers: Making Problems for Script Kiddies and Scanner MonkeysDefense by numbers: Making Problems for Script Kiddies and Scanner Monkeys
Defense by numbers: Making Problems for Script Kiddies and Scanner Monkeys
 
2015 04 26 cuenca, campió espanya 47 i europeus
2015 04 26 cuenca, campió espanya 47 i europeus2015 04 26 cuenca, campió espanya 47 i europeus
2015 04 26 cuenca, campió espanya 47 i europeus
 
2015 05 03 cronica europeu
2015 05 03 cronica europeu2015 05 03 cronica europeu
2015 05 03 cronica europeu
 
Raul, campio espanya quadre
Raul, campio espanya quadreRaul, campio espanya quadre
Raul, campio espanya quadre
 
Recuperar dispositivos de sonido en Windows Vista y Windows 7
Recuperar dispositivos de sonido en Windows Vista y Windows 7Recuperar dispositivos de sonido en Windows Vista y Windows 7
Recuperar dispositivos de sonido en Windows Vista y Windows 7
 
Manual de integración de Latch en Mosquito MQTT Broker
Manual de integración de Latch en Mosquito MQTT BrokerManual de integración de Latch en Mosquito MQTT Broker
Manual de integración de Latch en Mosquito MQTT Broker
 

Similaire à Web Browser Fingerprinting

Documentos de analisis de requerimientos
Documentos de analisis de requerimientosDocumentos de analisis de requerimientos
Documentos de analisis de requerimientosMilton Garzon
 
Presentación de Sistema GESTSEG
Presentación de Sistema GESTSEGPresentación de Sistema GESTSEG
Presentación de Sistema GESTSEGdarwinjtc
 
Agente de usuario
Agente de usuarioAgente de usuario
Agente de usuariomarco19921
 
Manipulación Troyano Optix Pro
Manipulación Troyano Optix ProManipulación Troyano Optix Pro
Manipulación Troyano Optix ProVianney Rodriguez
 
Propuestas de proyectos fin de estudios curso 2013
Propuestas de proyectos fin de estudios curso 2013Propuestas de proyectos fin de estudios curso 2013
Propuestas de proyectos fin de estudios curso 2013Amador Aparicio
 
Exposicionproyecto 130711103653-phpapp01
Exposicionproyecto 130711103653-phpapp01Exposicionproyecto 130711103653-phpapp01
Exposicionproyecto 130711103653-phpapp01Samuel Guillen
 
Trabajo de seguridad informatica 1
Trabajo de seguridad informatica 1Trabajo de seguridad informatica 1
Trabajo de seguridad informatica 1Carlos Alderete
 
Monitoreo con OpManager y AppManager
Monitoreo con OpManager y AppManagerMonitoreo con OpManager y AppManager
Monitoreo con OpManager y AppManagerdacasgo
 
Seguridad web
Seguridad webSeguridad web
Seguridad webcamposer
 
Taller III corte
Taller III corteTaller III corte
Taller III cortebellaCMI
 
Mejora tu desarrollo web con Firefox Developer Edition y Google Chrome DevTools
Mejora tu desarrollo web con Firefox Developer Edition y Google Chrome DevToolsMejora tu desarrollo web con Firefox Developer Edition y Google Chrome DevTools
Mejora tu desarrollo web con Firefox Developer Edition y Google Chrome DevToolsIñaki Arenaza
 
Programación en ambiente web - Semana 2.pptx
Programación en ambiente web - Semana 2.pptxProgramación en ambiente web - Semana 2.pptx
Programación en ambiente web - Semana 2.pptxNoraDenisseOcampo1
 
Ataques client side exploitation
Ataques client side exploitationAtaques client side exploitation
Ataques client side exploitationjack_corvil
 

Similaire à Web Browser Fingerprinting (20)

Documentos de analisis de requerimientos
Documentos de analisis de requerimientosDocumentos de analisis de requerimientos
Documentos de analisis de requerimientos
 
Presentación de Sistema GESTSEG
Presentación de Sistema GESTSEGPresentación de Sistema GESTSEG
Presentación de Sistema GESTSEG
 
Agente de usuario
Agente de usuarioAgente de usuario
Agente de usuario
 
Manipulación Troyano Optix Pro
Manipulación Troyano Optix ProManipulación Troyano Optix Pro
Manipulación Troyano Optix Pro
 
Practica 6
Practica 6Practica 6
Practica 6
 
Desarrollo de aplicaciones web
Desarrollo de aplicaciones webDesarrollo de aplicaciones web
Desarrollo de aplicaciones web
 
Propuestas de proyectos fin de estudios curso 2013
Propuestas de proyectos fin de estudios curso 2013Propuestas de proyectos fin de estudios curso 2013
Propuestas de proyectos fin de estudios curso 2013
 
Exposicionproyecto 130711103653-phpapp01
Exposicionproyecto 130711103653-phpapp01Exposicionproyecto 130711103653-phpapp01
Exposicionproyecto 130711103653-phpapp01
 
Trabajo de seguridad informatica 1
Trabajo de seguridad informatica 1Trabajo de seguridad informatica 1
Trabajo de seguridad informatica 1
 
Monitoreo con OpManager y AppManager
Monitoreo con OpManager y AppManagerMonitoreo con OpManager y AppManager
Monitoreo con OpManager y AppManager
 
Seguridad web
Seguridad webSeguridad web
Seguridad web
 
Presentacion_proyecto
Presentacion_proyectoPresentacion_proyecto
Presentacion_proyecto
 
Taller III corte
Taller III corteTaller III corte
Taller III corte
 
Prog webuni3
Prog webuni3Prog webuni3
Prog webuni3
 
lenguaje web
lenguaje weblenguaje web
lenguaje web
 
Aplicaciones Web Seguras (Anti-SQLi)
Aplicaciones Web Seguras (Anti-SQLi)Aplicaciones Web Seguras (Anti-SQLi)
Aplicaciones Web Seguras (Anti-SQLi)
 
Mejora tu desarrollo web con Firefox Developer Edition y Google Chrome DevTools
Mejora tu desarrollo web con Firefox Developer Edition y Google Chrome DevToolsMejora tu desarrollo web con Firefox Developer Edition y Google Chrome DevTools
Mejora tu desarrollo web con Firefox Developer Edition y Google Chrome DevTools
 
Programación en ambiente web - Semana 2.pptx
Programación en ambiente web - Semana 2.pptxProgramación en ambiente web - Semana 2.pptx
Programación en ambiente web - Semana 2.pptx
 
Ataques client side exploitation
Ataques client side exploitationAtaques client side exploitation
Ataques client side exploitation
 
Test de intrusion
Test de intrusionTest de intrusion
Test de intrusion
 

Plus de Chema Alonso

Índice Pentesting con Kali 2.0
Índice Pentesting con Kali 2.0Índice Pentesting con Kali 2.0
Índice Pentesting con Kali 2.0Chema Alonso
 
Cazando Cibercriminales con: OSINT + Cloud Computing + Big Data
Cazando Cibercriminales con: OSINT + Cloud Computing + Big DataCazando Cibercriminales con: OSINT + Cloud Computing + Big Data
Cazando Cibercriminales con: OSINT + Cloud Computing + Big DataChema Alonso
 
New Paradigms of Digital Identity: Authentication & Authorization as a Servic...
New Paradigms of Digital Identity: Authentication & Authorization as a Servic...New Paradigms of Digital Identity: Authentication & Authorization as a Servic...
New Paradigms of Digital Identity: Authentication & Authorization as a Servic...Chema Alonso
 
CritoReto 4: Buscando una aguja en un pajar
CritoReto 4: Buscando una aguja en un pajarCritoReto 4: Buscando una aguja en un pajar
CritoReto 4: Buscando una aguja en un pajarChema Alonso
 
Dorking & Pentesting with Tacyt
Dorking & Pentesting with TacytDorking & Pentesting with Tacyt
Dorking & Pentesting with TacytChema Alonso
 
Pentesting con PowerShell: Libro de 0xWord
Pentesting con PowerShell: Libro de 0xWordPentesting con PowerShell: Libro de 0xWord
Pentesting con PowerShell: Libro de 0xWordChema Alonso
 
It's a Kind of Magic
It's a Kind of MagicIt's a Kind of Magic
It's a Kind of MagicChema Alonso
 
Ingenieros y hackers
Ingenieros y hackersIngenieros y hackers
Ingenieros y hackersChema Alonso
 
Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...
Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...
Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...Chema Alonso
 
Auditoría de TrueCrypt: Informe final fase II
Auditoría de TrueCrypt: Informe final fase IIAuditoría de TrueCrypt: Informe final fase II
Auditoría de TrueCrypt: Informe final fase IIChema Alonso
 
El juego es el mismo
El juego es el mismoEl juego es el mismo
El juego es el mismoChema Alonso
 
El Hardware en Apple ¿Es tan bueno?
El Hardware en Apple ¿Es tan bueno?El Hardware en Apple ¿Es tan bueno?
El Hardware en Apple ¿Es tan bueno?Chema Alonso
 
Latch en Linux (Ubuntu): El cerrojo digital
Latch en Linux (Ubuntu): El cerrojo digitalLatch en Linux (Ubuntu): El cerrojo digital
Latch en Linux (Ubuntu): El cerrojo digitalChema Alonso
 
Hacking con Python
Hacking con PythonHacking con Python
Hacking con PythonChema Alonso
 
Codemotion ES 2014: Love Always Takes Care & Humility
Codemotion ES 2014: Love Always Takes Care & HumilityCodemotion ES 2014: Love Always Takes Care & Humility
Codemotion ES 2014: Love Always Takes Care & HumilityChema Alonso
 
Analizando la efectividad de ataques de correlación pasivos en la red de ano...
Analizando la efectividad de ataques de correlación pasivos en la red de ano...Analizando la efectividad de ataques de correlación pasivos en la red de ano...
Analizando la efectividad de ataques de correlación pasivos en la red de ano...Chema Alonso
 
Guía de uso de Latch en la UNIR
Guía de uso de Latch en la UNIRGuía de uso de Latch en la UNIR
Guía de uso de Latch en la UNIRChema Alonso
 
Curso Online de Especialización en Seguridad Informática para la Ciberdefensa
Curso Online de Especialización en Seguridad Informática para la CiberdefensaCurso Online de Especialización en Seguridad Informática para la Ciberdefensa
Curso Online de Especialización en Seguridad Informática para la CiberdefensaChema Alonso
 

Plus de Chema Alonso (20)

Índice Pentesting con Kali 2.0
Índice Pentesting con Kali 2.0Índice Pentesting con Kali 2.0
Índice Pentesting con Kali 2.0
 
Cazando Cibercriminales con: OSINT + Cloud Computing + Big Data
Cazando Cibercriminales con: OSINT + Cloud Computing + Big DataCazando Cibercriminales con: OSINT + Cloud Computing + Big Data
Cazando Cibercriminales con: OSINT + Cloud Computing + Big Data
 
New Paradigms of Digital Identity: Authentication & Authorization as a Servic...
New Paradigms of Digital Identity: Authentication & Authorization as a Servic...New Paradigms of Digital Identity: Authentication & Authorization as a Servic...
New Paradigms of Digital Identity: Authentication & Authorization as a Servic...
 
CritoReto 4: Buscando una aguja en un pajar
CritoReto 4: Buscando una aguja en un pajarCritoReto 4: Buscando una aguja en un pajar
CritoReto 4: Buscando una aguja en un pajar
 
Dorking & Pentesting with Tacyt
Dorking & Pentesting with TacytDorking & Pentesting with Tacyt
Dorking & Pentesting with Tacyt
 
Pentesting con PowerShell: Libro de 0xWord
Pentesting con PowerShell: Libro de 0xWordPentesting con PowerShell: Libro de 0xWord
Pentesting con PowerShell: Libro de 0xWord
 
Foca API v0.1
Foca API v0.1Foca API v0.1
Foca API v0.1
 
It's a Kind of Magic
It's a Kind of MagicIt's a Kind of Magic
It's a Kind of Magic
 
Ingenieros y hackers
Ingenieros y hackersIngenieros y hackers
Ingenieros y hackers
 
Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...
Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...
Cuarta Edición del Curso Online de Especialización en Seguridad Informática p...
 
Auditoría de TrueCrypt: Informe final fase II
Auditoría de TrueCrypt: Informe final fase IIAuditoría de TrueCrypt: Informe final fase II
Auditoría de TrueCrypt: Informe final fase II
 
El juego es el mismo
El juego es el mismoEl juego es el mismo
El juego es el mismo
 
El Hardware en Apple ¿Es tan bueno?
El Hardware en Apple ¿Es tan bueno?El Hardware en Apple ¿Es tan bueno?
El Hardware en Apple ¿Es tan bueno?
 
Latch en Linux (Ubuntu): El cerrojo digital
Latch en Linux (Ubuntu): El cerrojo digitalLatch en Linux (Ubuntu): El cerrojo digital
Latch en Linux (Ubuntu): El cerrojo digital
 
Hacking con Python
Hacking con PythonHacking con Python
Hacking con Python
 
Shuabang Botnet
Shuabang BotnetShuabang Botnet
Shuabang Botnet
 
Codemotion ES 2014: Love Always Takes Care & Humility
Codemotion ES 2014: Love Always Takes Care & HumilityCodemotion ES 2014: Love Always Takes Care & Humility
Codemotion ES 2014: Love Always Takes Care & Humility
 
Analizando la efectividad de ataques de correlación pasivos en la red de ano...
Analizando la efectividad de ataques de correlación pasivos en la red de ano...Analizando la efectividad de ataques de correlación pasivos en la red de ano...
Analizando la efectividad de ataques de correlación pasivos en la red de ano...
 
Guía de uso de Latch en la UNIR
Guía de uso de Latch en la UNIRGuía de uso de Latch en la UNIR
Guía de uso de Latch en la UNIR
 
Curso Online de Especialización en Seguridad Informática para la Ciberdefensa
Curso Online de Especialización en Seguridad Informática para la CiberdefensaCurso Online de Especialización en Seguridad Informática para la Ciberdefensa
Curso Online de Especialización en Seguridad Informática para la Ciberdefensa
 

Dernier

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 

Dernier (10)

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 

Web Browser Fingerprinting

  • 1. WEB BROWSER FINGERPRINTING Pedro Laguna Durán, Alejandro Martín Bailón, José María Alonso Cebrián y Antonio Guzmán Sacristán Informática 64 & División de Arquitectura de Computadores. Escuela Superior de Ciencias Experimentales y Tecnología. Universidad Rey Juan Carlos. C/ Juan Ramón Jiménez 8, posterior, 28932, Móstoles (Madrid) RESUMEN La industria del malware está orientada cada vez más a un negocio organizado y automatizado. En dicha industria la infección de máquinas clientes a través de navegadores sin actualizar, y por tanto vulnerables, es pieza clave en el proceso delictivo. La toma de control de las máquinas se realiza a través de exploits adaptados a las diferentes versiones y a los distintos navegadores de internet. Para decidir el exploit adecuado para un determinado navegador de internet se utiliza el campo User-Agent de las cabeceras HTTP que envía el navegador cliente. Ese campo puede ser manipulado para, mediante técnicas de engaño (deception techniques) se utilice un exploit que no funcione. Este trabajo demuestra cómo, utilizando el lenguaje Javascript, se puede realizar un análisis fingerprinting del navegador y conocer la versión del mismo para utilizar el exploit adecuado dejando la técnica de engaño por medio de modificación del valor User-Agent sin ninguna utilidad. PALABRAS CLAVES Seguridad, Fingerprinting, Deception, Web Browser, Javascript 1. INTRODUCCIÓN La industria del malware está orientada a la consecución de dinero mediante acciones delictivas de mayor o menor grado de punibilidad en función de la legislación del cada país. Para la consecución de la ejecución de estos delitos, ya sea el envío masivo de correos, la distribución de malware, el espionaje de actividades por parte del usuario, las extorsiones por medio de denegaciones de servicio, el robo de identidad o el robo fraudulento de dinero, la industria del malware utiliza máquinas controladas ilícitamente. Para el control ilícito de estas máquinas se utilizan troyanos que son introducidos en las máquinas de muy diversas formas. Una de las técnicas utilizadas es mediante el uso de navegadores de internet con alguna vulnerabilidad. El proceso que se sigue en el control de la máquina es el siguiente: a) Se controlan servidores web que son alimentados con exploits para todos los navegadores. b) El usuario navega por una de las webs controladas c) El servidor web analiza la versión del navegador d) El servidor web lanza el exploit adecuado a la versión del navegador e) Una vez obtenido control de ejecución sobre la máquina cliente se instala el troyano. El presente artículo describe como se analiza la versión del navegador utilizando el parámetro HTTP User-Agent y cómo las técnicas de decepción no son útiles ya que mediante técnicas de fingerprinting utilizando Javascript se puede concluir la versión del navegador a utilizar. 2. ANÁLISIS DE LA VERSIÓN DEL NAVEGADOR DE INTERNET En el proceso descrito en el punto anterior, es necesario que el servidor web analice la versión del navegador. Esto se puede realizar fácilmente utilizando el campo User-Agent de la petición HTTP. Este mensaje está Conferência IADIS Ibero-Americana WWW/Internet 2008 453
  • 2. recogido en la especificación HTTP 1.1 del W3C [1] y cada fabricante de software decide que información va a introducir en él dependiendo de las versiones y los complementos que tenga instalado el navegador. 3. ATAQUES DE DECEPCIÓN O ENGAÑO Las técnicas de decepción o engaño han sido tradicionalmente utilizadas por los administradores para dificultar la tarea de los posibles atacantes. Se han utilizado para cambiar versiones de servidores de correo, ocultar la versión del sistema operativo e incluso analizar el comportamiento de los atacantes para poder detectar algún posible fuga de información y conocer el comportamiento de los atacantes, dando lugar al nacimiento de los honney-pots [2]. En el entrono en que nos situamos de amenaza, un posible ataque de decepción que podría realizar el usuario para protegerse de los atacantes sería cambiar la información del campo User-Agent enviado por el navegador al servidor. De esta manera el servidor obtendría información errónea y el software malicioso intentaría vulnerar la máquina cliente por medio de un exploit inadecuado y por lo tanto no operativo. 3.1 Modificación del Valor de User-Agent La manera de cambiar el User-Agent puede realizarse de manera temporal en una o varias peticiones mediante el uso de herramientas de interceptación de comunicaciones HTTP como Odysseus[3], Burp Proxy [4], Achilles [5] o extensiones de los navegadores como User Agent Switcher [6] para Firefox que permite incluso la creación de perfiles de navegación. Para realizar un cambio permanente en el valor User-Agent con el que se va a identificar el navegador se deben utilizar mecanismos distintos dependiendo de la versión del mismo. A continuación se muestra cómo se realiza en cada uno de los navegadores utilizados en el presente estudio. 3.1.1 Mozilla Firefox Para cambiar el valor de User Agent en las versiones de este navegador hemos de acceder a las opciones de configuración. Para ello se introduce en la barra de direcciones el URI about:config. Una vez abierto el menú de opciones se debe cambiar el valor de la cadena general.useragent.extra.firefox por el valor que se desee. 3.1.2 Opera Web Browser En Opera Web Browser el cambio del valor User-Agent se realiza en las opciones de configuración. Para acceder a ellas se debe introducir en la barra de direcciones el URI opera:config. Una vez abierta la página de configuraciones se debe localizar el apartado User Agent. En el navegador Opera se puede definir un valor entero que equivale a un User Agent concreto. Los valores que vienen registrados son: 1. Opera (Original), 2. Mozilla (Muestra la versión real de Opera), 3. IE (Muestra la versión real de Opera), 4. Mozilla (No hace mención a Opera) y 5. IE (No hace mención a Opera) 3.1.3 Microsoft Internet Explorer Las versiones de Internet Explorer utilizan el registro de Windows para configurar algunos de sus parámetros. Este es el caso del valor del campo User-Agent, por lo que es necesario crear una clave de registro en la dirección HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionInternet SettingsUser AgentPost Platform de tipo cadena. El valor de de esa clave de registro será el valor del campo User-Agent que utilizará Internet Explorer. 3.1.4 Apple Safari Para poder modificar el valor de User-Agent en Safari 3.0 se debe activar primero el Menú del Desarrollador dentro de las Preferencias Avanzadas. Una vez activada esta opción aparece disponible un nuevo menú llamado Develop dónde es posible seleccionar entre una gran multitud de valores para User-Agent entre los que se encuentran los propios de productos Apple. En esta opción del menú también es posible crear un nuevo valor de User-Agent. ISBN: 978–972–8924–72-0 © 2008 IADIS 454
  • 3. 3.1.5 Google Chrome La forma de cambiar el User-Agent en la versión actual de Google Chrome es la más compleja entre los distintos navegadores analizados. Este navegador no presenta una forma propia de cambiar este valor si no que hay que recurrir al uso de herramientas externas para modificar los ficheros del programa. La cadena de User-Agent que se envía en cada petición con este navegador se encuentra ubicada dentro del fichero chrome.dll de la carpeta de instalación de la aplicación. Abriendo este fichero con un editor hexadecimal y localizando la posición de la cadena del User-Agent podremos modificarla por la que deseemos, aunque siempre con una limitación: el tamaño de la cadena resultante ha de ser el mismo que el de la cadena original. 3.1.6 Otros navegadores de Internet La opción de cambiar el valor de User-Agent siempre es posible, si existiera algún navegador sin la opción de cambiarlo siempre se podría realizar de forma temporal mediante herramientas externas como se ha citado en la introducción de este apartado. 4. TÉCNICAS DE FINGERPRINTING El objetivo de las técnicas de fingerprinting en seguridad informática es descubrir información analizando el comportamiento que tiene un sistema ante determinados estímulos y comprobando las diferencias que hacen a un sistema diferenciable de forma unívoca de software similar. Así, existen estudios sobre fingerprinting de sistemas operativos [7], estudios de fingerprinting sobre servidores web [8], etc... Estos estudios dejan claro que la ocultación de información no suele ser una buena solución como única medida para la protección de un sistema. 4.1 Fingerprinting de Navegadores Web En este caso, hemos realizado un estudio de comportamiento de los navegadores mediante el lenguaje Javascript. Este estudio ha sido realizado sobre Navegadores Mozilla Firefox versiones 2 y 3, Apple Safari versión 3, Opera versión 9 y Microsoft Internet Explorer versiones 6 y 7. Este conjunto de navegadores son los más utilizados en Internet, cubriendo con el estudio más del 90 % de los clientes utilizados en Internet hoy en día, según las estadísticas de W3Counter de Junio de 2008 [9]. Las características analizadas para este estudio han sido las respuestas ante el uso de los objetos AJAX [10] en un navegador web y el intento de realización de funciones ilegales dentro de un entorno de seguridad no permitido. 4.2 Prueba de Concepto Este artículo va acompañado del código de la prueba de concepto utilizada para el estudio. Dicho código se encuentra en el Apéndice A y está formado por dos funciones, la función CheckBrowser, que realiza la prueba de fingerprinting al navegador y la función ShowBrowser, utilizada únicamente para escribir los resultados en una página web. La función CheckBrowser va a realizar tres operaciones para generar mensajes de error. En primer lugar realiza la invocación de un componente AJAX que sólo existe en navegadores Microsoft Internet Explorer, en segundo lugar intenta acceder a un recurso del sistema y en tercer lugar intentando enviar el fichero. Si el componente AJAX de Microsoft está cargado, entonces la prueba de fingerprinting evalúa el número, el mensaje y la descripción del error que se ha producido en las funciones de apertura del recurso local o el envío del fichero. Esto permite discernir entre un navegador de versión 6 o versión 7. En el caso de que el navegador no sea un Microsoft Internet Explorer entonces se evalúan los mensajes de error obtenidos en ese proceso de tal manera que si el sistema recoge el mensaje “Access to restricted URI denied” este código Javascript se ha ejecutado en un navegador Mozilla Firefox 3.0. Si el mensaje de error es “Security violation” entonces se ha ejecutado sobre un Opera Web Browser 9. Si se obtiene “Permission denied” sobre un Apple Safari 3 o Google Chrome (ya que comparten motor de renderizado HTML) y si el Conferência IADIS Ibero-Americana WWW/Internet 2008 455
  • 4. mensaje es “Permission denied to call method XMLHTTPRequest.open”, entonces el sistema está frente a un Mozilla Firefox 2.0. Cómo se puede ver, basta con generar errores y catalogar los distintos mensajes de error que son producidos por las distintas versiones de los navegadores para poder averiguar que versión exacta es la que está ejecutando el código Javascript. 4.3 Resultados en Laboratorio Este código, situado en una página web que sea visitada a través de Internet permite detectar una manipulación de versión entre todos los navegadores incluidos en el estudio. En la Figura 1 se puede ver cómo se ha manipulado el valor de User-Agent en un navegador Safari 3 para simular ser un navegador Mozilla Firefox versión 2 y el programa detecta dicha manipulación. Figura 1. Safari 3 con User-Agent manipulado 5. CONCLUSIÓN El presente trabajo demuestra que es posible aplicar las técnicas de fingerprinting para la detección de la versión del navegador. Cómo se puede ver este trabajo es una versión preliminar, pero aplicando técnicas similares se podrían detectar versiones más detalladas del software e incluso complementos instalados en los navegadores, permitiendo un ajuste mucho más fino en la información extraída. Este trabajo demuestra que la decepción o engaño en la versión del navegador mediante el cambio del valor mostrado en User-Agent no es una medida efectiva para la protección del navegador frente a amenazas de Internet mientras que por el contrario tiene como efecto negativo el entorpecimiento de la navegación, pues el valor User-Agent es utilizado por muchos desarrolladores de Internet para configurar correctamente las opciones de visualización y accesibilidad de una determinada página web. Además, si la manipulación del valor User-Agent se mostrara como una medida efectiva para la ocultación de la versión del navegador, la industria del malware siempre podría aplicar técnicas de fuerza bruta, heurística o probabilísticas para seguir encontrando el exploit que funciona o los exploits a probar en un determinado cliente. Cómo recomendación efectiva en el incremento de la seguridad de la navegación contra la infección por software malicioso queda siempre recurrir a los principios de fortificación de plataforma que cada fabricante de software ofrece y que se pueden recoger en las reglas de Defensa en Profundidad, Mínimo Punto de Exposición y Mínimo Privilegio Posible, ampliamente tratadas en recomendaciones de seguridad. AGRADECIMIENTOS Los autores de este trabajo quieren dar las gracias a la comunidad de amigos interesados por la seguridad en Internet que comparten día a día su conocimiento y que con sus aportaciones hacen más interesante y divertido el trabajo en seguridad Informática. ISBN: 978–972–8924–72-0 © 2008 IADIS 456
  • 5. REFERENCIAS Network Working Group 1990, Hypertext Transfer Protocol -- HTTP/1.1, RFC 2616, HTTP://www.w3.org/Protocols/rfc2616/rfc2616.html, Junio de 1999. Niels Provos* 2004, Google, Inc, A Virtual Honeypot Framework, Proceedings of the 13th USENIX Security Symposium, HTTP://www.citi.umich.edu/u/provos/papers/honeyd.pdf, Agosto de 2004. Bindshell 2006, Odysseus, HTTP://www.bindshell.net/tools/odysseus, Diciembre de 2006. Portswigger, Burp Proxy, HTTP://portswigger.net/proxy/ Robert Cardona 2000, Systegra, Achilles, HTTP://www.mavensecurity.com/Achilles.php, Octubre de 2000. Chris Pederick 2003, User Agent Switcher, HTTP://chrispederick.com/work/user-agent-switcher/, Febrero 2003. Fyodor 1998, NMAP, Remote OS Detection via TCP/IP Stack Fingerprinting, HTTP://www.nmap.org/nmap/nmap-fingerprinting-article.html, October de 1998. Hernan Riacciatti 2005, HTTP Fingerprinting, Revista @rroba #96, HTTP://www.hernanracciatti.com.ar/articles/HPP27_HTTP_Fingerprinting.pdf, Noviembre de 2005. W3Counter 2008, Global Stats, HTTP://www.w3counter.com/globalstats.php?date=2008-06-30, Junio 2008. John Moore 2008, RIAspot.com, What is Ajax?, HTTP://www.riaspot.com/articles/entry/What-is-Ajax-, Julio 2008. APÉNDICE A: CÓDIGO FUENTE DE LA PUEBRA DE CONCEPTO <html><head><title>AJAX-way Browser Version footprinting</title></head> <body onLoad="checkBrowser()"> <script> var browser = 0; document.write("<div style="text-align:center;"> <h2>User Agent:"+navigator.userAgent+"</h2>”); document.write("<h2>Real Browser: "); function checkBrowser() { try { if(window.XMLHTTPRequest) {x=new XMLHTTPRequest();} else {x=new ActiveXObject('Microsoft.XMLHTTP'); } x.open("GET","about:blank",false); x.send(); } catch(e) { if(e.message) { switch(e.message){ case "Access to restricted URI denied": document.write("Firefox 3.0</h2></div>"); break; case "Security violation": document.write("Opera 9.5 </h2></div>");break; case "Permission denied": try { if(google) {} } catch(w) { if(w.message.length > 1) document.write("Safari 3</h2></div>"); else document.write("Google Chrome</h2></div>") } finally { break; } default: break;} } else { if(e == "Permission denied to call method XMLHTTPRequest.open"); document.write("Firefox 2.0 </h2></div>"); } if(e.number && !e.name.match(/Type/)) {document.write("Internet Explorer 6.0</h2></div>");} if(e.description.match(/ /) && browser == 0) {document.write("Internet Explorer 7.0</h2></div>");} } finally {break;} } </script></body></html> Conferência IADIS Ibero-Americana WWW/Internet 2008 457