Está en la página 1de 44

Seguridad en Capa 2

– Ataques.

Contramedidas.
– Buenas
prácticas.
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 Prácticas
Porqué asegurar la capa 2?

• Según el FBI el 80% de los ataques provienen del


interior de la organización.
• 99% de los puertos (o bocas) de las redes LAN
corporativas están “desprotegidos”. Es decir,
cualquiera puede conectarse a ellos.
• La mayoría de las empresas está desplegando
redes inhalámbricas (aunque no lo sepan).
• Las herramientas diseñadas 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 demás.
Porqué asegurar la capa 2?
• Esto significa que una capa puede ser
comprometida sin que las demás lo noten.
Mitos de la capa 2

• Las direcciones MAC no pueden ser


falsificadas.
• Un switch no permite hacer sniffing.
• Las VLANs están 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 MAC-
Puerto e información de VLAN a medida que las
“aprenden” en un tabla llamada tabla CAM.
• La tabla CAM de un switch tiene un tamaño fijo
y finito.
• Cuando la tabla CAM no tiene espacio para
almacenar más asociaciones MAC-Puerto envía
a todos los puertos las tramas que tengan una
dirección MAC destino no almacenada en la
tabla CAM. (Actúa como un HUB para cualquier
MAC que no haya aprendido)
CAM Table Overflow
• Existe un ataque teórico desde Mayo de 1999.
• Se basa en el tamaño limitado de la tabla CAM.
• Para realizar el ataque sólo hace falta enviar
gran número 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) OOPS!!!
10.1.1.25 -> 10.1.1.26 ICMP Echo reply (ID: 256 Sequence number: 7424) OOPS!!!
Address Resolution Protocol

La solicitud ARP se coloca


en una trama broadcast y
se envía.

Todas las estaciones


reciben la trama y
examinan el pedido.

La estación 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 dirección IP a los
demás dispositivos. Los demás 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 algún mecanismo
para reservar direcciones IP o MAC.
Qué ocurriría 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 estáticas 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
tráfico 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 víctimas 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 comunicación (previa
deshabilitación del correspondiente dispositivo) y
secuestrar la sesión.

Denial of service (DoS):


Utilizando ARP Spoofing el atacante puede hacer que
un equipo crítico de la red tenga una dirección 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 tráfico de múltiples
VLANs a través del mismo enlace físico (generalmente
empleado para conectar switches).
• La encapsulación puede ser IEEE 802.1Q o ISL.
Dinamic Trunk Protocol (DTP)

• Automatiza la configuración de los trunk 802.1Q/ISL.


• Sincroniza el modo de trunking en los extremos.
• Hace innecesaria la intervención 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 mayoría 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
automático.
Double Tagged VLAN Hopping Attack

• Se envian una trama 802.1Q de la VLAN de la


víctima dentro de otra trama 802.1Q de nuestra VLAN.
• Los switchs realizan un solo nivel de
desencapsulado.
• Solo permite tráfico en una sola dirección.
• Sólo 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 información de
VLAN, etc.
• Cisco Discovery Protocol (CDP) y VLAN
Trunking Protocol (VTP), dos protocolos de
control de cisco comúnmente usados, se
transmiten por la VLAN 1. Si la VLAN 1 es
quitada de un puerto trunk, a pesar que no se
transmite tráfico de los usuarios, el switch
continúa usándola para transmitir cierta
información de control.
VLAN Trunking Protocol (VTP)

• Se lo emplea para distribuir configuraciones de VLAN


a través de múltiples dispositivos.
• VTP se emplea únicamente en puertos trunk.
• VTP puede causar muchos inconvenientes.
• VTP emplea autenticación 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 eliminarán todas
sus VLANs.
Ataques basados en STP
Spanning Tree Protocol

