You are on page 1of 44

Seguridad en Capa 2

Ataques. Contramedidas. Buenas prcticas.

Contenidos
Porqu asegurar la capa 2? Mitos de la capa 2 Ataques basados en MAC y ARP Ataques basados en VLAN Ataques basados en STP Contramedidas Buenas Prcticas

Porqu asegurar la capa 2?


Segn el FBI el 80% de los ataques provienen del interior de la organizacin. 99% de los puertos (o bocas) de las redes LAN corporativas estn desprotegidos. Es decir, cualquiera puede conectarse a ellos. La mayora de las empresas est desplegando redes inhalmbricas (aunque no lo sepan). Las herramientas diseadas para simplificar el trabajo de los administradores de red perjudican seriamente la seguridad de la red corporativa.

Porqu asegurar la capa 2?


El modelo OSI est pensado para que cada capa opere independiente de las dems.

Porqu asegurar la capa 2?


Esto significa que una capa puede ser comprometida sin que las dems lo noten.

Mitos de la capa 2
Las direcciones MAC no pueden ser falsificadas. Un switch no permite hacer sniffing. Las VLANs estn completamente aisladas unas de otras.

Ataques basados en MAC y ARP


CAM Table Overflow. ARP Spoofing Ataques que emplean ARP Spoofing.

CAM Table Overflow


Los switchs guardan las asociaciones MACPuerto e informacin de VLAN a medida que las aprenden en un tabla llamada tabla CAM. La tabla CAM de un switch tiene un tamao fijo y finito. Cuando la tabla CAM no tiene espacio para almacenar ms asociaciones MAC-Puerto enva a todos los puertos las tramas que tengan una direccin MAC destino no almacenada en la tabla CAM. (Acta como un HUB para cualquier MAC que no haya aprendido)

CAM Table Overflow


Existe un ataque terico desde Mayo de 1999. Se basa en el tamao limitado de la tabla CAM. Para realizar el ataque slo hace falta enviar gran nmero de tramas con direcciones MAC distintas (usualmente generadas al azar) a cualquier puerto del switch hasta que se llene la tabla CAM. Se desarroll una herramienta para tal fin llamada macof en Mayo de 1999. Actualmente es parte del paquete Dsniff (GNU/Linux).

CAM Table Overflow

Antes del ataque

Luego del ataque

Captura en el puerto (no trunk) de la maquina 10.1.1.13


10.1.1.22 -> (broadcast) ARP C Who is 10.1.1.1, 10.1.1.1 ? 10.1.1.22 -> (broadcast) ARP C Who is 10.1.1.19, 10.1.1.19 ? 10.1.1.26 -> 10.1.1.25 ICMP Echo request (ID: 256 Sequence number: 7424) 10.1.1.25 -> 10.1.1.26 ICMP Echo reply (ID: 256 Sequence number: 7424) OOPS!!! OOPS!!!

Address Resolution Protocol


La solicitud ARP se coloca en una trama broadcast y se enva. Todas las estaciones reciben la trama y examinan el pedido. La estacin mencionada en el pedido contesta y todas las demas estaciones procesan la misma.

Solicitudes ARP Gratuitas


Las solicitudes ARP gratuitas son empleadas por dispositivos para anunciar su direccin IP a los dems dispositivos. Los dems dispositivos de red utilizan las solicitudes ARP gratuitas para actualizar su cach ARP. Se colocan en tramas broadcast al igual que las solicitudes ARP.

Host W: Soy 1.2.3.4 y mi MAC es 12:34:56:78:9A:BC

ARP Spoofing
ARP no proporciona seguridad o algn mecanismo para reservar direcciones IP o MAC. Qu ocurrira en este caso?

Host W: Soy 1.2.3.1 y mi MAC es 12:34:56:78:9A:BC Eperar unos segundos Host W: Soy 1.2.3.1 y mi MAC es 12:34:56:78:9A:BC

ARP Spoofing
El Host X y el Host Y probablemente ignoren la trama a menos que tengan una entrada para 1.2.3.1 en su cach ARP.

