O "mac address flooding" (ou inundação de endereços MAC) é uma situação que ocorre em redes Ethernet quando um switch recebe um quadro (frame) e não sabe para qual porta ele deve encaminhá-lo. Isso pode acontecer, por exemplo, quando o switch ainda não tem a entrada correspondente do endereço MAC de destino em sua tabela de encaminhamento.
Quando isso acontece, o switch toma uma medida chamada de "flooding", onde ele retransmite o quadro recebido para todas as portas, exceto a porta pela qual o quadro foi recebido. Isso é feito na expectativa de que o dispositivo de destino esteja em uma das outras portas do switch. Se o dispositivo de destino responder, o switch aprenderá o endereço MAC dele e, em futuras comunicações, poderá encaminhar os quadros diretamente para essa porta.
No entanto, o "mac address flooding" pode causar problemas em redes grandes, especialmente se houver muitos dispositivos conectados. Isso pode levar a um aumento no tráfego de rede desnecessário e possivelmente congestionamento da rede. Além disso, em casos extremos, o "flooding" pode ser explorado por ataques de negação de serviço (DoS), onde um grande volume de quadros é inundado na rede, sobrecarregando-a e tornando-a inoperante para os usuários legítimos.
Para demonstração deste ataque, usarei a topologia abaixo:
Foram atribuídos os seguintes IPs:
PC Silesio - 172.16.0.5/24
PC Carvalho - 172.16.0.6/24
PC Attacker - 172.16.0.4/24
Após a configuração da rede, todos os equipamentos conseguem falar entre si. Isto pode ser validado correndo o ping no PC Carvalho, com destino aos outros PCs:
Agora vamos lançar o ataque mac address flooding a partir do PC Attacker, usando o programa macof.
O PC Attacker vai inundar a rede com endereços, ao ponto dos switches não conseguirem dar resposta a qualquer tipo de tráfego. Podemos notar que o PC Carvalho aos poucos vai perdendo acesso à rede:
Para prevenirmos este tipo de ataque, podemos configurar o comando port-security na porta do switch aonde está ligado o PC Attacker para limitar o número de endereços mac anunciados na porta. Por default, o switch permite um único mac address, se o PC Attacker tentar anunciar mais do que um mac address, a porta será desativada automaticamente.
SW4
interface Ethernet0/0
switchport mode access
switchport port-security
Após habilitar a proteção na porta, tentei lançar novamente o ataque. Desta vez o switch preveniu o ataque.
SW4#
*Apr 26 13:47:46.101: %PM-4-ERR_DISABLE: psecure-violation error detected on Et0/0, putting Et0/0 in err-disable state
SW4#
*Apr 26 13:47:46.101: %PORT_SECURITY-2-PSECURE_VIOLATION: Security violation occurred, caused by MAC address 2ce8.1a07.124d on port Ethernet0/0.
*Apr 26 13:47:47.101: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0/0, changed state to down
SW4#
*Apr 26 13:47:48.108: %LINK-3-UPDOWN: Interface Ethernet0/0, changed state to down
Do lado dos outros PCs, a comunicação continua a fluir normalmente, a excepção do PC Attacker.
Este comando deve ser usado com cautela e de preferência somente em switches da camada de acesso.