Comware: STP edged-port + BPDU-protection

A feature edged-port permite a interface saltar os estados Listening e Learning do Spanning-Tree Protocol (STP), colocando as portas imediatamente em estado Forwarding (Encaminhamento). A configuração do stp edged-port enableforça a interface a ignorar os estados de convergência do STP, incluíndo as mensagens de notificação de mudança na topologia (mensagens TCN ).

A utilização da feature edged-port com a configuração do comando stp bpdu-protection, protege as portas configuradas como edged-port de receberem BPDUs. Ao receber um BPDU a porta entrará em shutdown.

Protegendo o Spanning-Tree (STP)

Os ataques ao protocolo STP geralmente têm como objetivo assumir a identidade do switch root da rede, ocasionando assim cenários de indisponibilidade na rede. Programas como o Yersinia permitem gerar esse tipo de ataque. Há também cenários em que usuários adicionam switches não gerenciados e hubs (propositadamente ou não) com o intuito de fornecer mais pontos de rede em ambientes que deveriam ser controlados.

Funcionalidades comentadas no video para mitigar os ataques ao STP, são: Root Protection (Root Guard), BPDU Protection (BPDU guard) com STP edged-port (portfast) e loop protection (loop guard).

Comware: Configurando BPDU Protection

Nesse vídeo mostramos a configuração e logs dos Switches com a utilização do comando ‘BPDU-Protection’.

A feature edged-port (portfast) permite a interface saltar os estados Listening e Learning do Spanning-Tree Protocol (STP), colocando as portas imediatamente em estado Forwarding (Encaminhamento). A configuração do ‘stp edged-port enable’ força a interface a ignorar os estados de convergência do STP, incluindo as mensagens de notificação de mudança na topologia (mensagens TCN ).

A utilização da feature ‘edged-port’ com a configuração do comando ‘stp bpdu-protection’, protege as portas configuradas como edged-port de receberem BPDUs. Ao receber um BPDU a porta entrará em shutdown.

Vídeo: AS 8 FUNCIONALIDADES DE SEGURANÇA PARA SWITCHES QUE TODO ADMINISTRADOR DE REDES DEVERIA SABER

Existem inúmeras vulnerabilidades nos switches Ethernet e as ferramentas de ataque para explorá-los existem há mais de uma década. Um atacante pode desviar qualquer tráfego para seu próprio PC para quebrar a confidencialidade, privacidade ou a integridade desse tráfego.

A maioria das vulnerabilidades são inerentes aos protocolos da Camada 2 e não somente aos switches. Se a camada 2 estiver comprometida, é mais fácil criar ataques em protocolos das camadas superiores usando técnicas comuns como ataques de man-in-the-middle (MITM) para coleta e manipulação do conteúdo.

Para explorar as vulnerabilidades da camada 2, um invasor geralmente deve estar mesma rede local do alvo. Se o atacante se utilizar de outros meios de exploração, poderá conseguir um acesso remoto ou até mesmo físico ao equipamento. Uma vez dentro da rede, a movimentação lateral do atacante torna-se mais fácil para conseguir acesso aos dispositivos ou tráfego desejado.

No vídeo descrevemos as 8 (oito) principais funcionalidades de segurança para switches que todo administrador de redes deveria saber.

Switches ArubaOS – BPDU Protection

O BPDU Protection é um recurso de segurança projetado para proteger a topologia do STP impedindo que pacotes BPDU não esperados/planejados entrem no domínio STP.

Em uma implementação típica, a proteção BPDU seria aplicada a portas conectadas a dispositivos de usuário final que não executam STP. Se os pacotes STP BPDU forem recebidos em uma porta protegida, o recurso desabilitará essa porta e alertará o gerenciador de rede por meio de um trap SNMP.

Configuração

  1. Habilitar o BPDU Guard na interface A4 do switch e configurar timeout do BPDU para 60s.
spanning-tree A4 bpdu-protection
spanning-tree bpdu-protection-timeout 60
spanning-tree trap errant-bpdu

Conectar um notebook na porta A4 e verificar que a porta fica em forwarding.

  HP-5406zl(config)# show spanning-tree | i A4
BPDU Protected Ports : A4    
A4     100/1000T  | 20000     128  Forwarding   | c09134-eeec00 2    Yes No 
  • Conectando um switch de acesso no lugar do notebook na porta A4 e validando o bloqueio da porta
  HP-5406zl(config)# show spanning-tree | i A4
  BPDU Protected Ports : A4                                    
   A4     100/1000T  | 20000     128  BpduError   | 2    Yes No 
  • Remover o switch e conectar o notebook na porta A4. A porta deve retornar a forwarding após o timeout do BPDU configurado.

No log temos a indicação da porta desabilitando ao receber um BPDU. Em um segundo momento, após desconectar o switch de acesso e conectar o notebook) a porta voltou após o timeout configurado:

W 11/05/22 18:12:34 00840 stp: port A4 disabled - BPDU received on protected port.
I 11/05/22 18:12:34 00898 ports: BPDU protect(5) has disabled port A4 for 60  seconds
I 11/05/15 18:12:34 00077 ports: port A4 is now off-line
I 11/05/22 18:13:34 00900 ports: port A4 timer (5) has expired
I 11/05/22 18:13:38 00435 ports: port A4 is Blocked by STP
I 11/05/22 18:13:41 00076 ports: port A4 is now on-line

