Você já ouviu falar nesse termo MAC Flooding ou MAC Address Table Overflow? Não tem nada a ver com McDonalds, isso eu posso garantir (brincadeira só para descontrair rsrs).
O MAC Flooding ou MAC Address Table Overflow é uma ameaça básica que não precisa nem de um especialista em segurança para ser resolvido.
Na realidade com configurações básicas e poucas linhas de comando esse problema já estará resolvido… e TODO profissional de Infra de Redes deveria conhecer essa ameaça.
Você deve estar se perguntando: Mas o que eu preciso saber então? É tanta coisa…
Realmente, mas construir o conhecimento em Redes ou Infraestrutura de TI é como construir uma casa…
… O INÍCIO É PELA BASE.
Um ataque simples como o MAC Flooding, que um CCENT (um profissional nível de entrada) pode resolver, pode transformar um switch em um Hub e permitir uma espionagem na rede ou VLAN atacada.
Isso pode te custar sua reputação ou até mesmo o emprego se, por exemplo, conseguirem capturar informações da diretoria da empresa.
Exagero? Posso estar assustando um pouco… mas isso é possível sim!
Endereços MAC
O endereço MAC é a principal forma de identificação de equipamentos em uma rede, e são utilizados em redes Ethernet, Wireless (802.11a/b/g), Bluetooth, FDDI, Fiber Channel e Token Ring.
Os endereços MAC possuem 48 bits, sendo que os primeiros 24 bits são utilizados para identificar o fabricante da placa de rede e são definidos pelo IEEE.
Já os últimos 24 bits são atribuídos pelo fabricante da placa.
Para que os endereços MAC funcionem adequadamente eles devem ser únicos dentro de uma rede, caso haja mais de um haverá conflito.
Por definição o endereço FF-FF-FF-FF-FF-FF é usado como endereço de broadcast, ou seja, servirá para comunicação simultânea com todas as máquinas que estão na mesma rede.
Entendendo a Tabela de Endereços MAC e Encaminhamento de Quadros
As atividades básicas de um switch são relativamente simples, pois ele precisa:
- Aprender MACs de origem para formar uma tabela de encaminhamento ou tabela de endereços MAC
- Encaminhar ou filtrar os quadros entre as portas (processo de comutação)
- Evitar Loops de camada-2 ou L2 (layer 2)
A tabela de endereços MAC ou CAM Table (Content Addressable Memory) de forma geral armazena o endereço do computador que está conectado a cada uma das portas do switch.
Além disso, a tabela de endereços MAC armazena outras informações, tais como o número da VLAN que a porta está vinculada e a quanto tempo esse endereço foi aprendido.
Os endereços MAC normalmente são aprendidos de forma dinâmica e tem um “tempo de vida” padrão na tabela de endereços MAC de 300 segundos ou cinco minutos.
Se o computador conectado a determinada porta não enviar mais quadros a informação é apagada depois dos 300 segundos, assim o switch vai eliminando endereços de computadores que foram desligados ou desconectados da rede.
Nesse processo de encaminhamento o switch quando recebe um quadro ele pode conhecer ou não a porta de destino para encaminhá-lo.
Caso ele conheça o quadro será enviado para a porta de destino e se não conhecer faz o processo de flooding ou inundação.
O flooding simplesmente é o encaminhamento do quadro para TODAS as portas do switch, menos para a porta onde o quadro foi recebido, pois não teria sentido, certo?
Portando, em condições normais de temperatura e pressão a comunicação entre as portas dos switches são realizadas ponto a ponto e no máximo um quadro é recebido pelas outras portas, quando o switch ainda desconhece o destino.
Em um Hub isso não ocorre desse jeito, pois um quadro recebido é copiado para todas as portas, não importando se o PC de destino está ou não conectado nela.
Essa é uma das vantagens do switch, essa segmentação realizada entre as portas e a impossibilidade de espionar o tráfego dos demais usuários do dispositivo, certo?
Mas você sabia que a tabela de endereços MAC tem limite?
Você deve estar pensando: “Opa, como assim?”
Normalmente em um switch não modular de 24 ou 48 portas a tabela de endereços MAC varia de 6000 a 8000 endereços, podendo ser um pouco mais ou um pouco menos dependendo do fabricante e linha de switch.
E o que ocorre se lotar essa tabela de endereços e não tiver mais espaço para gravar novas entradas de MACs?
Bummmm… explode tudo! Mentira, estou brincando (rsrs).
O que ocorre é o estouro da tabela de endereços MAC e os endereços mais antigos são apagados para gravar os mais novos.
E é nesse comportamento que o “espertão” inventou um jeito de transformar um switch em um hub! Vamos ver como a seguir.
Como Funciona o MAC Flooding
Já vimos que switch constrói e mantém dinamicamente uma tabela CAM (Content-Addressable Memory) ou tabela de endereços MAC (MAC Adrress Table), certo?
Essa tabela então contém todas as informações sobre o MAC necessárias para cada porta.
A memória CAM é o equivalente no switch à tabela de roteamento dos roteadores, porém como já vimos ela tem um limite.
É a partir das informações armazenadas na tabela CAM que o switch escolhe para qual porta um determinado quadro deve ser encaminhado.
Um dos principais problemas de segurança envolvendo o endereçamento da camada de enlace é o overflow da tabela CAM dos switches ou MAC Flooding.
A tabela CAM de um switch é responsável por armazenar e relacionar endereços MAC, portas e parâmetros de VLANS, podendo assim encaminhar de forma correta os quadros que passam por ele.
Fisicamente a tabela CAM é armazenada em uma memória normal e como tal possui tamanho limitado, percebendo isso no ano de 1999 Ian Vitek criou uma ferramenta chamada Macof, que cria inundações de endereços MAC de origem inválidos (cerca de 155000 por minuto).
Essa ferramenta é capaz de encher rapidamente a tabela CAM do switch que está diretamente conectado ao host responsável pela execução da ferramenta, e os switches que estiverem conectados ao equipamento atacado também são afetados.
O resultado desse ataque é um comportamento adotado pelo switch quando ele não consegue encontrar um endereço em sua tabela, ele envia os quadros recebidos para todas as suas portas, passando a se comportar como um Hub, conforme figura a seguir.
Com esse comportamento é possível realizar a espionagem dos pacotes e até possibilitar um ataque de man-in-the-middle monitorando o tráfego da rede.
Como Evitar o MAC Flooding ou CAM Table Overflow?
Para resolver esse problema é preciso utilizar switches gerenciáveis que possuam ferramentas de segurança para controlar os dados que trafegam em cada porta.
Normalmente o administrador define um número máximo de endereços MAC que podem ser aprendidos de forma segura em cada uma das portas dos switches.
Quando um software como o Macof tenta gerar MACs falsos e aleatórios esse máximo é atingido, portanto uma ação de segurança pode ser tomada.
Por exemplo, você define um máximo de 5 MACs seguros aprendidos por porta, quando o sexto MAC for gerado ele pode ser filtrado ou então a porta simplesmente pode ser desligada e gerar uma mensagem de erro para o gerenciamento de redes.
Esse ataque também pode ser mitigado com o uso do port security em switches Cisco (outros fabricantes possuem recurso similar).
Esse comportamento de encaminhar os quadros cujo endereço não é conhecido, chamado de flooding ou inundação, ou quando a tabela CAM está cheia para todas as portas (menos para a própria porta que encaminhou o quadro) é chamado de modo fail-open ou falha aberta.
No modo fechado ou fail-closed o comportamento seria o contrário, ou seja, o equipamento não encaminharia esse tipo de quadro que ele não saberia encaminhar, porém no caso dos switches isso não é possível de se configurar.
Como eu Posso Aprender Mais sobre Configurações Seguras de Switches e Evitar o Mac Flooding na DlteC do Brasil?
O MAC Flooding ou CAM Table Overflow é tradado nos cursos das certificações:
- CCNA CCENT
- CCNA Security
- CCNA 200-301
- CCNP SWITCH
Nós vamos manter os cursos das versões retiradas pela Cisco por um tempo indeterminado, isso porque nossos alunos assim que souberam da mudança já vieram nos pedir.
Então como nós gostamos de ver nossa galera feliz, vamos manter os cursos!
Então vamos finalizar o artigo, parabéns se você leu até aqui e me acompanhou até o final…
… saiba que você está de parabéns por isso!
Muito obrigado e até um próximo artigo.
Ah, já ia esquecendo… se você gostou do artigo compartilhe com seus amigos, grupos e redes sociais, nos ajude a divulgar conhecimento com a galera da área de Infra de Redes.
E se você tem alguma dúvida, comentário ou até mesmo um elogio utilize o campo de comentários que tem descendo a página!
Obrigado!