Cuando uno de los hosts pida la MAC de 1.2.3.1 el router va a responder y esta MAC va a permanecer hasta que el Host W transmita otra solicitud ARP gratuita. En algunos SO inclusive las entradas ARP estticas son sobreescritas por las solicitudes ARP gratuitas.

Ataques que usan ARP Spoofing


Switch Port Stealing (Sniffing): Utilizando ARP Spoofing el atacante consigue que todas las tramas dirigidas hacia otro puerto del switch lleguen al puerto del atacante para luego re-enviarlos hacia su destinatario y de esta manera poder ver el trfico que viaja desde el remitente hacia el destinatario (Una especie de sniffig half-duplex). Man in the Middle (Sniffing): Utilizando ARP Spoofing el atacante logra que todas las tramas que intercambian las vctimas pasen primero por su equipo (Inclusive en ambientes switcheados).

Ataques que usan ARP Spoofing


Secuestro (Hijacking): Utilizando ARP Spoofing el atacante puede lograr redirigir el flujo de tramas entre dos dispositivos hacia su equipo. As puede lograr colocarse en cualquiera de los dos extremos de la comunicacin (previa deshabilitacin del correspondiente dispositivo) y secuestrar la sesin. Denial of service (DoS): Utilizando ARP Spoofing el atacante puede hacer que un equipo crtico de la red tenga una direccin MAC inexistente. Con esto se logra que las tramas dirigidas a la IP de este dispositivo se pierdan.

Ataques basados en VLAN


Dinamic Trunking protocol. VLAN Hopping Attack. Double Encapsulated VLAN Hopping Attack. VLAN Trunking Protocol

Puertos Trunk

Los puertos trunk por default tienen acceso a todas las VLANs. Se los emplea para transmitir trfico de mltiples VLANs a travs del mismo enlace fsico (generalmente empleado para conectar switches). La encapsulacin puede ser IEEE 802.1Q o ISL.

Dinamic Trunk Protocol (DTP)

Automatiza la configuracin de los trunk 802.1Q/ISL. Sincroniza el modo de trunking en los extremos. Hace innecesaria la intervencin administrativa en ambos extremos. El estado de DTP en un puerto trunk puede ser Auto, On, Off, Desirable, o Non-Negotiate. Por default en la mayora de los switchs es Auto.

VLAN Hopping Attack

Un equipo puede hacerse pasar como un switch con 802.1Q/ISL y DTP, o bien se puede emplear un switch. El equipo se vuelve miembro de todas las VLAN. Requiere que el puerto este configurado con trunking automtico.

Double Tagged VLAN Hopping Attack

Se envian una trama 802.1Q de la VLAN de la vctima dentro de otra trama 802.1Q de nuestra VLAN. Los switchs desencapsulado. realizan un solo nivel de

Solo permite trfico en una sola direccin. Slo funciona si la VLAN nativa del trunk es la misma a la que pertenece el atacante. Funciona aunque el puerto del atacante tenga desactivado el trunking.

Protocolos de Control Cisco


Se los emplea para negociar el estado de los puertos trunk, intercambiar informacin de VLAN, etc. Cisco Discovery Protocol (CDP) y VLAN Trunking Protocol (VTP), dos protocolos de control de cisco comnmente usados, se transmiten por la VLAN 1. Si la VLAN 1 es quitada de un puerto trunk, a pesar que no se transmite trfico de los usuarios, el switch contina usndola para transmitir cierta informacin de control.

VLAN Trunking Protocol (VTP)

Se lo emplea para distribuir configuraciones de VLAN a travs de mltiples dispositivos. VTP se emplea nicamente en puertos trunk. VTP puede causar muchos inconvenientes. VTP emplea autenticacin considere usar MD5. Si un atacante logra que su puerto se convierta en trunk, puede enviar mensajes VTP como si fuera un servidor VTP sin VLANs configuradas. Cuando los demas switches reciban el mensaje eliminarn todas sus VLANs.

Ataques basados en STP

Spanning Tree Protocol

Creado para lograr topologas libres de bucles en infrestructuras de capa 2 redundantes. Evitar bucles asegura que el trafico broadcast no se vuelva una tormenta (broadcast storm). Provee servicios de recuperacin de rutas.

