jueves, 9 de agosto de 2012

Model OSI atacks - 3ª Parte - Spanning Tree

Veamos tres posibles ataques para STP. Los primeros dos son ataques de Denial of Service (DoS), los cuales fuerzan a todos los dispositivos participantes en STP a recalcular sus caminos. Este hecho causa inestabilidad en la red, dado que cada uno de los switches se ve obligado a consumir tiempo de CPU y memoria para recalcularlos. También es muy probable que se produzcan bucles en la red debido a este tipo de ataques. El peor escenario es en el que la red completa se venga abajo y empiecen a verse paquetes duplicados por doquier, congestionando la red y causando una total degradación.

Estos ataques son bastante simples. Se basan en enviar miles de paquetes BPDU (en el caso del primer ataque – Configuration BPDUs y en el caso del segundo TCNs) con la dirección MAC origen (y otros campos de la Configuration BPDU, como el Bridge ID) generados aleatoriamente. Esto equivaldría a miles de dispositivos conectándose a la red e intentando participar en el protocolo. Sin ser una maravilla este tipo de ataques puede causar el caos.

Los dos ataques pueden efectuarse con Yersinia y se llaman: sending conf BPDUs y sending tcn BPDUs (teclea [x] para elegir el ataque en el modo GUI).
Resultado del ataque DoS sending TCN BPDU
01:35:39: STP: VLAN0001 Topology Change rcvd on Fa0/8
01:35:39: STP: VLAN0001 Topology Change rcvd on Fa0/8
01:35:39: STP: VLAN0001 Topology Change rcvd on Fa0/8
01:35:39: STP: VLAN0001 Topology Change rcvd on Fa0/8
01:35:39: STP: VLAN0001 Topology Change rcvd on Fa0/8


Resultados del ataque DoS sending Configuration BPDU
01:20:26: STP: VLAN0001 heard root 32768-d1bf.6d60.097b on Fa0/8
01:20:26: STP: VLAN0001 heard root 32768-9ac6.0f72.7118 on Fa0/8
01:20:26: STP: VLAN0001 heard root 32768-85a3.3662.43dc on Fa0/8
01:20:26: STP: VLAN0001 heard root 32768-3d84.bc1c.918e on Fa0/8
01:20:26: STP: VLAN0001 heard root 32768-b2e2.1a12.dbb4 on Fa0/8
El tercer ataque consiste en intentar conseguir el rol STP de nodo raíz. Primero se captura una BPDU, la cual contiene el ID del nodo raíz. Seguidamente el sistema atacante se configura para parecer otro sistema de la red interesado en participar en STP, pero con un ID menor que el actual ID del nodo raíz. El ID raíz obtenido se decrementa en uno, por lo que no es muy apreciable el cambio respecto al ID real lo cual puede llevar a que el administrador de la red no se percate de dicho cambio si sólo echa una ojeada.

La consecuencia principal de dicho ataque es inestabilidad en la red. Debemos recordar que todos los miembros de la red envían notificaciones (TCN) al nodo raíz en cuanto detectan un cambio. Solamente entonces el nodo raíz envía Configuration BPDU con el bit de cambio a 1 (campo Flags) con el fin de alertar a todos los miembros para que recalculen sus caminos. Si el ataque funciona, el nuevo, falso nodo raíz descarta los TCNs enviados por los switches, por lo que ninguno recalcula sus caminos. Esto, además, rompe la estructura de la red. Para efectuar el ataque en Yersinia, debemos teclear primero [d] para rellenar el paquete BPDU con valores por defecto y después arrancar el ataque llamado Claiming Root Role (teclea [x] y elige el ataque cuatro).

El ataque es un ataque en dos fases. Primero capturamos un Configuration BPDU para aprender el ID del nodo raíz, después enviamos un nuevo paquete Configuration BPDU modificado cada hello time segundos.
Resultados del ataque Claiming Root Role
01:58:48: STP: VLAN0001 heard root 32769-000e.84d4.2280 on Fa0/8
01:58:48: supersedes 32769-000e.84d5.2280
01:58:48: STP: VLAN0001 new root is 32769, 000e.84d4.2280 on port Fa0/8, cost 19
El antiguo ID de nodo raíz era 32769-000e.84d5.2280, mientras que el nuevo es ahora 32769000e.84d4.2280. Si examinamos concienzudamente el ID, podemos ver que en el carácter decimoquinto tenemos ahora un cuatro en lugar de un cinco. Nuestro dispositivo virtual tiene un ID menor por lo tanto ha sido elegido como el nodo raíz de STP.
Hay más posibilidades para ataques basados en STP, algunos se encuentran implementados en Yersinia. Uno de ellos es el llamado Causing Eternal Root Elections – se mantiene enviando paquetes con un ID cada vez menor, por lo que nunca se llega a finalizar la elección del nodo raíz, esto causa un caos total en la red. Otro es el llamado ataque Claiming Root Role with MiTM , el cual es un ataque de tipo Man-in-the-Middle. También podemos intentar el Claiming Other Role, lo cual significa: intentar parecer otro switch más – es un ataque proof-of-concept sin consecuencias negativas.

Con el fin de evitar ataques contra STP en dispositivos Cisco, un administrador debería:
  • desactivar STP si no es necesario
  • usar Spanning Tree Portfast BPDU Guard Enhancement y Spanning Tree Protocol RootGuard Enhancement 

No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.