1. Home
  2. >
  3. Baskerville: perseguindo os bots

Baskerville: perseguindo os bots

WAF WAF

Baskerville é uma máquina que opera na rede Deflect que protege os sites contra bots mal-intencionados e perseguidores. É também um projeto de código aberto que, com o tempo, poderá reduzir o mau comportamento em suas redes. O Baskerville responde ao tráfego da Web, analisando solicitações em tempo real e desafiando aqueles que agem de forma suspeita.

As abordagens convencionais de aprendizado de máquina para a detecção de ataques à rede baseiam-se no reconhecimento de padrões de comportamento, na criação e no treinamento de um modelo de classificação. Isso requer grandes conjuntos de dados rotulados. No entanto, o ritmo acelerado e a imprevisibilidade dos ataques cibernéticos tornam essa rotulagem impossível em tempo real, além de consumir muito tempo após o incidente. Além disso, uma abordagem baseada em assinaturas é naturalmente tendenciosa em relação a incidentes anteriores e pode ser superada por padrões novos, não vistos anteriormente. O Baskerville foi desenvolvido com base em um algoritmo de detecção de anomalias não supervisionado, o Isolation Forest, que não requer um conjunto de dados rotulados para treinamento. Aprimoramos o algoritmo original para oferecer suporte não apenas a recursos numéricos, mas também a recursos de cadeia de caracteres do próprio comportamento exibido.

Treinamos o Baskerville para reconhecer a aparência do tráfego legítimo em nossa rede e como distingui-lo das solicitações mal-intencionadas que tentam interromper os sites de nossos clientes. O Baskerville se mostrou muito útil para atenuar ataques DDoS e para classificar corretamente outros tipos de comportamento mal-intencionado. Há alguns meses, o Baskerville ultrapassou um marco importante: tomar suas próprias decisões sobre o tráfego considerado anômalo. A qualidade dessas decisões (recall) é alta e o Baskerville já mitigou com sucesso muitos ataques sofisticados na vida real.

O Baskerville também é um pipeline completo que recebe como entrada logs da Web, seja de um tópico do Kafka, de um arquivo de log bruto salvo localmente ou de arquivos de log salvos em uma instância do Elasticsearch. Ele processa esses logs em lotes, formando conjuntos de solicitações ao agrupá-los por host solicitado e IP solicitante. Em seguida, extrai recursos para esses conjuntos de solicitações e prevê se são mal-intencionados ou benignos usando um modelo que foi treinado off-line em dados observados e rotulados anteriormente. O Baskerville salva todos os dados e resultados em um banco de dados Postgres, publicando métricas (por exemplo, número de logs processados, porcentagem prevista como maliciosa, porcentagem prevista como benigna, velocidade de processamento etc.) para consumo por ferramentas de visualização como o Prometheus e o painel Grafana.