plataforma

Performance de nível operadora, do driver da placa ao painel

Um motor em Rust sem garbage collector, filtros eBPF/XDP rodando no driver da NIC e um banco colunar feito para bilhões de flows. Tudo instalado no seu servidor, sem depender de nuvem de terceiros para detectar ou mitigar.

Engenharia em númeroscore + interface
testes automatizados no core
1.198
vetores de ataque decodificados
50
tabelas analíticas no ClickHouse
125
materialized views
20
refletores bloqueados no XDP
13
endpoints na API REST v1
46
fluxo de dados

Como o dado anda

Telemetria entra pela esquerda, a cada 10 s o motor decide, e a resposta volta para a borda por BGP ou passa pelo scrubber. Tudo fica gravado no ClickHouse: flows, ataques, decisões e auditoria.

Arquitetura do EdgeWarden Os roteadores de borda exportam flows para o coletor, que enriquece os dados e entrega ao motor de análise. A cada ciclo de 10 segundos, o motor passa as anomalias para a decisão, que grava a ação na fila do ClickHouse, anuncia FlowSpec, RTBH ou desvio pelos roteadores via GoBGP ou ExaBGP, ou envia o prefixo para a empresa de scrubbing externo. O scrubber XDP lê a fila, recebe o tráfego desviado e devolve o tráfego limpo à borda, enquanto o analyzer confere a saúde dele a cada 10 segundos. Painel, API e alertas recebem os eventos do motor. lê a fila vigia /health · 10 s anúncios BGP: FlowSpec · RTBH · desvio /32 com NO_EXPORT desvio ou envio Borda Juniper MX Huawei NE MikroTik · Cisco e qualquer exportador de flow Coletor UDP 2055 · 6343 BMP · SNMP · pcap Enriquecimento ASN · GeoIP · rDNS DNS passivo · sonda TLS 10 s Motor de análise 50 vetores baseline · burst Painel e alertas Interface :3099 API REST v1 E-mail · Telegram Webhook · Slack Syslog · SNMP Trap ClickHouse flows · ataques · decisões · fila · auditoria Decisão cascata determinística trava CGNAT · teto 80% Scrubber XDP driver da NIC · nft GoBGP · ExaBGP FlowSpec · RTBH · desvio Scrubbing externo empresa de mitigação

Arraste para o lado para ver o diagrama inteiro.

Telemetria Gravação e fila no ClickHouse Anúncios BGP Tráfego desviado Tráfego limpo Vigia de saúde Alertas
  1. Roteadores de bordaJuniper, Huawei, MikroTik, Cisco e qualquer equipamento que exporte flow.
  2. ColetorNetFlow, IPFIX e sFlow em UDP 2055/6343, BMP em TCP 11019, SNMP e captura de pacotes.
  3. EnriquecimentoASN, GeoIP, rDNS, sonda TLS, DNS passivo, decoder de túnel e mapa porta → provedor.
  4. Motor de análiseCiclo de 10 s, configurável até 1 s: decoders, thresholds, baseline, burst, carpet bomb, spoofing, RPKI/IRR e threat intel.
  5. DecisãoCascata determinística com trava de CGNAT e teto de 80% da capacidade medida do scrubber.
  6. AçãoGoBGP ou ExaBGP anunciam aos roteadores; o scrubber XDP/nftables limpa; a empresa de mitigação recebe o que não cabe.
  7. Painel e integraçõesInterface web, API REST v1, e-mail, Telegram, webhook, Syslog e SNMP Trap.
stack

Escolhido para não engasgar no meio de um ataque

Cada peça faz uma coisa e está no lugar onde rende mais. Nenhuma depende de serviço externo para funcionar.

Rust + TokioO motor

Coleta, análise, decisão e mitigação num binário assíncrono, sem garbage collector e sem pausa no meio de um ataque. O build de release usa LTO e jemalloc, e é endurecido contra engenharia reversa.

tokiojemalloclto

eBPF/XDP com ayaO plano de dados

Filtro e scrubber rodando no driver da placa, antes da pilha de rede do Linux. Um destino fora de mitigação passa com um único lookup de hash.

ayaXDP_DROPXDP_PASS

ClickHouseFlows e histórico

Banco colunar para bilhões de flows, com consultas em milissegundos e compressão perto de 10:1. Também guarda a fila de mitigação, as decisões e a auditoria.

125 tabelas20 MVsLZ4

MariaDB / MySQLUsuários e configuração

