El documento habla sobre la detección de sniffers o programas espía en una red. Explica cómo funciona el protocolo ARP y cómo se puede usar Wireshark u otras herramientas como Nast para detectar interfaces de red en modo promiscuo. También describe técnicas como el test DNS, test de ping y test ARP para identificar la presencia de sniffers. Finalmente, recomienda el uso de redes conmutadas, PGP, SSL, SSH y VPN para protegerse contra la acción de los sniffers.
2. En esta presentación trataremos también la detección desde varios
escenarios usando Wireshark y algún que otro software / técnica más de
detección como Nast y DecaffeinatID, ArpOn, VLANs, algún firewall como
Outpost, …
Decíamos, entonces….
“Que vamos a tratar aquí, principalmente, la detección de sniffers en
nuestra red desde el escenario más básico posible. Este escenario sería
una subred o red. Aunque más adelante nos introduciremos brevemente
en redes conmutadas o basadas en switches y herramientas de detección
en este tipo de redes……. “
3. Sobre posicionamiento de un sniffer en nuestra red:
Antes que nada, decir que los sniffers no son fáciles de detectar y
combatir, ya que se trata de programas que trabajan en modo pasivo. Las
técnicas que se tratan aquí, por tanto, no son totalmente fiables, aunque
en algunos casos si suponen una gran aproximación al descubrimiento de
este tipo de software. Antes que nada y para entender algunos conceptos
de esta presentación veremos como funciona, brevemente, el protocolo
ARP
4. Que es. Para que sirve ARP ?
En una red Ethernet cuando queremos enviar un paquete IP entre dos
hosts conectados, las únicas direcciones válidas son las MAC, y lo que
circula en las tramas Ethernet.
Entonces, y volviendo al ejemplo de antes, cuando queremos enviar un
paquete IP lo que se hace es “meter” el paquete dentro de una trama
Ethernet y enviar.
5. Que es. Para que sirve ARP ?
HLEN Longitud dirección hardware
PLEN Longitud dirección del protocolo
OPERACION Código de operación (ARPreques ó ARPreply)
SENDER HA Dirección de origen hardware
SENDER IP Dirección de origen del protocolo
TARGET HA Dirección de destino hardware
6. Cual es el problema entonces ?
El problema radica en que sabemos la dirección IP del host de destino
pero no su dirección MAC.
Como se soluciona esto ?
La solución está en que antes de enviar el paquete IP se debe usar ARP
para averiguar cual es la dirección MAC del host destino de la conexión
que pretendemos realizar.
7. Y como se hace ?.
ARP tiene dos tipos básicos de mensajes:
mensaje de petición o ARPrequest
mensaje de respuesta o ARPreply
los dos viajan por nuestra red dentro de tramas Ethernet.
8. Cuando queremos enviar un paquete IP desde un host origen (A)
hacia un host destino (B) sucede:
(A) crea un mensaje o petición ARPrequest indicando:
su dirección IP
su dirección MAC
dirección IP del host (B)
campo de dirección MAC host (B) sin rellenar.
9. envia el ARPrequest a la dirección broadcast (todos los hosts de la red) pero
sólo contesta uno de ellos (B). Entonces:
(B) crea un mensaje ARPreply:
rellena el campo de dirección MAC con su MAC
intercambia las direcciones origen y destino
cambia el tipo de mensaje de ARPreques a ARPreply
envia el mesnaje ARPrpely a (A).
Ya hay entonces información suficiente para establecer cualquier
comunicación entre (A) y (B).
10. Esto lo podemos comprobar utilizando un sniffer de red como Wireshark,
Windump… y filtrando por protocolos, en este caso ARP:
12. Toda la información de las relaciones IP/MAC se guarda en la cache ARP. En
un sistema Windows:
C:>arp -a
Interfaz: 192.168.4.3 on Interface 0×1000003
Dirección IP Dirección física Tipo
192.168.4.1 00-04-76-97-b3-a9 dinámico
192.168.4.20 00-a0-24-4e-4e-4e dinámico
Sistemas Linux:
$ arp -a
serprint (192.168.4.2) at 52:54:05:fd:de:e5
infografia3 (192.168.4.3) at 00:90:27:6a:58:74
Una vez visto como funciona el protocolo ARP, seguimos con la detección de
los sniffers.
13. Detección en sistemas UNIX/Linux
En entornos Linux o UNIX la verificación de una interface en modo promiscuo se
puede hacer usando ifconfig. Este programa configura la interface de red
instalada en un determinado host y obtiene información de la configuración
en el momento de ejecutar el programa. Cuando un adaptador de red se
encuentra en modo promiscuo, ifconfig nos devuelve la siguiente información:
$ ifconfig -a
eth0 Link Encap: 10Mbps Ethernet HWaddr: xx:xx:xx:xx:xx:xx
inet addr: a.b.c.d Bcast: a.b.c.f Mask: m.m.m.m
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1 (OJO: Modo
promiscuo)
RX packets: 0 errors:0 dropped:0 overruns:0TX packets:0 errors:0 dropped:0
overruns:0
Interrupt:15 Base Address:0×300
14. Detección en sistemas UNIX/Linux
Este sistema no es infalible.
Existen programas que pueden hacer esta labor como:
Nast. ( Network Analyzer Sniffer Tool. )
http://nast.berlios.de/
15. Detección en sistemas UNIX/Linux
Herramienta para Linux. Nast es un Sniffer multipropósito. Entre otras funciones,
realiza:
listado de host de una red,
búsquedas de Gateway,
control de ARP-Spoofing
reseteo de conexiones TCP establecidas,
búsqueda de dispositivos hub / switch,
scan de puertos
seguimiento de TCP data Stream
…..
y, lo que nos interesa: descubrimiento de modo promiscuo en interfaces de
red,
16. Detección en sistemas UNIX/Linux
Para este propósito tan solo ejecutar nast de la forma:
nast -P, 192.168.1.30
Nast V. x.x.x
This check can have false response, pay attention!
Scanning for sniffer the following host:
192.168.1.15 (192.168.1.30) ———> Found!
nos devolverá información de si dicha IP está (la interface de red) en
modo promiscuo.
17. Detección en sistemas UNIX/Linux
AntiSniff_v1.3
http://www.packetstormsecurity.org/sniffers/antisniff/as-1021.zip
Esta herramienta, tanto para plataformas linux/Unix como para Win32, es
muy sencilla de usar y tan sólo es necesario introducir el rango de IPs a
monitorizar en busca del posible sniffer.
Usa las técnicas de ping de latencia, test DNS y test ARP.
18. Las técnicas de detección. Breve
explicación.
El Test DNS
En este método, la herramienta de detección en sí misma está en modo
promiscuo. Creamos numerosas conexiones TCP falsas en nuestro
segmento de red, esperando un sniffer pobremente escrito para atrapar
estas conexiones y resolver la dirección IP de los inexistentes hosts.
Algunos sniffers realizan búsquedas inversas DNS en los paquetes que
capturan. Cuando se realiza una búsqueda inversa DNS, una utilidad de
deteción de sniffers “huele” la petición de las operaciones de búsqueda
para ver si el objetivo es aquel que realiza la petición del host inexistente.
19. Las técnicas de detección. Breve
explicación
El Test del Ping Este método confía en un problema en el núcleo de la máquina
receptora. Podemos construir una petición tipo “ICMP echo” con la dirección
IP de la máquina sospechosa de hospedar un sniffer, pero con una dirección
MAC deliberadamente errónea.
Enviamos un paquete “ICMP echo” al objetivo con la dirección IP correcta,
pero con una dirección de hardware de destino distinta. La mayoría de los
sistemas desatenderán este paquete ya que su dirección MAC es incorrecta.
Pero en algunos sistemas Linux, NetBSD y NT, puesto que el NIC está en modo
promiscuo, el sniffer asistirá este paquete de la red como paquete legítimo y
responderá por consiguiente.
Si el blanco en cuestión responde a nuestra petición, sabremos que está en
modo promiscuo. Un atacante avanzado puede poner al día sus sniffers para
filtrar tales paquetes para que parezca que el NIC no hubiera estado en modo
promiscuo.
20. Las técnicas de detección. Breve
explicación
El Test ICMP Ping de Latencia. En éste método, hacemos ping al blanco y
anotamos el Round Trip Time (RTT, retardo de ida y vuelta o tiempo de
latencia) Creamos centenares de falsas conexiones TCP en nuestro
segmento de red en un período de tiempo muy corto.
Esperamos que el sniffer esté procesando estos paquetes a razón de que el
tiempo de latencia incremente.
Entonces hacemos ping otra vez, y comparamos el RTT esta vez con el de
la primera vez. Después de una serie de tests y medidas, podemos concluir
o no si un sniffer está realmente funcionando en el objetivo o no.
21. Las técnicas de detección. Breve
explicación
El test ARP Podemos enviar una petición ARP a nuestro objetivo con toda la
información rápida excepto con una dirección hardware de destino
errónea.
Una máquina que no esté en modo promiscuo nunca verá este paquete,
puesto que no era destinado a ellos, por lo tanto no contestará.
Si una máquina está en modo promiscuo, la petición ARP sería
considerada y el núcleo la procesaría y contestaría. Por la máquina que
contesta, la sabemos estamos en modo promiscuo.
22. Las técnicas de detección. Breve
explicación
El test Etherping
Enviamos un “ping echo” al host a testear con una IP de destino correcta y
dirección MAC falseada.
Si el host responde, es que su interfaz está en modo promiscuo, es decir,
existe un sniffer a la escucha y activo.
23. Protegerse contra la acción de los
Sniffers
A grandes rasgos para protegernos de los sniffers y para que éstos no
cumplan sus objetivos de olfateo de contraseñas y en general nos “lean
datos sensibles” en texto plano -sin cifrado fuerte-, podemos hacer uso de
diversas técnicas o utilizar sistemas como:
Redes conmutadas (no siempre es efectivo)
PGP
SSL
SSH
VPN
24. Protegerse contra la acción de los
Sniffers
PGP. Su finalidad es proteger la información distribuida a través de Internet
mediante el uso de criptografía de clave pública, así como facilitar la
autenticación de documentos gracias a firmas digitales.
PGP. es un cripto-sistema híbrido que combina técnicas de criptografía
simétrica y criptografía asimétrica. Esta combinación permite aprovechar
lo mejor de cada uno: El cifrado simétrico es más rápido que el asimétrico
o de clave pública, mientras que éste, a su vez, proporciona una solución
al problema de la distribución de claves en forma segura y garantiza el no
repudio de los datos y la no suplantación.
25. Protegerse contra la acción de los
Sniffers
SSL. Secure Sockets Layer (SSL; en español “capa de conexión segura) y su
sucesor Transport Layer Security (TLS; en español “seguridad de la capa de
transporte) son protocolos criptográficos que proporcionan
comunicaciones seguras por una red, comúnmente Internet
SSH (Secure SHell, en español: intérprete de órdenes segura) es el nombre
de un protocolo y del programa que lo implementa, y sirve para acceder
a máquinas remotas a través de una red.
Permite manejar por completo la computadora mediante un intérprete de
comandos, y también puede redirigir el tráfico de X para poder ejecutar
programas gráficos si tenemos un Servidor X (en sistemas Unix y Windows)
corriendo.
26. Protegerse contra la acción de los
Sniffers
Una red privada virtual, RPV, o VPN de las siglas en inglés de Virtual Private
Network, es una tecnología de red que permite una extensión segura de la
red local sobre una red pública o no controlada como Internet.
Permite que la computadora en la red envíe y reciba datos sobre redes
compartidas o públicas como si fuera una red privada con toda la
funcionalidad, seguridad y políticas de gestión de una red privada.
Esto se realiza estableciendo un conexión virtual punto a punto mediante
el uso de conexiones dedicadas, encriptación o la combinación de
ambos métodos.
27. Protegerse contra la acción de los
Sniffers
Implementación de VLANs que, a parte de mejoras de seguridad, aportan
optimización del tráfico LAN. Algunos tipo de políticas / configuración
VLANs, puede ser susceptibles de atacadas mediante ARP Spoofin.
Algunos routers / switch implementan medidas adicionales de seguridad
anti spoofing mediante reglas, etc.
Aunque ya veremos más adelante que ni siquiera el uso de SSH, por citar
un ejemplo, nos puede proteger efectivamente del uso de ciertos tipos de
sniffer como ettercap.
28. Detección en redes conmutadas
En redes conmutadas o que hagan uso de switches, la técnica de ARP
poisoning o envenenamiento arp es la más efectiva.
Esta técnica consiste, muy brevemente, en modificar (envenenar) la tabla
ARP de los host involucrados en el ataque para que éstos envíen a la red
tramas Ethernet con destino la MAC del atacante.
Esto significa que el switch entregará los datos de las comunicación a
dicho host. Para evitar el refresco de la caché ARP es necesario el envió
constante de arp-reply.
Una posible solución o defensa sería el uso de MACs estáticas, con el fin de
que no puedan ser modificadas, aunque en algunos sistemas Windows
esto no es eficiente al 100 por 100.
29. Detección en redes conmutadas
ArpOn ( Arp Handler Inspection )
http://arpon.sourceforge.net/
ArpOn es una herramienta para sistemas Linux, Mac OS X, FreeBSD, NetBSD,
OpenBSD, que implementa, no ya la detección de ARP spoofing, si no, más
bien, el bloqueo y defensa mediante dos técnicas:
SARPI Se refiere al modo de funcionamiento estático. En este modo, ArpOn
crea una lista, guarda en una caché, las entradas de la tabla de ARP, de esta
forma, ArpOn, sólo permitirá el tráfico de peticiones y respuestas ARP de las IP /
MAC reflejadas en la información previamente guardada en la cache más
arriba comentada.
30. Detección en redes conmutadas
DARPI Se refiere al modo de funcionamiento dinámico. Es este modo, ArpOn, borra toda las
entradas de la caché ARP. Entonces, las nuevas entradas se irán añadiendo a una caché
especial para los mensajes de petición o ARPrequest y para los de respuesta o ARPreply. ArpON,
de forma dinámica, básicamente, lo que hace es
dejar pasar los ARPrequest generados por nuestro host y apunta en la caché la dirección
destino.
rechaza los ARPRequest que proceden de la LAN dirigido a nuestro host y borra lo referente a la
dirección origen. El mismo Kernel será el que envie un paquete ARPrequest a la dirección de
orígen.
dejar pasar los ARPreply generados por nuestro host.
para los ARPreply procedentes de la LAN, se comprueba si la dirección de origen se encuentra
en la caché apuntada por ArpOn en el ARPrequest generado por nuestro host. Si existe la
entrada, se le deja pasar al paquete, caso contrario se rechaza y elimina la entrada de la
caché.