Mitigação DDoS com Mikrotik e BGP Flowspec

10 min de leitura Segurança de Rede
Mitigação DDoS com Mikrotik e BGP Flowspec

O tráfego malicioso volumétrico é uma das ameaças mais persistentes contra infraestruturas modernas. Quando um ataque DDoS (Distributed Denial of Service) atinge sua borda de rede, a latência aumenta, serviços caem e a receita é perdida. A solução tradicional muitas vezes envolve depender inteiramente do upstream para filtrar o tráfego, o que pode levar a tempos de resposta lentos ou custos elevados com scrubbing centers externos. Neste tutorial, exploraremos como implementar uma camada proativa de mitigação utilizando MikroTik RouterOS e a capacidade avançada do protocolo BGP Flow Specification (FlowSpec).

O BGP FlowSpec permite que as redes distribuem regras detalhadas de filtro de tráfego via BGP. Diferente das listas de acesso tradicionais, que filtram apenas por endereço IP e porta, o FlowSpec pode inspecionar payloads TCP, flags específicas e até padrões de bytes no cabeçalho da aplicação. Ao integrar isso com um provedor de segurança ou usar o próprio roteador como ponto de detecção (quando combinado com sistemas de monitoramento), você cria uma mitigação DDoS em tempo real, direcionando o tráfego malicioso para "buracos negros" (null0) antes que ele consuma sua largura de banda principal.

1. Pré-requisitos e Arquitetura Lógica

Antes de aplicar as configurações, é fundamental entender a topologia necessária. Para que o BGP FlowSpec funcione efetivamente na mitigação de ataques, você precisa de dois componentes principais:

  • Um par BGP estável: Sua conexão com o Provedor de Internet (ISP) ou Peer deve estar estabelecida e saudável.
  • Um mecanismo de detecção ou fonte de regras: O MikroTik, por padrão, não gera regras FlowSpec automaticamente ao detectar um ataque. Você precisa de um sistema externo (como um IDS/IPS, script de monitoramento de tráfego) ou a capacidade de injetar manualmente as rotas de blackhole quando o ataque for identificado.

Neste cenário, simularemos a configuração do lado do roteador MikroTik para receber e aplicar essas regras vindas de um peer BGP que atua como seu sistema de mitigação ou upstream habilitado para FlowSpec. O objetivo é configurar o RouterOS para aceitar, validar e instalar as rotas de FlowSpec na tabela de encaminhamento.

2. Configurando a Sessão BGP Básica

O primeiro passo é garantir que sua sessão BGP esteja configurada corretamente. Sem uma vizinhança BGP ativa, não há troca de capacidades, e o FlowSpec não será negociado. Utilize os comandos abaixo para estabelecer a conexão com seu peer (substitua os IPs conforme sua topologia).

/routing bgp connection
add name=peer-mitigation \
    remote-address=192.0.2.1 \
    remote-port=179 \
    asn=65001 \
    local-asn=65000 \
    password=SuaSenhaSegura123 \
    in-filter=outbound-route-filter \
    out-filter=inbound-route-filter

Note os filtros in-filter e out-filter. Eles são cruciais para segurança. Você não quer receber rotas de FlowSpec inválidas nem anunciar suas rotas de FlowSpec para peers que não devem recebê-las, a menos que seja intencional. Vamos definir esses filtros no próximo passo.

3. Habilitando e Filtrando Capabilities BGP

O BGP possui um mecanismo de "negotiation" onde os roteadores negociam quais tipos de rotas podem ser trocados. O FlowSpec é uma extensão da família IPv4 (ou IPv6) que requer habilitação explícita. No MikroTik, isso é feito através das configurações de address-family.

Além disso, para evitar que seu roteador anuncie rotas FlowSpec indesejadas para o ISP (o que poderia causar problemas de segurança ou violar SLAs), você deve aplicar filtros rigorosos.

/routing bgp template
set [ find default=yes ] \
    address-families=ipv4-unicast,ipv4-flow-spec-vpn,ipv4-flow-spec-security

A linha acima habilita as famílias de endereços necessárias. O ipv4-flow-spec-security é o mais comum para mitigação DDoS, pois lida com filtros baseados em TCP/UDP e inspeção de payload. O ipv4-flow-spec-vpn é usado para cenários mais complexos envolvendo etiquetas MPLS.

Agora, aplique os filtros definidos na sessão anterior. O filtro de entrada deve permitir apenas as rotas FlowSpec do peer e bloquear outros tipos de atualizações indesejadas se sua política for estrita. O filtro de saída deve garantir que você não anuncie nada que não seja permitido.

/routing filter
add chain=outbound-route-filter \
    action=accept \
    in-interface=ether1-gateway \
    bgp-prefix-lists=allow-internal-routes

add chain=inbound-route-filter \
    action=accept \
    bgp-prefix-lists=allow-flow-spec

Você precisará criar as listas de prefixos correspondentes. Para o FlowSpec, geralmente permitimos tudo que vier do peer confiável no contexto de flow-spec, mas filtramos rigorosamente as rotas unicast padrão se necessário.

4. Entendendo e Configurando Blackholes

Quando uma regra FlowSpec chega dizendo "bloqueie tráfego para o IP 10.0.0.5 na porta 80", o roteador precisa de um destino para enviar esse pacote descartado. Isso é feito através de rotas Blackhole ou null0. No MikroTik, isso pode ser feito via interface loopback ou diretamente na rota.

Certifique-se de que você tem uma interface Loopback configurada e ativa, pois ela serve como o ponto de origem para suas próprias rotas e ajuda na estabilidade da sessão BGP.

