jueves, 6 de diciembre de 2012

Fingerprinting

1- ¿Qué es?

Este método, cuya traducción sería “huella dactilar a nivel web”, es utilizado para obtener información de un determinado servidor. Al igual que cada persona tiene distintas huellas dactilares, lo mismo ocurre en los sistemas informáticos, donde cada servidor tiene una forma diferente de responder a ciertas peticiones, pudiendo distinguir de ese modo, por ejemplo, un servidor Apache de un servidor Cherokee.

2- ¿Cómo funciona?

El fingerprinting se consigue a través del análisis del sitio web a atacar y de la “basura” del mismo recolectando información para hacernos una mejor idea sobre qué plataformas trabaja y otra información será de gran ayuda para poder personalizar posteriormente el ataque.

A continuación se incluye una lista con los principales tipos de de datos que son posibles analizar, junto con la información que se puede obtener mediante esta técnica:


a) Errores 404:

En algunas ocasiones veces los webmasters se olvidan de cambiar el archivo error404.php/html/… que traen por defecto los scripts y éstos normalmente nos brindan una amplia información como por ejemplo: el tipo de software y versión del servidor web, versión de su php, sistema operativo, etc.


b) Puertos/Servicios:
Es posible realizar un escaneo del puerto 80 y con ello determinar qué servidor web es utilizo (Apache, Cherokee, IIS, etc.), su versión y, en muchos casos, si hay otros programas corriendo por dicho servicio.


c) Headers o cabeceras de la web:
De manera similar al caso de los errores 404, algunas webmasters dejan los archivos que trae el script por defecto, por ejemplo el fichero headers.php donde se podría encontrar también información relevante.

d) Firmas digitales:
Se utilizan cuando la web está utilizando la seguridad que proporciona SSL (Secure Socket Layer), siendo responsables de mantener la integridad de los datos. Partiendo de dichas firmas podemos saber qué tipo de aplicación web está siendo utilizada.

La Figura 1 muestra dos ejemplos, uno de una máquina que nos informa que está trabajando sobre IIS 4.0 y otro de una máquina corriendo bajo un servidor IIS 5.0. Una vez que un atacante posee esta información puede buscar en las bases de datos de agujeros se seguridad y exploits para ya poder lanzar un ataque totalmente personalizado para dicha máquina.

Figura 1: Ejemplo de muestras de IIS 4.0 e IIS 5.0


e) TTL(Time To Live):

En sistemas Windows el elemento TTL tiene un valor de 128 mientras que en sistemas Linux su valor es igual a 64. De este modo al hacer el ping al TTL ya podemos determinar con facilidad qué sistema operativo está funcionando.

Para modificarlo es necesario utilizar el regedit de manera que en la cadena “ HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\” se cree o se modifique una nueva variable DWORD con el nombre DefaultTTL que incluya el valor deseado.

f) Paquetes ICMP Redirect:
Estos paquetes también indican de una forma sencilla qué sistema operativo está siendo utilizado.

Para desactivar este elemento se puede utilizar de nuevo el regedit donde tendremos que buscar la cadena “HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\” y crear o modificar la variable DWORD con el nombre EnableICMPRedirects introduciendo el valor 0 (por defecto está a 1).



3- Como protegernos.

Se ha de cambiar todos estos datos analizados para que si un atacante está analizando nuestro sitio no pueda obtener información útil.

El webmaster ha de modificar el archivo error404 y las cabeceras para que no se muestren los datos que vienen que configurados.

También es recomendado cambiar el valor del TTL y desactivar el ICMP Redirect ya que no influye en el correcto funcionamiento y sí es un problema para el atacante ya que de este modo no tiene información correcta de forma sencilla.

No hay comentarios:

Publicar un comentario

Esperando tu comentario...