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

You might also like