30
Detectando Sniffers en nuestra red. Clase 4 14-03-2013

Detectando sniffers en nuestra red b

  • Upload
    tensor

  • View
    652

  • Download
    0

Embed Size (px)

DESCRIPTION

Detectando sniffers en nuestra red b

Citation preview

Page 1: Detectando sniffers en nuestra red b

Detectando Sniffers en nuestra red. Clase 4

14-03-2013

Page 2: Detectando sniffers en nuestra red b

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……. “

Page 3: Detectando sniffers en nuestra red b

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

Page 4: Detectando sniffers en nuestra red b

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.

Page 5: Detectando sniffers en nuestra red b

Que es. Para que sirve ARP ?

HLEN Longitud dirección hardwarePLEN Longitud dirección del protocoloOPERACION Código de operación (ARPreques ó ARPreply)SENDER HA Dirección de origen hardwareSENDER IP Dirección de origen del protocoloTARGET HA Dirección de destino hardware

Page 6: Detectando sniffers en nuestra red b

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.

Page 7: Detectando sniffers en nuestra red b

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.

Page 8: Detectando sniffers en nuestra red b

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.

Page 9: Detectando sniffers en nuestra red b

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).

Page 10: Detectando sniffers en nuestra red b

Esto lo podemos comprobar utilizando un sniffer de red como Wireshark, Windump… y filtrando por protocolos, en este caso ARP:

Page 11: Detectando sniffers en nuestra red b

C:\scan>windump -qtn arp (en linux tcpdump)

windump: listening on \Device\NPF_{604C8AE3-5FAC-45A5-BFAA-81175A8C32BF}

arp who-has 192.168.5.241 tell 192.168.5.240

arp who-has 192.168.4.234 tell 192.168.4.1

arp who-has 192.168.4.234 tell 192.168.4.1

arp who-has 192.168.4.234 tell 192.168.4.1

arp who-has 192.168.5.4 tell 192.168.5.240

arp who-has 192.168.5.6 tell 192.168.5.240

arp who-has 192.168.5.44 tell 192.168.5.240

arp who-has 192.168.5.14 tell 192.168.5.240

arp who-has 192.168.4.234 tell 192.168.4.1

arp who-has 192.168.4.15 tell 192.168.4.10

arp reply 192.168.4.15 is-at 0:1:2:e7:57:cf

arp who-has 192.168.4.234 tell 192.168.4.1

arp who-has 192.168.4.15 tell 192.168.4.1

arp reply 192.168.4.15 is-at 0:1:2:e7:57:cf

arp who-has 192.168.4.234 tell 192.168.4.1

arp who-has 192.168.4.15 tell 192.168.4.13

arp reply 192.168.4.15 is-at 0:1:2:e7:57:cf…..

Page 12: Detectando sniffers en nuestra red b

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×1000003Dirección IP Dirección física Tipo192.168.4.1 00-04-76-97-b3-a9 dinámico192.168.4.20 00-a0-24-4e-4e-4e dinámico

Sistemas Linux:

$ arp -aserprint (192.168.4.2) at 52:54:05:fd:de:e5infografia3 (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.

Page 13: Detectando sniffers en nuestra red b

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.mUP 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

Page 14: Detectando sniffers en nuestra red b

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/

Page 15: Detectando sniffers en nuestra red b

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,

Page 16: Detectando sniffers en nuestra red b

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.

Page 17: Detectando sniffers en nuestra red b

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.

Page 18: Detectando sniffers en nuestra red b

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.

Page 19: Detectando sniffers en nuestra red b

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.

Page 20: Detectando sniffers en nuestra red b

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.

Page 21: Detectando sniffers en nuestra red b

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.

Page 22: Detectando sniffers en nuestra red b

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.

Page 23: Detectando sniffers en nuestra red b

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

Page 24: Detectando sniffers en nuestra red b

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.

Page 25: Detectando sniffers en nuestra red b

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.

Page 26: Detectando sniffers en nuestra red b

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.

Page 27: Detectando sniffers en nuestra red b

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.

Page 28: Detectando sniffers en nuestra red b

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.

Page 29: Detectando sniffers en nuestra red b

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.

Page 30: Detectando sniffers en nuestra red b

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é.