Usuários e papéis, dashboards, Managed Objects, chaves de API e relatórios agendados.

22 tabelas

RedisEstado quente

Baselines estatísticas e alertas em tempo real. Depois de um restart, o motor restaura as baselines do Redis em vez de reaprender a rede do zero.

baselinesalertas

GoBGP v3 / ExaBGPSessões BGP

GoBGP por gRPC nativo ou ExaBGP. A configuração gerada pela interface mostra o diff antes de aplicar e tem rollback.

gRPC :50051FlowSpecBMP

Next.js 16 + React 19Interface

Mais de 60 telas em português, tema claro e escuro, terminal SSH no navegador, dashboards arrastáveis e Swagger UI embutido.

:3099xterm.jsOpenAPI
papéis de nó

Separe quem decide de quem recebe o ataque

O mesmo pacote de instalação roda em três papéis, escolhidos por uma linha no config.toml. Os nós conversam pela fila de mitigação no ClickHouse, sem protocolo proprietário.

O que cada papel de nó faz
Função All-in-oneo padrão Analyzerfora do caminho do tráfego Scrubberno caminho do tráfego desviado
Recebe flows e detectaSimSimNão, o coletor sobe só em loopback
Decide e anuncia por BGPSimSimNão
Filtra com XDP e nftablesSimNunca toca no filtro localSim, lendo a fila de mitigação
Interface web e APISimSimNão, sobe enxuto
Quando usarRede única, um servidor para tudoSeparar a inteligência do equipamento que recebe o ataqueAppliance de limpeza dedicado, com quota de nós na licença

Vigia de saúde: o desvio nunca vira buraco negro

O analyzer consulta o /health do scrubber a cada 10 s. Depois de 3 falhas seguidas, os desvios ativos são retirados e nenhum novo é anunciado. Na primeira resposta boa, tudo volta. O scrubber responde 503 se o filtro não subiu ou se o nó está fora da cota da licença.

  1. responde
  2. responde
  3. 1ª falha
  4. 2ª falha
  5. 3ª falha
  6. desvios retirados
  7. volta a desviar
plano de dados

Filtragem no driver da placa

O programa XDP do EdgeWarden roda antes da pilha de rede do Linux. Com o mapa vazio, a máquina se comporta como se o filtro não existisse, então dá para instalar sem risco. Qualquer falha resulta em passagem do pacote, nunca em descarte. Recurso do plano Enterprise.

Sanidade L3/L4

Descarta endereços martians, fragmentos e combinações de flags impossíveis.

Amplificação

Bloqueia 13 refletores conhecidos pela porta de origem e pelo tamanho mínimo do pacote.

13 refletores

Rate limit por origem

Token bucket por endereço de origem, para botnets e refletores com IP real.

até 65.536 origens

Proteção SYN Novo

Descarta o primeiro SYN e libera quem retransmite, sem transformar o scrubber em refletor como faria um SYN cookie.

Limite por destino

Teto de tráfego por vítima, ajustável por cliente no Managed Object.

até 16.384 vítimas

Assinaturas de conteúdo Novo

Assinaturas UDP de 4 ou 8 bytes mais porta, cadastradas pelo operador, com contador por assinatura.

até 1.024 assinaturas

Os 13 refletores bloqueados no driver

Porta de origem UDP. QUIC em UDP/443 fica de fora de propósito: é tratado pelo detector QUIC e por FlowSpec.

  • QOTD17
  • chargen19
  • DNS53
  • portmap111
  • NTP123
  • NetBIOS137
  • SNMP161
  • CLDAP389
  • RIPv1520
  • SSDP1900
  • WS-Discovery3702
  • mDNS5353
  • memcached11211

Modo observação. Com uma heurística desligada, o filtro conta o que descartaria sem descartar nada, e o painel Plano de dados mostra os acertos por heurística a cada minuto. Carpet bomb em IPv4 e IPv6 é tratado por prefixo, com a vítima procurada numa trie LPM.

appliance

Centro de limpeza 100G de referência

A implantação de referência usa um Dell PowerEdge R760 com duas placas NVIDIA/Mellanox ConnectX-6 Dx (4 portas de 100G), Debian 13 e kernel 6.12 LTS. Cada roteador recebe uma porta de 100G, ou 200G com LACP usando uma porta de cada placa, o que mantém o serviço mesmo se uma placa inteira cair.

  • Arquitetura 100G/200G por roteador, com capacidade validada em cada implantação
  • Descarte em dezenas de Mpps por porta com NIC de XDP nativo
  • Caminho anti-loop por design: desvio /32 ou /128 com community e NO_EXPORT; o tráfego limpo volta por uma tabela que nunca contém o desvio
  • Driver mlx5 padrão do kernel, sem instalar pacote do fabricante
  • NICs recomendadas: Mellanox ConnectX-5/6 e Intel E810 no topo de linha; X710, X520/X540 e ConnectX-4 no custo-benefício