• Creado para lograr topologías 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 recuperación de rutas.
Ataques basados en STP
• El atacante envía mensajes
BPDU forzando recálculos STP.
• El atacante envía mensajes
BPDU para convertirse en root.
• El atacante se convierte en
root con lo cual puede ver
tramas que no debería (esto
permite ataques MiM, DoS,
etc)
• Hace falta que el atacante
este conectado a dos switches
simultáneamente.
Ataques basados en STP
• El atacante envía mensajes
BPDU anunciándose 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 más 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 número de paquetes
broadcast, unicast o multicast. Reenviar esos
paquetes puede causar una reducción de la
performance de la red e incluso la interrupción
del servicio.
• Storm Control usa umbrales para bloquear y
restaurar el reenvío de paquetes broadcast,
unicast o multicast.
• Usa un método 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 tráfico.
Storm Control (Ejemplo)
• Deseamos configurar el puerto 15 del switch para que si el
tráfico broadcast supere el 45% del ancho de banda
disponible envíe una alerta.
Switch> enable
Switch# configure terminal
Switch(config)# interface FastEthernet 0/15
(Dentro del modo configuración 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 configuración 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
reenvíe tráfico entre puertos en un mismo
switch de manera que un equipo no ve el tráfico
generado por otro (inclusive tráfico broadcast y
multicast).
• No se puede reenviar tráfico entre puertos
protegidos a nivel de capa 2. El tráfico entre
puertos protegidos debe ser reenviado a través
de un dispositivo de capa 3.
• El reenvio de tráfico entre puertos protegidos y
no protegidos se realiza de manera normal.
Protected Ports


Para configurar un puerto como protegido:
(Dentro del modo configuración 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 mayoría de los switchs
de gama media y alta.
• La funciones provistas dependen de la marca, el
modelo y la versión de firmware del switch en
cuestión.
• Permite entre otras cosas:
– Restringir el acceso a los puertos según la MAC.
– Restringir el numero de MACs por puerto.
– Reaccionar de diferentes maneras a violaciones de las
restricciones anteriores.
– Establecer la duración de las asociaciones MAC-Puerto.
Port Security (Ejemplo)
• Deseamos configurar el puerto 15 del switch para
que no acepte más de dos direcciones MAC.
Switch> enable
Switch# configure terminal
Switch(config)# interface FastEthernet 0/15
(Dentro del modo configuración 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 sólo almacena una sola MAC
por puerto.
Port Security (Ejemplo)
• Además podemos especificar qué hacer si ese
número de direcciones MAC es superado (por
default deshabilitar el puerto):

Que deje de aprender
Switch(config-if)# switchport port-security violation protect


Que envíe 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)
• También permiten agregar una lista estática de
direcciones MAC autorizadas a conectarse a ese
puerto, para esto se usarían estos comandos:
(Dentro del modo configuración 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 además establecer el tiempo en que se
va a conservar una MAC en la lista de MACs
seguras:
(Dentro del modo configuración 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 estática 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 dinámica no duren más de
2 minutos si la estación no genera tráfico:
(Dentro del modo configuración 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 estática.

Con la segunda establezco el tiempo en dos minutos.

Por último, le digo que deben transcurrir dos minutos de
inactividad antes de eliminar la dirección MAC.
Ataques VLAN
• Deshabilitar auto trunking para todas las
interfaces:
(Dentro del modo configuración de interface del puerto a configurar)
Switch(config-if)# switchport mode access

• Deshabilitar VTP:
(Dentro del modo configuración global)
Switch(config)# vtp mode transparent

• Si es realmente necesario, usar la versión 2:


(Dentro del modo configuración 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 configuración 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 configuración global)
Switch(config)# spanning-tree portfast bpduguard default
(Dentro del modo configuración 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 configuración de interface del puerto a configurar)
Switch(config-if)# spanning-tree guard root
Buenas prácticas
• Administre los switches de la manera más
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 prácticas
• Use SNMP sólo si es necesario, en caso de
usarlo aplique a las contraseñas de comunidad
las mismas políticas que a sus contraseñas 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

También podría gustarte