← projetos

projeto

SOVA — Pipeline de Geolocalização de Tráfego em Larga Escala

em Sage Networks

O que é

Pipeline de processamento de dados de tráfego de rede (NetFlow dumps) em larga escala, usado como insumo para um sistema de detecção e mitigação de ataques DDoS. Para cada registro de tráfego, o sistema resolve a geolocalização dos IPs de origem e destino e entrega dados limpos e estruturados para consumo por outros sistemas.

Desafio

Processar milhões de linhas de dados de tráfego dentro de uma janela de até 5 minutos, sob restrições rígidas de tempo e memória. Além do volume, cada linha exigia um lookup de geolocalização de IP, o que tornava o processamento em Python puro inviável dentro do SLA exigido.

Solução

  • Arquitetura híbrida com Python como orquestrador (controle de fluxo, agregação e formatação dos dados) e Cython para acelerar os trechos críticos — tanto no parsing dos dumps de NetFlow quanto no lookup de geolocalização.
  • Uso da base MaxMind GeoIP para resolver a geolocalização de IPs de origem e destino em escala.
  • Processamento paralelo para lidar com o volume de dados dentro da janela de tempo disponível, mantendo o uso de memória sob controle.
  • Limpeza e padronização dos dados de saída, gerando datasets estruturados usados posteriormente para alimentar presets do sistema anti-DDoS.

Resultado

Pipeline capaz de processar grandes volumes de tráfego de rede dentro do SLA de tempo exigido, fornecendo dados geolocalizados e limpos como base para decisões automatizadas de mitigação de ataques.

Stack técnica

  • Python
  • Cython
  • MaxMind GeoIP
  • SQLite
  • Processamento paralelo / multiprocessing

Destaques técnicos

  • Otimização de trechos críticos com Cython para atingir performance próxima de C em Python
  • Lookup de geolocalização de IP em escala (milhões de registros) dentro de janela de tempo restrita
  • Processamento paralelo para equilibrar velocidade e uso de memória
  • Pipeline de limpeza e padronização de dados para consumo por sistemas downstream de segurança
ZZZZ