Ataques de Inundação MAC: Análise Técnica Aprofundada e Estratégias de Prevenção
MAC flooding é um ataque de rede de Camada 2 que esgota deliberadamente a tabela CAM (Content Addressable Memory) de um switch Ethernet injetando milhares de frames com endereços MAC de origem falsificados e aleatórios. Quando a tabela CAM atinge a capacidade máxima, o switch degrada para um comportamento semelhante ao de um hub — transmitindo todos os frames recebidos por todas as portas — o que expõe todo o domínio de broadcast à interceptação passiva e manipulação ativa.
Este ataque não é teórico. É trivialmente executável com ferramentas como `macof` (parte do conjunto `dsniff`) e pode saturar uma tabela CAM típica de 8.000 entradas em menos de 70 segundos numa ligação gigabit. Compreender a mecânica, os modos de falha e as contramedidas em camadas é essencial para qualquer engenheiro de rede responsável pela integridade da infraestrutura.
Como Funciona a Tabela CAM e Por Que Falha
Cada switch Ethernet gerido mantém uma tabela CAM que mapeia endereços MAC para portas físicas específicas. Quando um frame chega, o switch realiza uma pesquisa: se o MAC de destino estiver na tabela, o frame é encaminhado apenas para a porta correspondente (encaminhamento unicast). Se o MAC for desconhecido, o switch inunda o frame para todas as portas na mesma VLAN — este é o comportamento normal e esperado para tráfego unicast desconhecido.
A tabela CAM tem um tamanho finito, tipicamente variando de 8.000 entradas em switches de camada de acesso a 128.000+ entradas em switches de núcleo empresarial. As entradas expiram após um tempo limite de inatividade (padrão: 300 segundos na maioria das plataformas Cisco IOS). Um atacante explora isto injetando frames mais rapidamente do que as entradas expiram, mantendo a tabela perpetuamente cheia com entradas inválidas.
O Modo de Falha Fail-Open
Quando a tabela CAM está cheia, o switch não consegue armazenar novos mapeamentos legítimos de MAC para porta. Cada frame com um MAC de destino que ainda não está na tabela é inundado para todas as portas na VLAN. Isto é chamado de comportamento fail-open — o switch prioriza a conectividade em detrimento da segurança, o que é o oposto do que um design consciente de segurança requer.
As consequências são imediatas e graves:
- Sniffing passivo: Qualquer host no segmento pode capturar tráfego destinado a outros hosts usando uma NIC em modo promíscuo e um analisador de pacotes como Wireshark ou tcpdump.
- Ataques man-in-the-middle (MITM): Com visibilidade total do tráfego, um atacante pode combinar MAC flooding com envenenamento ARP para interceptar, modificar e retransmitir tráfego entre dois hosts em comunicação sem que nenhuma das partes detete a interceptação.
- Recolha de credenciais: Protocolos não encriptados (Telnet, FTP, HTTP Basic Auth, SMTP sem STARTTLS) expõem credenciais diretamente. Mesmo com TLS, metadados e padrões de sessão revelam dados de reconhecimento valiosos.
- Degradação do desempenho da rede: O enorme volume de frames inundados consome largura de banda das portas e ciclos de CPU em todos os hosts ligados, constituindo efetivamente uma condição de negação de serviço.
Execução do Ataque: Como Realmente Parece
Um ataque realista usando `macof` num host Linux:
“`bash
macof floods the network with random source MACs
-i specifies the interface, -n specifies the number of packets
macof -i eth0 -n 100000
“`
Cada pacote tem um MAC de origem e um MAC de destino gerados aleatoriamente, forçando o switch a tentar uma nova entrada CAM para cada frame. Numa ligação de 100 Mbps, `macof` pode gerar aproximadamente 155.000 pacotes por segundo — excedendo em muito a taxa de reposição da tabela CAM.
MAC Flooding vs. ARP Spoofing vs. ARP Poisoning
Estes três ataques são frequentemente confundidos, mas operam em camadas diferentes e através de mecanismos diferentes. Compreender a distinção é fundamental para selecionar a contramedida correta.
| Atributo | MAC Flooding | ARP Spoofing | ARP Poisoning |
|---|
| — | — | — | — |
|---|
| **Camada OSI** | Camada 2 (Ligação de Dados) | Fronteira Camada 2/3 | Fronteira Camada 2/3 |
|---|
| **Alvo** | Tabela CAM do switch | Cache ARP do host | Cache ARP do host |
|---|
| **Mecanismo** | Esgota a CAM com MACs falsos | Envia respostas ARP forjadas | Respostas ARP forjadas contínuas |
|---|
| **Objetivo Principal** | Forçar inundação semelhante a hub | Redirecionar tráfego para o atacante | MITM persistente |
|---|
| **Dificuldade de Deteção** | Moderada (alto volume de tráfego) | Alta (manipulação subtil de cache) | Alta |
|---|
| **Contramedida Principal** | Segurança de Porta | Inspeção ARP Dinâmica | Inspeção ARP Dinâmica + DHCP Snooping |
|---|
| **Requer Acesso Físico** | Sim (segmento local) | Sim (segmento local) | Sim (segmento local) |
|---|
| **Ferramentas** | macof, hping3 | arpspoof, Ettercap | Ettercap, Bettercap |
|---|
Estratégia de Prevenção 1: Segurança de Porta em Switches Geridos
A segurança de porta é a defesa de primeira linha mais direta e eficaz contra MAC flooding. Opera ao nível da porta, impondo um limite rígido ao número de endereços MAC que podem ser aprendidos em qualquer interface.
Parâmetros de Configuração Principais
Número máximo de endereços MAC: Defina este valor para o número mínimo necessário para operação legítima. Uma porta ligada a uma única estação de trabalho deve permitir exatamente um endereço MAC. Uma porta ligada a um telefone IP com um PC a jusante (uma topologia de cadeia daisy comum) deve permitir dois.
Modos de violação determinam o que acontece quando o limite é excedido:
- `protect` — Descarta silenciosamente frames de MACs desconhecidos. Sem registo, sem desativação da porta. Útil para ambientes onde falsos positivos são uma preocupação, mas não fornece visibilidade.
- `restrict` — Descarta frames de MACs desconhecidos e incrementa um contador de violações, gerando uma mensagem syslog. A porta permanece operacional.
- `shutdown` — Coloca imediatamente a porta em estado err-disabled e gera um alerta syslog. Esta é a opção mais segura, mas requer intervenção administrativa (ou recuperação automática) para restaurar a porta.
Endereçamento MAC sticky (`mac-address sticky`) instrui o switch a aprender dinamicamente endereços MAC e escrevê-los diretamente na configuração em execução como entradas estáticas. Isto elimina a necessidade de pré-popular manualmente as tabelas de endereços MAC, mantendo ainda a ligação de dispositivos específicos a portas específicas.
Exemplo Completo de Configuração Cisco IOS
“`
interface GigabitEthernet0/1
switchport mode access
switchport access vlan 10
switchport port-security
switchport port-security maximum 2
switchport port-security violation shutdown
switchport port-security mac-address sticky
spanning-tree portfast
“`
Para verificar o estado de segurança da porta:
“`
show port-security interface GigabitEthernet0/1
show port-security address
“`
Para recuperar uma porta em err-disabled após uma violação:
“`
interface GigabitEthernet0/1
shutdown
no shutdown
“`
Para recuperação automática, configure `errdisable recovery cause psecure-violation` com um intervalo apropriado.
Armadilha Crítica: Portas Trunk e Uplinks
Nunca aplique segurança de porta a portas trunk ou uplinks de switch. Estas portas transportam legitimamente tráfego de centenas de endereços MAC em múltiplas VLANs. Aplicar um limite de MAC a uma porta trunk causará falhas catastróficas de conectividade. A segurança de porta é exclusivamente uma funcionalidade de porta de acesso.
Estratégia de Prevenção 2: Segmentação VLAN e VLANs Privadas
A segmentação VLAN limita o raio de impacto de um ataque MAC flooding ao restringir o domínio de broadcast. Se um atacante inundar uma tabela CAM, apenas a VLAN que contém a porta do atacante entra em modo fail-open — outras VLANs continuam a operar normalmente.
Segmentação VLAN Padrão
Segmente a sua rede por função e nível de sensibilidade:
- VLAN de Gestão: Dispositivos de rede, interfaces de gestão fora de banda, acesso IPMI/iDRAC/iLO
- VLAN de Servidores: Servidores de produção, bases de dados, camadas de aplicação
- VLAN de Utilizadores: Estações de trabalho, impressoras, endpoints de uso geral
- VLAN DMZ: Serviços voltados para a Internet, proxies reversos, gateways de correio
- VLAN de Voz: Telefones VoIP (também reduz a complexidade de QoS)
VLANs Privadas (PVLANs)
As VLANs privadas estendem o isolamento dentro de uma única VLAN ao definir funções de porta:
- Portas promíscuas: Podem comunicar com todas as portas na PVLAN (tipicamente o uplink ou gateway)
- Portas isoladas: Só podem comunicar com portas promíscuas — não com outras portas isoladas
- Portas de comunidade: Podem comunicar com outras portas na mesma comunidade e com portas promíscuas
As PVLANs são particularmente valiosas em ambientes de alojamento onde múltiplos inquilinos partilham a mesma infraestrutura física. Mesmo que a porta de um inquilino seja comprometida, o comportamento de porta isolada impede a captura lateral de tráfego. Se estiver a executar cargas de trabalho numa plataforma de VPS Hosting, compreender como o fabric de switching subjacente implementa o isolamento VLAN é diretamente relevante para o seu modelo de ameaças.
Estratégia de Prevenção 3: DHCP Snooping
O DHCP snooping constrói uma tabela de ligações que mapeia endereços MAC para endereços IP, VLANs e portas de switch. Esta tabela de ligações não é apenas útil para ataques específicos de DHCP — serve como fonte autoritativa de verdade para a Inspeção ARP Dinâmica e o IP Source Guard.
Lógica de Configuração
As portas são classificadas como confiáveis (ligadas a servidores DHCP legítimos ou uplinks) ou não confiáveis (ligadas a clientes). As respostas DHCP que chegam em portas não confiáveis são descartadas.
“`
ip dhcp snooping
ip dhcp snooping vlan 10,20,30
interface GigabitEthernet0/1
ip dhcp snooping limit rate 15
! Untrusted by default — no additional command needed
interface GigabitEthernet0/24
ip dhcp snooping trust
! Uplink or DHCP server port
“`
O comando `ip dhcp snooping limit rate 15` limita os pacotes DHCP a 15 por segundo em portas não confiáveis, prevenindo ataques de esgotamento DHCP que podem acompanhar campanhas de MAC flooding.
A Tabela de Ligações do DHCP Snooping
“`
show ip dhcp snooping binding
“`
Esta saída da tabela mostra endereço MAC, endereço IP, tempo de concessão, VLAN e interface — exatamente os dados que o DAI usa para validação.
Estratégia de Prevenção 4: Inspeção ARP Dinâmica (DAI)
O DAI valida pacotes ARP contra a tabela de ligações do DHCP snooping. Qualquer pacote ARP que reivindique um mapeamento MAC-para-IP que não corresponda à tabela de ligações é descartado. Isto contraria diretamente o envenenamento ARP que os atacantes tipicamente sobrepõem ao MAC flooding.
“`
ip arp inspection vlan 10,20,30
interface GigabitEthernet0/24
ip arp inspection trust
! Uplink — trusted for ARP
interface GigabitEthernet0/1
ip arp inspection limit rate 100
! Limit ARP rate on access ports
“`
O DAI também regista pacotes descartados, fornecendo evidências forenses de tentativas de ataque:
“`
show ip arp inspection statistics vlan 10
“`
IP Source Guard: A Camada Final
O IP Source Guard estende a tabela de ligações do DHCP snooping para filtrar pacotes IP. Apenas pacotes com um IP de origem correspondente à entrada da tabela de ligações para essa porta são encaminhados. Isto impede a falsificação de IP mesmo após um evento bem-sucedido de MAC flooding.
“`
interface GigabitEthernet0/1
ip verify source
“`
A combinação de segurança de porta + DHCP snooping + DAI + IP Source Guard cria uma pilha de defesa em profundidade que aborda simultaneamente MAC flooding, ARP spoofing, esgotamento DHCP e falsificação de IP.
Estratégia de Prevenção 5: Controlo de Acesso à Rede 802.1X
O IEEE 802.1X fornece controlo de acesso à rede baseado em porta ao exigir autenticação antes que uma porta possa passar tráfego. Um dispositivo não autenticado — incluindo a máquina de um atacante a injetar pacotes de MAC flooding — é colocado num estado não autorizado e não pode comunicar com a rede.
A arquitetura 802.1X envolve três componentes:
- Suplicante: O dispositivo cliente (estação de trabalho, servidor)
- Autenticador: A porta do switch
- Servidor de autenticação: Um servidor RADIUS (FreeRADIUS, Cisco ISE, Microsoft NPS)
Até que o suplicante se autentique com sucesso via EAP (Extensible Authentication Protocol), a porta apenas passa frames EAPOL (EAP over LAN). O MAC flooding a partir de uma porta não autenticada é impossível porque a porta não tem acesso ao plano de dados.
“`
aaa new-model
aaa authentication dot1x default group radius
dot1x system-auth-control
interface GigabitEthernet0/1
authentication port-control auto
dot1x pae authenticator
“`
O 802.1X é o controlo preventivo mais forte disponível para segurança na camada de acesso, mas requer uma infraestrutura RADIUS e configuração de suplicante em todos os endpoints — um investimento operacional significativo.
Estratégia de Prevenção 6: Monitorização de Rede e Deteção de Anomalias
Nenhum controlo preventivo é infalível. A monitorização contínua fornece a capacidade de deteção necessária para identificar ataques que contornam ou precedem as medidas preventivas.
Indicadores de MAC Flooding
- Aumento rápido no número de endereços MAC aprendidos numa única porta
- Utilização da tabela CAM a aproximar-se de 80-90% da capacidade
- Pico no volume de tráfego broadcast numa VLAN
- Aumento nos eventos de inundação unicast desconhecido
- Picos de utilização de CPU nos switches (devido ao processamento de inundação)
Ferramentas e Técnicas de Monitorização
Polling SNMP: Consulte `dot1dTpFdbTable` (RFC 1493) ou `dot1qFdbTable` (RFC 2674) para acompanhar o tamanho da tabela CAM ao longo do tempo. Alerte quando as entradas excederem um limiar definido.
Análise NetFlow/sFlow: Os dados de fluxo revelam padrões de tráfego anómalos — uma única fonte a gerar milhares de endereços MAC de origem únicos é um indicador claro.
Sistemas de Deteção de Intrusões: Snort e Suricata têm regras para detetar padrões de MAC flooding. Zeek (anteriormente Bro) pode ser configurado para alertar sobre rotatividade rápida de endereços MAC.
Wireshark/tshark para forense: Ao investigar um ataque suspeito, capture numa porta mirror/SPAN e filtre por MACs de origem únicos:
“`bash
tshark -i eth0 -T fields -e eth.src | sort | uniq -c | sort -rn | head -20
“`
Um host legítimo gera um punhado de MACs de origem únicos (tipicamente um). Um atacante a executar `macof` gera milhares por segundo.
SPAN/RSPAN para Análise de Tráfego
Configure uma sessão SPAN (Switched Port Analyzer) para espelhar tráfego para um host de monitorização:
“`
monitor session 1 source vlan 10
monitor session 1 destination interface GigabitEthernet0/48
“`
Isto permite que um IDS/IPS dedicado ou um dispositivo de captura de pacotes analise todo o tráfego da VLAN 10 sem perturbar o encaminhamento de produção.
Considerações de Hardware: Tamanho da Tabela CAM e Seleção de Switch
Atualizar para switches com tabelas CAM maiores eleva a fasquia para os atacantes, mas não substitui os controlos descritos acima. Um atacante determinado com largura de banda suficiente pode inundar qualquer tabela finita.
| Nível de Switch | Tamanho Típico da Tabela CAM | Caso de Uso Recomendado |
|---|
| — | — | — |
|---|
| Consumidor não gerido | 1.000 – 4.000 entradas | Apenas redes domésticas |
|---|
| PME gerido (ex.: Cisco SG350) | 8.000 – 16.000 entradas | Pequeno escritório, ambientes de baixo risco |
|---|
| Acesso empresarial (ex.: Cisco Catalyst 9200) | 32.000 – 64.000 entradas | Camada de acesso corporativo |
|---|
| Distribuição/núcleo empresarial (ex.: Cisco Catalyst 9500) | 128.000 – 256.000+ entradas | Centro de dados, núcleo de campus |
|---|
Para cargas de trabalho de produção — particularmente aquelas a correr em Servidores Dedicados ligados a infraestrutura de switching empresarial — o nível do switch impacta diretamente a sua janela de exposição durante um ataque ativo.
Proteger Ambientes Alojados e na Nuvem
O MAC flooding é um ataque de segmento local. Num ambiente de alojamento partilhado ou de colocalização, o modelo de ameaças muda: um inquilino comprometido ou malicioso no mesmo fabric de switch físico pode visar outros inquilinos.
Para ambientes onde controla o hipervisor ou switch virtual (Open vSwitch, VMware vSwitch), existem controlos equivalentes:
Segurança de porta Open vSwitch:
“`bash
ovs-vsctl set port <port-name> other_config:rstp-enable=true
ovs-vsctl set Interface <port-name> type=internal
Limit MAC learning via OpenFlow rules
“`
VMware vSwitch: Ative “Alterações de Endereço MAC: Rejeitar” e “Transmissões Forjadas: Rejeitar” na política de segurança do vSwitch. Isto impede que uma VM injete frames com MACs de origem diferentes do seu MAC atribuído.
Se estiver a gerir aplicações web ou serviços num VPS com cPanel ou a usar Painéis de Controlo VPS para gestão de servidores, verifique com o seu fornecedor que o hipervisor subjacente impõe anti-spoofing de MAC ao nível do switch virtual — este é o equivalente virtualizado da segurança de porta.
Para organizações que executam serviços com terminação SSL, garantir que os seus Certificados SSL estão corretamente configurados fornece uma camada adicional de proteção: mesmo que um atacante consiga intercetar tráfego através de MAC flooding, o TLS devidamente implementado com fixação de certificado impede a recolha de credenciais de sessões encriptadas.
Matriz de Decisão: Escolher os Controlos Certos
Use esta matriz para priorizar controlos com base no tipo de ambiente:
| Controlo | Pequeno Escritório | LAN Empresarial | Centro de Dados | Alojado/Nuvem |
|---|
| — | — | — | — | — |
|---|
| Segurança de Porta | Alta prioridade | Alta prioridade | Média (usar 802.1X) | N/A (nível hipervisor) |
|---|
| Segmentação VLAN | Média | Alta prioridade | Alta prioridade | Alta prioridade |
|---|
| DHCP Snooping | Média | Alta prioridade | Alta prioridade | Gerido pelo fornecedor |
|---|
| Inspeção ARP Dinâmica | Média | Alta prioridade | Alta prioridade | Gerido pelo fornecedor |
|---|
| 802.1X NAC | Baixa (complexidade) | Alta prioridade | Alta prioridade | N/A |
|---|
| IP Source Guard | Baixa | Alta prioridade | Alta prioridade | Gerido pelo fornecedor |
|---|
| Monitorização SNMP/NetFlow | Baixa | Alta prioridade | Alta prioridade | Gerido pelo inquilino |
|---|
| VLANs Privadas | Baixa | Média | Alta prioridade | Alta prioridade |
|---|
Lista de Verificação de Pontos-Chave Técnicos
Antes de considerar o seu ambiente de Camada 2 protegido contra MAC flooding, verifique cada um dos seguintes pontos:
- A segurança de porta está configurada em todas as portas de acesso com um limite de MAC apropriado ao tipo de dispositivo ligado (1 para estações de trabalho, 2 para cadeias de telefone IP + PC)
- O modo de violação está definido para `shutdown` em portas de alta segurança e `restrict` com registo em portas de acesso geral
- A aprendizagem MAC sticky está ativada e a configuração em execução está guardada na NVRAM
- O DHCP snooping está ativado em todas as VLANs de produção com designações corretas de portas confiáveis/não confiáveis e limitação de taxa em portas não confiáveis
- A Inspeção ARP Dinâmica está ativada em todas as VLANs de produção e validada contra a tabela de ligações do DHCP snooping
- O IP Source Guard está implementado em portas de acesso não confiáveis em segmentos de alta segurança
- As VLANs estão segmentadas por função sem roteamento inter-VLAN desnecessário
- As VLANs privadas estão implementadas em ambientes multi-inquilino ou de alojamento
- O 802.1X está implementado ou planeado para todas as portas da camada de acesso
- A monitorização SNMP está configurada para alertar sobre limiares de utilização da tabela CAM
- NetFlow ou sFlow está ativado e a alimentar um sistema de deteção de anomalias
- As sessões SPAN estão configuradas para visibilidade IDS/IPS em VLANs críticas
- As políticas de segurança do switch virtual (anti-spoofing de MAC, rejeição de transmissão forjada) são impostas ao nível do hipervisor
- O TLS é imposto para todo o tráfego de aplicações sensíveis para que mesmo uma interceptação bem-sucedida não produza credenciais em texto simples
Perguntas Frequentes
O MAC flooding pode afetar redes sem fio?
A infraestrutura Wi-Fi padrão usa um modelo de associação diferente — os pontos de acesso gerem as associações de clientes através do protocolo 802.11, não através de uma tabela CAM no sentido Ethernet. No entanto, o controlador sem fio ou o switch com fio a montante que serve o AP ainda pode ser visado. Adicionalmente, os ataques de AP desonesto em redes sem fio atingem objetivos de interceção semelhantes através de mecanismos diferentes.
O MAC flooding funciona contra switches empresariais modernos com grandes tabelas CAM?
Sim, mas o ataque requer mais largura de banda e tempo. Um switch com uma tabela CAM de 128.000 entradas requer proporcionalmente mais frames falsificados para esgotar. No entanto, `macof` numa ligação de 10 Gbps pode gerar milhões de frames por segundo, tornando até tabelas grandes vulneráveis em segundos. É por isso que contramedidas ao nível do hardware como a segurança de porta são essenciais — impedem que a tabela seja preenchida em primeiro lugar.
Qual é a diferença entre MAC flooding e MAC spoofing?
O MAC flooding esgota a tabela CAM através do volume — o objetivo é forçar uma inundação semelhante a hub. O MAC spoofing envolve a personificação de um endereço MAC específico e legítimo para sequestrar uma sessão ou contornar controlos de acesso baseados em MAC. São ataques distintos, embora um atacante possa usar MAC spoofing após um evento bem-sucedido de MAC flooding para manter uma posição MITM persistente.
Ativar a segurança de porta interrompe operações de rede legítimas como DHCP?
Não, se configurado corretamente. O tráfego DHCP origina-se do endereço MAC do cliente, que é o único endereço MAC permitido na porta. A resposta do servidor DHCP é endereçada ao MAC do cliente e chega pelo uplink (uma porta confiável). A segurança de porta em portas de acesso não interfere com DHCP a menos que o limite seja definido para zero ou o modo de violação descarte incorretamente tráfego legítimo.
Como deteto um ataque de MAC flooding que já começou?
Verifique imediatamente a utilização da tabela CAM: `show mac address-table count`. Se a utilização estiver próxima de 100%, faça referência cruzada com `show mac address-table dynamic` para identificar portas com um número anormalmente alto de endereços MAC aprendidos. Simultaneamente, verifique os contadores de erros de interface com `show interfaces` para picos na taxa de entrada. A porta infratora mostrará uma taxa de pacotes de entrada dramaticamente elevada e uma contagem invulgarmente alta de endereços MAC aprendidos.