Duas placas ConnectX-6 Dx com duas portas de 100G cada; cada roteador usa uma porta de cada placa em LACP, somando 200G Dell PowerEdge R760 Debian 13 · kernel 6.12 LTS ConnectX-6 Dx · placa 1 NUMA da CPU 0 ConnectX-6 Dx · placa 2 NUMA da CPU 1 Roteador 1 LACP 2 × 100G Roteador 2 LACP 2 × 100G
Uma porta de cada placa por roteador. Se uma placa inteira cair, o roteador continua com 100G. Sem LACP, as 4 portas atendem até 4 roteadores Juniper com 100G cada.

Dois modos de implantação

Modos de implantação do centro de limpeza
ItemModo A: tudo no R760Modo B: analyzer separado
recomendado
No R760Coletor, ClickHouse, MariaDB, interface, GoBGP e XDPSó o core com XDP
BGP com a bordaO próprio R760O analyzer
Vigia de saúdeNão precisaObrigatório

Bordas com template de caminho limpo

Juniper MXValidado em produção

Uma porta por roteador, sujo e limpo no mesmo cabo; um filtro de entrada manda o limpo para a routing-instance CLEAN. IPv4 e IPv6.

Huawei NE40E / NE8000Validação pendente

Template VRP8 escrito a partir da documentação oficial, com uma porta suja e uma limpa. Ainda precisa de validação em laboratório.

Capacidade medida, não prometida. A capacidade de encaminhamento limpo é medida em cada implantação e registrada no sistema. O EdgeWarden só desvia até 80% do valor medido; acima disso, a decisão passa para scrubbing externo, FlowSpec no vetor e, por último, RTBH.

compatibilidade

Protocolos abertos, fabricantes de verdade

Qualquer roteador que exporte flow e fale BGP FlowSpec ou RTBH é atendido pelas funções padrão. Os recursos específicos de fabricante estão listados abaixo, sem exagero.

Coleta e telemetria

  • NetFlow v5
  • NetFlow v9RFC 3954
  • IPFIXRFC 7011
  • sFlow v5
  • SNMP v1/v2c/v3
  • BMPRFC 7854
  • libpcap · AF_PACKET v3
  • AF_XDP · DPDKem breve

Mitigação

  • BGP FlowSpecRFC 5575/8955
  • RTBH
  • GoBGPgRPC
  • ExaBGP
  • eBPF/XDP
  • nftables

Validação de rota

  • RPKI/RTR
  • IRRRIPE · RADb

Túneis decodificados

  • VxLAN
  • GENEVE
  • GRE
  • L2TP
  • IP-in-IP
  • MPLS-in-UDP
Integração por fabricante
FabricanteFlow e BGP padrãoRecursos específicos
JuniperJunOS, MXSimFlowSpec e RTBH em produção, templates de scrubbing IPv4/IPv6, contadores de firewall (JUNIPER-FIREWALL-MIB), hardening de filtros estáticos, PBR via prefix-list, terminal SSH
HuaweiVRP8, NE40E/NE8000SimPBR via ACL e terminal SSH. Template de scrubbing escrito, aguardando validação em laboratório
MikroTikRouterOSSimPBR via address-list e terminal SSH
CiscoIOS, IOS-XRSimTerminal SSH no navegador. Sem PBR automático
Nokia, Arista e outrosSimSem integração específica: funcionam por NetFlow/IPFIX/sFlow e BGP FlowSpec/RTBH
API REST v1

Integre ao seu NOC, Zabbix, SIEM ou portal

API REST v1 documentada em OpenAPI/Swagger: 46 endpoints, chaves com escopo, restrição por IP e por cliente, limite de taxa e webhooks.

  • Swagger UI embutido em /api-docs, que funciona até em appliance sem internet
  • A chave aparece uma única vez; o servidor guarda só o hash SHA-256
  • Escopos para tráfego, flows, ataques, violações, mitigações, Managed Objects, relatórios e sistema
  • Aplique FlowSpec, RTBH, desvio ou scrubbing externo por POST, com as mesmas travas da interface
  • Limite padrão de 120 requisições por minuto por chave, com resposta 429 e Retry-After
  • Health check pronto para Zabbix em /api/v1/system/health
