En un ataque de VLAN hopping el objetivo del atacante es conseguir generar tráfico malicioso y que este llegue a otra VLAN evadiendo la configuración de la red que las esté gestionando. El atacante en este caso de switch spoofing, configura su host para actuar como un switch y de esta manera aprovecharse de las funciones de trunk automático.

ataques informaticos VIII vlan hopping

VLAN Hopping

Para aprovechar este auto trunk por defecto, el atacante configura su host para lanzar señales falsas de 802.1Q (standard de red que da soporte a VLANs sobre una red 802.3 Ethernet)  y de DTP (Dynamic Trunking Protocol es un protocolo propietario de Cisco que permite negociar el trunking en un link entre dos switches y el tipo de encapsulamiento a usar). 

De esta manera y si el switch legítimo en la red no se ha protegido contra este ataque, el atacante conseguirá establecer un trunk link contra el switch y por lo tanto acceder a todas las VLAN configuradas en el mismo. Desde ese momento el atacante puede taggear el tráfico para llegar a cualquiera de ellas.

Mitigación

Para mitigar este ataque lo que se requiere básicamente es aplicar una serie de buenas prácticas en cuanto a la configuración de switches que van a ser puestos en producción. Vamos a ver los diferentes pasos con comandos de Cisco IOS:

  1. Deshabilitar las negociaciones DTP (auto trunk) en puertos no troncales con switchport mode access
  2. Deshabilitar los puertos no usados con shutdown y además colocarlos en una VLAN no usada con por ejemplo switchport access vlan 999
  3. Habilitar manualmente en los puertos troncales el trunk link con switchport mode trunk
  4. Deshabilitar las negociaciones DTP (auto trunk) en puertos troncales con switchport nonegotiate
  5. Configurar la VLAN nativa a otra VLAN distinta de la 1, usando el comando switchport trunk native vlan número de VLAN.

De esta manera conseguimos que aunque un atacante intente enviar tráfico 802.1Q y DTP los puetos de nuestro switch estén ya configurados de manera que sea inútil ese intento de suplantación. Por ejemplo imaginemos el siguiente ejemplo:

  • Puertos FastEthernet 0/1 a 0/8 son puertos activos de acceso
  • Puertos FastEthernet 0/9 a 0/20 no están en uso
  • Puertos FastEthernet 0/21 a 0/24 son trunk

Los comandos serían los siguientes

S1(config)# interface range fa0/1 - 8
S1(config-if-range)# switchport mode access
S1(config-if-range)# exit
S1(config)#
S1(config)# interface range fa0/9 - 20
S1(config-if-range)# switchport mode access
S1(config-if-range)# switchport access vlan 999
S1(config-if-range)# exit
S1(config)#
S1(config)# interface range fa0/21 - 24
S1(config-if-range)# switchport mode trunk
S1(config-if-range)# switchport nonegotiate
S1(config-if-range)# switchport trunk native vlan 1000
S1(config-if-range)# end
S1#