
Baskerville es una máquina que funciona en la red Deflect y protege los sitios web de los robots acosadores y malintencionados. También es un proyecto de código abierto que, con el tiempo, podrá reducir los malos comportamientos en sus redes. Baskerville responde al tráfico web, analizando las solicitudes en tiempo real y desafiando a quienes actúan de forma sospechosa.
Los enfoques convencionales de aprendizaje automático para la detección de ataques a la red se basan en el reconocimiento de patrones de comportamiento, la construcción y el entrenamiento de un modelo de clasificación. Para ello se necesitan grandes conjuntos de datos etiquetados. Sin embargo, el rápido ritmo y la imprevisibilidad de los ciberataques hacen que este etiquetado sea imposible en tiempo real, además de requerir mucho tiempo después del incidente. Además, un enfoque basado en firmas está naturalmente sesgado hacia incidentes anteriores y puede verse superado por nuevos patrones nunca vistos. Baskerville se basa en un algoritmo de detección de anomalías no supervisado, Isolation Forest, que no requiere un conjunto de datos etiquetados para el entrenamiento. Mejoramos el algoritmo original para que admita características no sólo numéricas, sino también de cadenas de caracteres del propio comportamiento exhibido.
Hemos entrenado a Baskerville para que reconozca qué aspecto tiene el tráfico legítimo en nuestra red y cómo distinguirlo de las peticiones maliciosas que intentan perturbar los sitios web de nuestros clientes. Baskerville ha resultado ser muy útil para mitigar ataques DDoS y para clasificar correctamente otros tipos de comportamiento malicioso. Hace unos meses, Baskerville superó un hito importante: tomar sus propias decisiones sobre el tráfico considerado anómalo. La calidad de estas decisiones (recall) es alta y Baskerville ya ha mitigado con éxito muchos ataques sofisticados de la vida real.

Baskerville también es un canal completo que recibe como entrada registros web entrantes, ya sea de un tema de Kafka, de un archivo de registro sin procesar guardado localmente o de archivos de registro guardados en una instancia de Elasticsearch. Procesa estos registros por lotes, formando conjuntos de solicitudes agrupándolos por host solicitado e IP solicitante. A continuación, extrae características de estos conjuntos de solicitudes y predice si son maliciosas o benignas utilizando un modelo entrenado offline con datos previamente observados y etiquetados. Baskerville guarda todos los datos y resultados en una base de datos Postgres, publicando métricas (por ejemplo, número de registros procesados, porcentaje de predicciones maliciosas, porcentaje de predicciones benignas, velocidad de procesamiento, etc.) para su consumo en herramientas de visualización como Prometheus y Grafana.