Ataques ativos na última hora
# chave de exemplo: crie a sua em Configurações → Chaves de API
export EW=https://edgewarden.example.net
export FSK=fsk_a1b2c3d4e5f60718_SEU_SEGREDO

curl -s -H "Authorization: Bearer $FSK" \
  "$EW/api/v1/attacks?status=active&hours=1"

{
  "data": [{
    "target_ip": "203.0.113.9",
    "attack_type": "udp_flood",
    "severity": "high",
    "status": "active",
    "bytes_per_sec": 3750000000,
    "source_count": 18422,
    "zone_group": "AS65000-CLIENTES",
    "zone_cidr": "203.0.113.0/24"
  }],
  "pagination": { "page": 1, "total": 1 }
}

A resposta acima é abreviada. Mitigações pedidas pela API entram como pending e o core aplica no ciclo seguinte, em cerca de 10 s.

O alerta chega sem ninguém perguntar

Cada Managed Object pode ter os próprios canais. Use a API para enriquecer o evento, não para descobrir o ataque.

  • Syslog e SIEMEventos em CEF, JSON ou RFC 5424, por UDP ou TCP.
  • SNMP Trap v2cPara Zabbix, PRTG, LibreNMS e SolarWinds, com codificação que aguenta rajadas.
  • TelegramAlvo, vetor e ação tomada, direto no grupo do NOC.
  • E-mailPelo seu SMTP, com relatórios agendados e boletins do Analista de Ataques.
  • WebhookEvento attack_detected em JSON para o seu sistema.
  • Slack e TeamsPelo webhook de entrada do canal.
licença e segurança

Sua rede não para porque um servidor de licença caiu

Licenciamento

  • Licença assinada com Ed25519 e verificada offline
  • Heartbeat a cada 24 h e 30 dias de carência sem contato com o servidor
  • Identificação de hardware que resiste a bond, LACP e VLAN
  • O binário é o mesmo em todos os planos; a licença libera os recursos e a quota de roteadores e de nós de limpeza
Último heartbeat confirmadoCarência
dia 0dia 15dia 30

O próprio servidor

  • Os serviços rodam como www-data, sem sudo, só com as capabilities necessárias: CAP_NET_RAWCAP_NET_BIND_SERVICECAP_BPFCAP_NET_ADMIN
  • Credenciais de roteador cifradas com AES-256-GCM; o SSH para a borda é feito em Rust puro
  • Segredo de sessão único gerado em cada instalação
  • Firewall do próprio servidor em nftables, editável pela interface
  • Atualização conferida por sha256sum, preservando configuração e logs, com rollback
hardware

Dimensionamento recomendado

Escolha o tier pelo volume de flows da sua rede. O guia de instalação traz os comandos de cada etapa, do sysctl ao HTTPS.

Requisitos de hardware por tier
Recurso SmallISP regional Medium recomendadoISP / DC médio EnterpriseTier-1 / DC grande
VolumeAté 20K flows/s, redes até ~5 GbpsAté 50K flows/s, redes até ~20 Gbps100K+ flows/s, redes de 40 Gbps+
CPU8 cores (Xeon / EPYC)16 cores (Xeon Scalable / EPYC)32+ cores (EPYC / Xeon Platinum)
RAM32 GB DDR464 GB DDR4 ECC128+ GB DDR4/DDR5 ECC
Disco500 GB NVMe SSD2 TB NVMe SSD4+ TB NVMe (RAID 10)
Rede1 Gbps10 Gbps25 / 40 / 100 Gbps
SistemaDebian 13+ (Trixie)Debian 13+ (Trixie)Debian 13+ (Trixie)
  • eBPF/XDP: o Debian 13 já traz kernel 6.x; use NIC com XDP nativo (Mellanox ou Intel recomendadas).
  • ClickHouse: a partir do tier Medium, separe-o num servidor dedicado.
  • Retenção: dimensione o disco pelo período de retenção desejado (compressão de cerca de 10:1).
  • Alta disponibilidade: no Enterprise, recomenda-se cluster com 2 ou mais nós.

Arquitetura conferida. Vamos para a sua rede?

Mostramos o EdgeWarden rodando com os flows dos seus roteadores, e você recebe uma licença demo com todos os recursos Enterprise por 7 dias.