/ip address
add address=10.255.0.1/32 interface=lo

Além disso, verifique se a rota de blackhole padrão está instalada ou se o sistema operacional permite a instalação de rotas com destino null0. O RouterOS lida com isso automaticamente ao receber as rotas FlowSpec, mas é vital que o roteador tenha capacidade de processar essas entradas na tabela de roteamento.

5. Simulando a Recebimento de Regras FlowSpec

Como o MikroTik não gera as regras de ataque sozinho nesta configuração básica, vamos simular como ele se comporta ao receber uma regra de um peer habilitado para BGP FlowSpec. Um peer de mitigação (seja um upstream ou um sistema local rodando GoBGP/FRRouting) enviará uma atualização BGP com a família de endereços FlowSpec.

Para verificar se sua configuração está funcionando, monitore as rotas instaladas. Se o peer enviar uma regra para bloquear tráfego TCP com flag SYN para um alvo específico, você verá uma nova entrada na tabela de roteamento.

/routing print where dynamic=yes bgp-prefix-lists~"flow"

Se a configuração estiver correta, você verá entradas listando o prefixo de destino, os detalhes do match (porta, protocolo, flags) e a ação (geralmente "blackhole").

6. Automatizando com Scripts de Detecção (Opcional)

Para uma mitigação verdadeiramente autônoma em um ambiente sem upstream especializado em FlowSpec, você pode implementar scripts no MikroTik que detectam picos de tráfego e injetam rotas de blackhole manualmente. Embora menos eficiente que o FlowSpec distribuído, é uma camada de defesa útil.

O script abaixo verifica se o tráfego para um IP específico excede um limite e, se sim, cria uma rota de drop temporária.

:global attackThreshold 100000
:global checkInterval 60

/tool fetch url=("https://api.your-monitoring.com/traffic?ip=" . $targetIP) mode=http dst-path=("/tmp/traffic.json")
:put "Script executado para verificar tráfego"

# Lógica simplificada para fins de exemplo
# Na prática, você analisaria o output do script ou usaria as estatísticas locais do MikroTik

No entanto, a integração com BGP FlowSpec é superior porque permite que a mitigação ocorra na borda da rede do atacante (se o upstream suportar) ou propague a regra para todos os roteadores da sua AS, garantindo que o tráfego malicioso seja descartado o mais cedo possível.

7. Troubleshooting e Comandos de Verificação

Se as regras não estiverem sendo aplicadas, utilize os seguintes comandos para diagnosticar o problema:

  1. Verificar a sessão BGP:
/routing bgp connection print where name=peer-mitigation

Confirme se o estado é "established" e se as capacidades de FlowSpec foram negociadas.

  1. Verificar rotas recebidas:
/routing bgp route print where address-family=ipv4-flow-spec-security

Se esta lista estiver vazia, seu peer não está enviando regras FlowSpec, ou o filtro de entrada está bloqueando-as.

  1. Verificar a tabela de roteamento:
/routing print where type=blackhole

As rotas FlowSpec recebidas devem se transformar em entradas blackhole na tabela principal. Se elas aparecem aqui mas não estão descartando o tráfego, verifique se há regras de firewall (IP Filter) com prioridade mais alta permitindo o tráfego.

8. Considerações de Segurança e Melhores Práticas

Ao implementar segurança de rede baseada em BGP FlowSpec, tome cuidado com os seguintes pontos:

  • Autenticação MD5/AO: Sempre use autenticação forte na sessão BGP. Um atacante que possa injetar rotas FlowSpec pode criar blackholes para seus próprios serviços legítimos, causando um DoS intencional.
  • Rate Limiting de Rotas: Configure limites na quantidade de rotas FlowSpec que seu roteador aceita. Ataques podem tentar inundar sua tabela de roteamento com milhares de regras sintéticas, consumindo memória e CPU do roteador.
  • Validação de Origem (ROA): Se possível, valide a origem das rotas BGP para garantir que elas vêm de um peer autorizado.

O roteamento dinâmico oferece flexibilidade, mas exige vigilância. O MikroTik RouterOS é uma ferramenta poderosa para isso, desde que configurado com precisão.

Conclusão

A mitigação de DDoS não é apenas sobre ter um firewall robusto; é sobre inteligência de rede e capacidade de resposta rápida. Ao habilitar o BGP FlowSpec no seu MikroTik, você transforma seu roteador em um dispositivo capaz de entender e agir sobre padrões complexos de tráfego malicioso em milissegundos.

Lembre-se: a configuração apresentada aqui prepara seu roteador para receber e aplicar regras. Para uma solução completa, integre-a com um sistema de detecção de anomalias que monitore o fluxo de dados 24/7 e invoque a injeção de rotas FlowSpec assim que um ataque for identificado. Essa combinação de routerOS estável e automação inteligente é o padrão ouro para profissionais de TI que buscam alta disponibilidade e resiliência contra ataques volumétricos.

Teste sempre em ambiente de homologação antes de aplicar em produção. A configuração incorreta de filtros BGP pode resultar em perda total de conectividade ou exposição da rede a anúncios maliciosos. Com o devido cuidado, o roteamento dinâmico potencializado por FlowSpec se torna uma arma poderosa na sua estratégia de mitigacao ddos.

Compartilhar: Link copiado!
Esse tutorial foi útil?

Comentários (0)

Seja o primeiro a comentar.

Deixe seu comentário

Seu comentário será analisado antes de ser publicado.

0/2000