Protegendo o Spanning-Tree

O Protocolo Spanning-Tree possui algumas vulnerabilidades pela simplicidade de sua arquitetura, falta de mecanismos de autenticação, etc.

Imaginando que você configurou o Switch Core da Rede como Root com a prioridade 0 (zero) e outros Switches com prioridades inferiores ( vence a eleição o Switch com a prioridade com o menor valor) para estabilidade da rede, não impede que um novo Switch colocado na camada de acesso configurado erradamente com a prioridade 0 (zero) possa tomar o lugar do Switch Root, ocasionando toda a convergência da LAN para a topologia a partir do novo Switch Root.

Lembrando que em situações de empate na eleição do Switch Root, vence quem tiver o menor endereço MAC inserido no BPDU. Além do que, a eleição do Root para o Spanning-Tree está sujeita a substituição do Switch Raiz – por situações que envolvem desde falhas do Root até um equipamento com menor prioridade.

Programas como o Yersinia permitem a criação de “tráfego sintético” para ataques ao protocolo.

Há também cenários que envolvem a inserção de Switches não gerenciados e hubs por usuários que desejam prover mais pontos de rede em ambientes que deveriam ser controlados …

Segue abaixo alguns comandos que são bastante uteis em cenários para proteção do STP.

Hardening STP

Root Guard: A configuração da porta como Root Guard permite à uma porta Designada na prevenção de recebimento de BPDU’s superiores, que indicariam outro Switch com melhor prioridade para tornar-se Root, forçando a porta a cessar comunicação, isolando assim o segmento. Após encerrar o recebimento desses BPDU’s a interface voltará à comunicação normalmente

Interface GigabitEthernet 1/0/1
stp root-protection

Loop Guard: A configuração da porta como Loop Guard possibilita aos Switches não-Root, com caminhos redundantes ao Switch Raiz, evitar situações de Loop na falha de recebimentos de BPDU’s em portas com caminhos redundantes. Quando uma porta alternativa parar de receber BPDU ela identificará o caminho como livre de Loop e entrará em modo de encaminhamento ( imaginando que a porta Root – melhor caminho para o Switch Raiz – continue recebendo BPDU’s) criando assim um Loop lógico em toda a LAN. Nesse caso a feature deixará a porta alternativa sem comunicação até voltar a receber BPDU’s do Switch Root

Interface GigabitEthernet 1/0/1
stp loop-protection

BPDU Guard + Edged-Port: A instalação de Switches em portas configuradas para hosts (edged-port) podem ocasionar pequenos Loops na rede devido a característica da interface. A configuração global do stp bpdu-protection permite o bloqueio da porta “edged” ao receber um BPDU (sendo mandatória a intervenção manual com o comando shutdown e undo shutdown para retorno da porta – após cessar o recebimento de BPDU’s). Caso queira o recovery automático configure o valor do shutdown-interval.

stp bpdu-protection
shutdown-interval 300

Interface GigabitEthernet 1/0/1
stp edged-port enable

Loopback Detection: Detecta se uma interface recebeu pacotes que ela mesma gerou, ocasionado provavelmente por Loop em hubs. Se o loop for detectado em uma interface a comunicação será bloqueada.

loopback-detection enable
loopback-detection interval-time 30

DLDP: Detecta falhas unidirecionais em links de fibra e/ou UTP cessando a comunicação da interface. Após a normalização do enlace o trafego a interface voltará a comunicar automaticamente.

dldp enable
Interface GigabitEthernet 1/0/1
dldp enable

Comware 7 – Configurando Filtros para BPDU’s (bpdu-filtering)

O protocolo Spanning-tree encaminha mensagens a cada 2 segundos para manter a estabilidade da LAN, protegendo o ambiente de loops fisicos (bloqueando o loop lógico) e provendo alta disponibilidade em caso de falhas nos Switches da rede.

Para que isso ocorra, os Switches trocam mensagens chamadas de BPDU’s que são indispensaveis  para o correto funcionamento de uma rede descrita com o cenario acima.

Existem cenarios que é preciso desativar o protocolo em uma interface especifica, com a utilização de outros protocolos/features de alta disponibilidade como o RRPP, Smart-Link, Monitor-Link, etc ou também quando o Switch necessita transportar a informação em forma de tunel (transparente), como no caso do QinQ.

Em ambientes compartilhados de clientes, não é desejavel que uma alteração na rede seja avisada para todos os Switches que não pertencem aquela rede e possuem o mesmo Switch em comum, como por exemplo Operadoras e Data Centers.

A principal questão nesse cenario de filtro de BPDUs é certificar que a rede não possui nenhum loop que possa ocasionar um desastre para o projeto do Engenheiro de rede.

Certificada essas questões os Switches baseados no Comware possuem os seguintes comandos que podem auxiliar na solução:

Interface gigabitethernet 1/0/1
stp disable
! Desabilitando o STP somente na interface Giga1/0/1

Ou

stp ignored vlan 10
! Desabilitando o STP na vlan 10

Obs: Seja bem cuidadoso com a necessidade de desabilitar o recebimento/encaminhamento de BPDUs em uma Interface ou VLAN, principalmente pela similaridade dos comandos para desativar o Spanning-Tree globalmente em um Switch e/ou em uma porta. 

Até logo!