Ataques basados en STP


El atacante enva mensajes BPDU forzando reclculos STP. El atacante enva mensajes BPDU para convertirse en root. El atacante se convierte en root con lo cual puede ver tramas que no debera (esto permite ataques MiM, DoS, etc) Hace falta que el atacante este conectado a dos switches simultneamente.

Ataques basados en STP


El atacante enva mensajes BPDU anuncindose como bridge con prioridad 0. El atacante se vuelve root. El backbone pasa de ser GE a ser FE. Si se lo combina con MAC flooding este ataque puede permitir capturar ms tramas.

Contramedidas
Ataques MAC y ARP
Storm Control. Protected Ports. Port Security.

Ataques VLAN Ataques STP

Storm Control
Una tormenta de paquetes ocurre cuando se reciben en un puerto gran nmero de paquetes broadcast, unicast o multicast. Reenviar esos paquetes puede causar una reduccin de la performance de la red e incluso la interrupcin del servicio. Storm Control usa umbrales para bloquear y restaurar el reenvo de paquetes broadcast, unicast o multicast. Usa un mtodo basado en ancho de banda. Los umbrales se expresan como un procentaje del total de ancho de banda que puede ser empleado para cada tipo de trfico.

Storm Control (Ejemplo)


Deseamos configurar el puerto 15 del switch para que si el trfico broadcast supere el 45% del ancho de banda disponible enve una alerta.
Switch> enable Switch# configure terminal Switch(config)# interface FastEthernet 0/15 (Dentro del modo configuracin de interface del puerto a configurar) Switch(config-if)# storm-control broadcast level 45 Switch(config-if)# storm-control action trap Switch(config-if)# end

Las opciones completas son:

(Dentro del modo configuracin de interface del puerto a configurar) storm-control {broadcast | multicast | unicast} level level [level-low] storm-control action {shutdown | trap}

Protected Ports
Ciertas aplicaciones requieren que nos se reenve trfico entre puertos en un mismo switch de manera que un equipo no ve el trfico generado por otro (inclusive trfico broadcast y multicast). No se puede reenviar trfico entre puertos protegidos a nivel de capa 2. El trfico entre puertos protegidos debe ser reenviado a travs de un dispositivo de capa 3. El reenvio de trfico entre puertos protegidos y no protegidos se realiza de manera normal.

Protected Ports

Para configurar un puerto como protegido:

(Dentro del modo configuracin de interface del puerto a configurar) Switch(config-if)# switchport protected Switch(config-if)# end

Port Security
Conjunto de medidas de seguridad a nivel de puertos disponibles en la mayora de los switchs de gama media y alta. La funciones provistas dependen de la marca, el modelo y la versin de firmware del switch en cuestin. Permite entre otras cosas:
Restringir el acceso a los puertos segn la MAC. Restringir el numero de MACs por puerto. Reaccionar de diferentes maneras a violaciones de las restricciones anteriores. Establecer la duracin de las asociaciones MAC-Puerto.

Port Security (Ejemplo)


Deseamos configurar el puerto 15 del switch para que no acepte ms de dos direcciones MAC.
Switch> enable Switch# configure terminal Switch(config)# interface FastEthernet 0/15 (Dentro del modo configuracin de interface del puerto a configurar) Switch(config-if)# switchport mode access Switch(config-if)# switchport port-security Switch(config-if)# switchport port-security maximum 2

No se puede activar port security en puertos dynamic access o trunk. Port Security est desactivado por default. Por default port security slo almacena una sola MAC por puerto.

Port Security (Ejemplo)


Adems podemos especificar qu hacer si ese nmero de direcciones MAC es superado (por default deshabilitar el puerto):

Que deje de aprender


Switch(config-if)# switchport port-security violation protect

Que enve una alerta administrativa


Switch(config-if)# switchport port-security violation restrict

Que que deshabilite el puerto


Switch(config-if)# switchport port-security violation shutdown

Port Security (Ejemplo)


Tambin permiten agregar una lista esttica de direcciones MAC autorizadas a conectarse a ese puerto, para esto se usaran estos comandos:
(Dentro del modo configuracin de interface del puerto a configurar) Switch(config-if)# switchport port-security mac-address sticky Switch(config-if)# switchport port-security mac-address mac-address 000a.5e5a.181b

