Configuração de FlowSpec: guia prático para provedores
Configuração de FlowSpec: é preparar a rede para distribuir por BGP regras de filtro que descartam ou limitam só o tráfego de ataque, sem derrubar todo o tráfego do IP atacado. O provedor gera a regra num detector ou num servidor, e os roteadores de borda aplicam o filtro assim que recebem o anúncio.
Resumo
- O FlowSpec descreve o ataque, como UDP vindo da porta 123, e descarta só o que bate com essa descrição.
- O cliente atacado continua no ar, ao contrário do blackhole, que joga fora todo o tráfego do endereço.
- Cada regra ocupa a memória de filtros do roteador, que é limitada e muda de um modelo para outro.
- Teste com um IP de laboratório antes do primeiro ataque, nunca durante a emergência.
O que o FlowSpec resolve num ataque DDoS
O FlowSpec troca o descarte de tudo pelo descarte do que é ataque. A regra descreve o tráfego ruim por protocolo, porta, tamanho e destino, e só esse tráfego é jogado fora ou limitado.
No descarte por blackhole, todo o tráfego para o IP atacado vai para o lixo, e o cliente fica fora do ar mesmo assim. O ataque para de encher o link, mas cumpre o objetivo de tirar o alvo da internet.
Com o FlowSpec, a regra fala a língua do BGP: ela é anunciada como uma rota de uma família própria, e cada roteador que recebe transforma o anúncio num filtro. A peça faz parte da implantação de mitigação de DDoS, junto com a detecção e a capacidade de link.
| Item | Blackhole | FlowSpec |
|---|---|---|
| O que descarta | Todo o tráfego para o IP | Só o tráfego que bate com a regra |
| Cliente atacado | Fica fora do ar | Continua funcionando |
| Suporte no equipamento | Amplo | Depende do modelo e da versão |
| Risco de erro | Baixo | Regra larga demais bloqueia tráfego legítimo |
As duas técnicas convivem bem. O guia de configuração de RTBH mostra o descarte total, que continua sendo a saída quando o ataque é maior do que o seu link.
Como funciona a configuração de FlowSpec?
A configuração de FlowSpec exige duas pontas falando a mesma família BGP: quem anuncia a regra e quem a instala como filtro. Entre elas viaja um anúncio com os campos do ataque e a ação desejada.
- Origem da regra: um detector de ataques ou um servidor BGP, como o ExaBGP, monta e anuncia o filtro.
- Transporte: a sessão BGP com a família flowspec ativa leva a regra até cada borda.
- Instalação: o roteador valida o anúncio e grava o filtro nas interfaces de entrada.
A regra viaja com o mesmo cuidado de qualquer rota: ela pode ser retirada, substituída ou expirar. Isso permite desfazer a contenção sem entrar em cada roteador.
O que uma regra FlowSpec pode conter
A regra combina campos de identificação com uma ação a executar. Quanto mais campos, mais precisa ela fica e menor o risco de bloquear tráfego legítimo.
- Destino e origem: prefixo de destino, normalmente o /32 atacado, e origem quando conhecida.
- Protocolo e portas: UDP, TCP, porta de origem e de destino.
- Tamanho do pacote: útil em ataques de amplificação com pacotes grandes.
- Ação: descartar, limitar a uma taxa ou desviar para um equipamento de limpeza.
A RFC 8955 define esses campos para IPv4 e a RFC 8956 traz a versão para IPv6 [CONFIRMAR]. O suporte a cada campo varia de fabricante para fabricante, então confira o que o seu equipamento aceita antes de planejar.
Assinaturas que aparecem no provedor
Boa parte dos ataques volumétricos contra provedores regionais usa amplificação, em que servidores mal configurados respondem para o seu cliente. A porta de origem entrega a assinatura.
| Ataque | Protocolo | Porta de origem |
|---|---|---|
| Amplificação por NTP | UDP | 123 |
| Amplificação por DNS | UDP | 53 |
| Amplificação por SSDP | UDP | 1900 |
| Amplificação por memcached | UDP | 11211 |
A detecção dessas assinaturas vem da leitura de fluxos na borda. O guia de implantação de IPFIX mostra como coletar esses dados para alimentar o detector.
Qual ação escolher para cada ataque
A ação certa depende de quanto o tráfego marcado pode ter de legítimo misturado. Quando a assinatura é limpa, o descarte resolve; quando há dúvida, limitar a taxa é mais seguro.
- Descartar: para assinaturas que nenhum cliente usa de verdade, como respostas de NTP em volume para um assinante residencial.
- Limitar a taxa: quando o protocolo também carrega uso legítimo, como DNS, e cortar tudo prejudicaria o cliente.
- Desviar: quando existe um equipamento de limpeza na rede e o tráfego precisa ser analisado antes de seguir.
Comece sempre pela ação menos agressiva que segura o ataque. Uma taxa limite bem escolhida mantém o serviço do cliente e ainda tira o peso do link no horário do ataque.
Configuração de FlowSpec passo a passo
O exemplo usa um servidor com ExaBGP, que fala BGP com a borda e anuncia a regra. A regra descarta UDP vindo da porta 123, assinatura comum de amplificação por NTP.
- Servidor de regras: suba o ExaBGP numa máquina da rede de gerência, com endereço fixo.
- Sessão com a borda: configure a sessão iBGP entre o servidor e cada roteador, com a família flowspec ativa.
- Regra de teste: anuncie uma regra contra um IP de laboratório, nunca contra um cliente.
- Instalação: confira no roteador se a regra foi aceita e em quais interfaces ela está aplicada.
- Retirada: remova a regra no servidor e veja o filtro sumir das bordas.
neighbor 10.0.0.1 {
router-id 10.0.0.250;
local-address 10.0.0.250;
local-as 64500;
peer-as 64500;
family { ipv4 flow; }
flow {
route descarte-ntp-cliente {
match {
destination 203.0.113.10/32;
protocol udp;
source-port =123;
}
then { discard; }
}
}
}No roteador, a família flowspec precisa estar ativa na sessão com o servidor, e a aplicação dos filtros nas interfaces de entrada precisa ser habilitada. A sintaxe muda bastante entre fabricantes.
Quer a contenção pronta antes do próximo ataque?
Na implantação de mitigação de DDoS, um Especialista liga a detecção ao FlowSpec e ao blackhole e testa tudo com IP de laboratório.
O que cada trecho da regra faz
O bloco neighbor define a sessão com a borda no mesmo ASN 64500, por isso local-as e peer-as são iguais. O bloco flow guarda a regra com nome, campos e ação.
- Family ipv4 flow: liga a família FlowSpec na sessão; sem ela a regra não é enviada.
- Match: destino /32 atacado, protocolo UDP e porta de origem 123.
- Then discard: descarta o que bate com os campos; uma alternativa é limitar a taxa.
Em sessões internas, alguns fabricantes exigem desligar a validação da regra contra a rota unicast, porque o servidor não é quem origina o prefixo [CONFIRMAR na documentação do fabricante].
Quando vale usar FlowSpec e quando não basta?
O FlowSpec vale quando o ataque cabe no seu link e tem assinatura clara. Ele não basta quando o tráfego já enche o link de entrada, porque filtrar no seu roteador não libera a banda.
O FlowSpec usa a memória de filtros do roteador de borda, que é limitada. Ataques com muitas assinaturas ao mesmo tempo podem esgotar essa memória e deixar regras sem instalar.
- Confira quantas regras o seu modelo aguenta e em quais interfaces.
- Limite o número de regras aceitas por sessão.
- Dê prazo de validade às regras automáticas.
- Filtrar no seu roteador não libera o link; ataques maiores que o link pedem filtro no trânsito.
Para ataques maiores que o link, o caminho é o desvio para limpeza fora da sua rede. A integração com serviços de scrubbing cobre esse cenário.
FlowSpec no trânsito ou só dentro de casa
Poucas operadoras aceitam regras FlowSpec de clientes, e quem aceita costuma limitar campos e quantidade [CONFIRMAR com as operadoras]. O uso mais comum é dentro da própria rede, entre o servidor e as bordas.
Para a parte de anúncio e controle das sessões, veja a configuração de sessões com route servers. Para a origem dos prefixos, veja a validação de origem de rotas, base do RPKI.
Erros comuns na configuração de FlowSpec
Uma regra errada pode causar mais estrago que o próprio ataque. Os erros abaixo derrubam tráfego legítimo ou deixam a rede sem defesa no momento em que ela é necessária.
Evite
- Regra sem destino, que descarta o protocolo para a rede inteira.
- Regras automáticas sem validade, acumulando por meses.
- Aceitar FlowSpec de clientes sem limitar aos blocos deles.
- Testar pela primeira vez durante um ataque real.
O primeiro erro é o mais grave: uma regra que bloqueia UDP da porta 53 sem destino corta a resolução de nomes de toda a base. Por isso o destino deve ser obrigatório em toda regra automática.
Exemplo: ataque de NTP numa madrugada
O detector vê um IP de cliente recebendo muito UDP da porta 123 e anuncia a regra de descarte com validade curta. O cliente continua navegando, e o gráfico do link volta ao normal.
Se o mesmo ataque viesse com volume maior que o link, a regra não ajudaria. O guia de ataque DDoS no provedor mostra como reconhecer esse caso e o que fazer primeiro.
Checklist de validação do FlowSpec
Teste com um IP de laboratório antes de depender do FlowSpec num ataque. A validação confirma a sessão, a instalação, o descarte e a passagem do tráfego legítimo.
Confira antes de colocar o FlowSpec em produção
- A sessão flowspec está ativa com todas as bordas.
- A regra aparece instalada no roteador e nas interfaces certas.
- Os contadores mostram pacotes descartados durante o teste.
- O tráfego legítimo para o mesmo IP continua passando.
- A regra some das bordas quando é retirada no servidor.
- Há um limite de regras por sessão e uma validade para as automáticas.
Com todos os itens marcados, o FlowSpec pode responder a um ataque real. Repita o teste depois de cada atualização de sistema no roteador.
A Táquion Tech implanta a contenção em modo só alerta primeiro e liga o descarte automático depois que a detecção mostra que não confunde pico de uso com ataque.
Perguntas frequentes sobre FlowSpec
Qual a diferença entre FlowSpec e RTBH?
O RTBH descarta todo o tráfego para o IP atacado, e o cliente fica fora do ar. O FlowSpec descarta só o tráfego que bate com a regra, e o restante continua chegando.
A operadora de trânsito aceita FlowSpec?
Poucas aceitam de clientes, e as condições ficam no contrato [CONFIRMAR com as operadoras]. O uso mais comum é dentro da própria rede, entre o servidor de regras e as bordas.
Preciso de um detector para usar FlowSpec?
Não é obrigatório, porque a regra pode ser escrita à mão no servidor. Detectores como o FastNetMon geram a regra automaticamente ao ver o ataque, o que encurta a reação.
FlowSpec resolve ataque maior que o meu link?
Não. Se o link encheu, o filtro precisa ser feito antes, no trânsito ou num serviço de limpeza.
Todo roteador de borda suporta regras FlowSpec?
Não. O suporte depende do modelo, da versão do sistema e às vezes de licença, e a quantidade de regras também varia. Confira na documentação do fabricante antes de planejar a contenção.
Serviços ligados a este guia
- Projeto de arquitetura anti-DDoS para provedores Segurança e anti-DDoS
- Implantação de mitigação de DDoS para provedores Segurança e anti-DDoS
- Revisão de firewall para provedores Segurança e anti-DDoS
Fontes
- RFC 8955, Dissemination of Flow Specification Rules: definição atual do FlowSpec para IPv4.
- RFC 7999, BLACKHOLE Community: alternativa de descarte total por community.
- ExaBGP: servidor BGP usado no exemplo para anunciar regras.