Mitigar los ataques de suplantación (spoofing attacks)
EXAMEN: para evitar DHCP Spoofing el servidor DHCP debe crear una entrada ARP estática que no pueda ser actualizada por un paquete ARP dinámico.
EXAMEN: Ataques de ARP Spoofing son intentos de redirigir tráfico al host que se quiere atacar enviando un mensaje ARP con la identidad falsificada al host que transmite. (ARP spoofing attacks are attempts to redirect traffic to an attacking host by sending an ARP message with a forged identity to a transmitting host).
Este tipo de ataque consiste en inundar de direcciones MAC a un switch para que una vez llena la CAM el switch envía toda las tramas por cada uno de los puertos del switch ya que la MAC no está en la CAM, con lo cual el atacante ve tráfico que no debería ver. Una vez que el ataque cese, la CAM se irá restableciendo sacando de la tabla todas las MAC que expiren, pero mientras el atacante podrá conseguir información valiosa. Para prevenir estos ataques se pueden usar por security (la solución más común) e implementando VLAN access maps.
EXAMEN: Mac address flooding in an attempt to force a switch to send all information out every port by overloading the MAC address table).
Los switches Catalyst pueden usar las característica de DHCP snooping (fisgar DHCP) para ayudar a mitigar el tipo de ataque llamado DHCP spoofing que consiste en configurar un servidor DHCP para capturar tráfico (una especie de man in the middle) y poder responder a las peticiones de DHCP.
Una vez DHCP snooping está activado, cada interface del switch puede estar como de confianza o no confianza (por defecto). Es lógico que los servidores DHCP legítimos estén en interfaces de confianza mientras que el resto de servidores/ordenadores (puertos de acceso) estarán en los de no confianza.
La interface intercepta todo el tráfico DHCP de una interface de no confianza descartando todos las respuestas DHCP ya que asume que vienen de un server que no es confiable. Además la interface (que detecta que hay un posible servidor DHCP no confiable) se pone en estado Errdisable lo cual la deja en shutdown.
Para configurar DHCP snooping primero debemos habilitarlo globalmente en el switch:
switch(config)# ip dhcp snooping
Después debemos indicar la(s) VLAN(s) que DHCP snooping se implementará:
switch(config)# ip dhcp snooping vlan vlan-id [vlan-id]
También se pueden indicar rangos de vlans indicando la vlan inicial y final separadas por un guión.
Por defecto todas las interfaces asumen que son de no confianza (untrust) por lo que las respuestas DHCP no están permitidas (ni se espera recibirlas). Así que debemos indicar que interfaces son de confianza y hay un servidor DHCP válido y de confianza con los siguientes comandos:
switch(config)# interface type mod/num switch(config-if)# ip dhcp snooping trust
Si queremos limitar el número de peticiones DHCP en un puerto de no confianza podemos usar estos comandos:
switch(config)# interface type mod/num switch(config-if)# ip dhcp snooping limit rate rate
Para activar o desactivar la opción de DHCP option-82 podemos usar el comando:
switch(config)# [no] ip dhcp snooping information option
Por último para ver el estado del DHCP snooping usaremos el comando:
switch# show ip dhcp snooping [binding]
Si usamos binding nos muestra los que han sido rechazados.
Permite (aunque es muy complicado) mitigar la suplantación de direcciones IP y MAC. Para configurar IP Source Guard primero debemos habilitar DHCP snooping y si además queremos detectar suplantación de direcciones MAC también debemos configurar port security.
IP Source Guard hace uso de la base de datos de DHCP Snooping y las entradas de asociaciones de IP estática origen. Si la DHCP Snooping está configurado y habilitado, el switch aprende las direcciones MAC e IP de los hosts que usan DHCP. Los paquetes que llegan a un puerto de switch se pueden probar en una de las siguientes condiciones:
Para los servidores que NO usen DHCP podemos configurar asociaciones de IP-MAC-Vlan con el siguiente comando:
switch(config)# ip source binding mac-address vlan vlan-id ip-address interface type mod/num
Y para habilitar IP Source guard en una o más interfaces debemos configurar estos comandos:
switch(config)# interface type mod/num switch(config-if)# ip verify source [port-security]
Si no indicamos port-security solo se inspecciona la IP origen, si lo indicamos además se inspecciona la dirección MAC origen.
Para comprobar el estado de IP Source Guard podemos ejecutar el comando:
switch# show ip verify source [interface type mod/num]
Si necesitamos comprobar la información que contiene en la base de datos de IP Source ya sea estática o dinámicamente, podemos usar el comando:
switch# show ip source binding [ip-address] [mac-address] [dhcp-snooping | static] [interface type mod/num] [vlan vlan-id]
El ataque conocido como ARP poisoning o ARP spoofing (envenenar o suplantar ARP) es el que un atacante se coloca en el medio (man in the middle) y mediante la suplantación de MAC, enviando mensajes de ARP no solicitados dando la IP del gateway con su propia MAC, con lo que los hosts/servers actualizan su tabla de ARP con este nuevo valor enviando todo el tráfico al atacante, con lo que obtiene el tráfico de otro servidor o dispositivos que luego puede filtrar o espiar o simplemente rechazar de forma transparente para el usuario o dispositivo final.
Los switches Catalyst pueden usar la característica llamada Dynamic ARP Inspection (DAI) (Inspección de ARP dinámica) para ayudar a mitigar este tipo de ataques que consiste en definir interfaces de confianza o no confianza. DAI intercepta, manda logs y rechaza mensajes ARP en las interfaces de NO confianza que no coinciden con las uniones MAC/IP del DHCP snooping. Todo el tráfico que coincida pasa, el que no se descarta.
Para configurar Dynamic ARP Inspection debemos primero habilitarlo en una o más VLANs con el siguiente comando:
switch(config)# ip arp inspection vlan vlan-range
donde vlan-range puede ser una vlan, varias vlans separadas por comas o un rango de vlans (vlan_inicial-vlan_final).
Con esto conseguimos que se intercepte, haga log y descarte paquetes ARP con asociaciones inválidas de MAC-to-IP para ello mira en la base de datos de DHCP snooping o en APR introducidas estáticamente.
Por defecto todas las interfaces asociadas a las VLANs configuradas para inspeccionar son consideradas de no confianza por lo que se inspeccionan, si queremos que una interface no sea inspeccionada y por lo tanto considerada como de confianza (enlace contra otro switch por ejemplo) debemos configurar la interface de la siguiente forma:
switch(config)# interface type mod/num switch(config-if)# ip arp inspection trust
En caso de que haya clientes (hosts) con direcciones IP configuradas estáticamente no habrá intercambio de mensajes DHCP donde se pueda inspeccionar, por lo que deberemos configurar una lista de acceso ARP definiendo la unión de IP-MAC que permitimos. Para ello usaremos estos comandos:
switch(config)# arp access-list arp-acl-name switch(config-acl)# permit ip host sender-ip mac host sender-mac [log] switch(config-acl)# exit
Debemos repetir el comando permit tantas veces como IP-MAC tengamos o queramos definir. Una vez definida la lista de acceso tenemos que aplicarla a Dynamic ARP Inspection usando el comando:
switch(config)# ip arp inspection filter arp-acl-name vlan vlan-range [static]
Con esto indicamos que todas las respuestas ARP que se intercepten se verifiquen contra la lista de acceso y en caso de que ninguna se cumpla se procede a comprobar la base de datos de DHCP snooping. Si especificamos static indicamos que si la lista de acceso con da positivo es como si tuviese al final de la misma un deny all y por consiguiente NO se comprueba la base de datos de DHCP snooping. Por defecto solo se validan las direcciones IP y MAC que se contienen en la respuesta ARP, por lo que la dirección MAC contenida en la cabecera Ethernet no se mira. Para validar que un paquete de respuesta ARP viene des la dirección listada dendro de él, podemos habilitar la validación de Dynamic ARP Inspection con este comando:
switch(config)# ip arp inspection validate {[src-mac] [dst-mac] [ip]}
Debemos asegurarnos que especificamos al menos una opción:
Debemos tener en cuenta estos puntos sobre Dynamic ARP Inspection (DAI):