Con la primera linea le digo que agregue las MACs que va aprendiendo a la lista de MACs seguras. Con la segunda que agregue la MAC 00:0a:5e:5a:18:1b a la lista de MACs seguras. Si no agrego una segunda MAC, la primera MAC que escuche distinta a 00:0a:5e:5a:18:1b ser agregada a la lista de MACs seguras.

Port Security (Ejemplo)


Es posible adems establecer el tiempo en que se va a conservar una MAC en la lista de MACs seguras:
(Dentro del modo configuracin de interface del puerto a configurar) switchport port-security aging {static | time time | type {absolute | inactivity}}

Tipo absoluto: Las direcciones MAC seguras son borradas de la lista luego de N minutos. Tipo inactivity: Las direcciones MAC seguras son borradas de la lista luego de N minutos de inactividad. Aging static: elimina o no las direcciones MAC ingresadas de manera esttica al cumplirse el plazo. Aging time: define el numero de minutos.

Port Security (Ejemplo)


Hagamos que las direcciones MAC que el puerto 15 aprende de manera dinmica no duren ms de 2 minutos si la estacin no genera trfico:
(Dentro del modo configuracin de interface del puerto a configurar) Switch(config-if)# no switchport port-security aging static Switch(config-if)# switchport port-security aging time 2 Switch(config-if)# switchport port-security aging type inactivity

Con la primera linea le digo que no elimine las MACs agregadas de manera esttica. Con la segunda establezco el tiempo en dos minutos. Por ltimo, le digo que deben transcurrir dos minutos de inactividad antes de eliminar la direccin MAC.

Ataques VLAN
Deshabilitar auto trunking para todas las interfaces:
(Dentro del modo configuracin de interface del puerto a configurar) Switch(config-if)# switchport mode access

Deshabilitar VTP:
(Dentro del modo configuracin global) Switch(config)# vtp mode transparent

Si es realmente necesario, usar la versin 2:


(Dentro del modo configuracin global) Switch(config)# vtp version 2 Switch(config)# vtp password password-value

Ataques VLAN
Siempre utilizar una VLAN dedicada para los puertos trunk. Deshabilitar los puertos no utilizados y colocarlos en una VLAN no utilizada. No utilizar la VLAN 1 para nada. Colocar todos los puertos de los usuarios como non-trunking (Deshabilitar DTP):
(Dentro del modo configuracin de interface del puerto a configurar) Switch(config-if)# switchport mode access Switch(config-if)# switchport nonegotiate

Ataques STP
No deshabilitar STP (introducir un loop puede convertirse en una forma de ataque). Habilitar BPDU Guard:
(Dentro del modo configuracin global) Switch(config)# spanning-tree portfast bpduguard default (Dentro del modo configuracin de interface del puerto a configurar) Switch(config-if)# spanning-tree bpduguard enable o Switch(config-if)# spanning-tree portfast

Habilitar Root Guard:


(Dentro del modo configuracin de interface del puerto a configurar) Switch(config-if)# spanning-tree guard root

Buenas prcticas
Administre los switches de la manera ms segura posible (SSH, OOB, listas de acceso) Siempre utilizar una VLAN dedicada para los puertos trunk. Deshabilitar los puertos no utilizados y colocarlos en una VLAN no utilizada. No utilizar la VLAN 1 para nada. Deshabilitar DTP y VTP a menos que sean necesarios. Use Port Security para los puertos de los usuarios siempre que sea posible

Buenas prcticas
Use SNMP slo si es necesario, en caso de usarlo aplique a las contraseas de comunidad las mismas polticas que a sus contraseas de administrador. Cree un plan para tratar los problemas de seguridad relacionados con ARP. Habilite mecanismos para mitigar los ataques basados en STP (BPDU Guard, Root Guard). Use VLANs privadas (protected ports) cuando sea apropiado para dividir redes en capa 2.

Consultas?
Ing. Gabriel Arellano
arellanog@frcu.utn.edu.ar

UTN-FRCU 16/07/2005