martes, 6 de mayo de 2008

Detección de sniffer en windows


Uno de los problemas con los que nos podemos encontrar tanto en redes inalámbricas como en redes cableadas es el uso de los programas conocidos como sniffers (husmeadores).

En redes cableadas su uso permite capturar el tráfico de toda la red (usando las tarjetas en modo promiscuo) o bien el tráfico destinado a un equipo al que previamente habremos suplantado al modificar su tabla ARP (ARP-Spoofing).

Pero ¿ en qué consiste el modo promiscuo?. Las tarjetas de red están configuradas para que acepten tráfico dirigido únicamente a su MAC (identificador que es único para una tarjeta de red). Existen, desde hace tiempo, drivers para numerosas tarjetas que consiguen que dichas tarjetas capturen el tráfico destinado a cualquier MAC (léase cualquier tarjeta de red, es decir, cualquier ordenador).

Cuando hay una tarjeta trabajando en modo promiscuo y los equipos se conectan mediante hubs (concentradores) en lugar de mediante switch (conmutadores), un equipo puede capturar todo el tráfico de la red, almacenarlo y después, o simultáneamente, ser tratado para recuperar contraseñas de otros usuarios, información,... Para la detección de tarjetas trabajando en modo promiscuo existe algún software, aunque no son fiables al 100% como antisniff de l0pth (cuya imagen podéis ver en el encabezado) y alguna herramienta de microsoft como PromqrUI.

Para evitar el anterior problema, en primer lugar se deberían sustituir los concentradores por conmutadores que evitarían ese problema, aunque sólo parcialmente. Lo que puede hacer un atancante para recuperar información en este escenario suelen ser ataques de ARP-Spoofing. Os pongo a continuación, parte de la explicación del mismo recogida de la wikipedia (para ello también tendremos que poner la tarjeta en modo promiscuo):
"Spoofing, en términos de seguridad de redes hace referencia al uso de técnicas de suplantación de identidad generalmente con usos maliciosos o de investigación.
El protocolo Ethernet trabaja mediante direcciones MAC, no mediante direcciones IP. ARP es el protocolo encargado de traducir direcciones IP a direcciones MAC para que la comunicación pueda establecerse; para ello cuando un host quiere comunicarse con una IP emite una trama ARP-Request a la dirección de Broadcast pidiendo la MAC del host poseedor la IP con la que desea comunicarse. El ordenador con la IP solicitada responde con un ARP-Reply indicando su MAC. Los Switches y los hosts guardan una tabla local con la relación IP-MAC llamada "tabla ARP". Dicha tabla ARP puede ser falseada por un ordenador atacante que emita tramas ARP-REPLY indicando su MAC como destino válido para una IP específica, como por ejemplo la de un router, de esta manera la información dirigida al router pasaría por el ordenador atacante quien podrá sniffar dicha información y redirigirla si así lo desea."

Un vídeo explicativo del arp-spoofing (suplantación de identidad arp, man-in-the-middle) lo podéis observar en la siguiente dirección:
http://icaix.com/tutoriales/ARP.htm

Para evitar ésto existen algunos programas como arp-guard o arpwatch, un programa para linux, que almacena las direcciones ip y su correspondiente MAC, alertando, incluso mediante correo electrónico, si hay algún cambio en dichas correspondencias.

En windows podemos emplear el programa DecaffeinatID.

Otro modo de detectar dichos cambios sería la instalación de un IDS en nuestra red como snort, por ejemplo.

En cualquier caso la mejor manera de solucionar este problema es emplear encriptación del tráfico en nuestra red mediante, por ejemplo, IPsec, de tal manera que aunque capturasen el tráfico sería casi imposible ver su contenido.

No hay comentarios: