Cloudflare gestiona 32 millones de solicitudes HTTP por segundo. Además, más del 22 % de todos los sitios web con un servidor web conocido por W3Techs utilizan nuestros servicios. Nos encontramos en una situación privilegiada para proteger el tráfico de 1 de cada 5 propiedades de Internet, lo que nos permite identificar nuevas amenazas y hacer un seguimiento de su evolución y cambio.
Nuestro Firewall de aplicaciones web (WAF) es la base de nuestras herramientas de seguridad, y las reglas administradas son una función clave del WAF. Se trata de una colección de reglas creadas por el equipo de analistas de Cloudflare que bloquean las solicitudes cuando muestran patrones de ataques conocidos. Estas reglas administradas funcionan muy bien para los patrones de vectores de ataque establecidos, ya que se han probado minuciosamente para minimizar tanto los falsos negativos (pasar por alto un ataque) como los falsos positivos (encontrar un ataque cuando no lo hay). Entre los factores negativos, las reglas administradas a menudo pasan por alto las variaciones de los ataques (también conocidas como omisiones), ya que las reglas estáticas basadas en expresiones regulares son intrínsecamente sensibles a las variaciones de firma aplicadas, por ejemplo, por técnicas de fuzzing.
Observamos este problema cuando lanzamos las protecciones para Log4j. Durante unos días, después de que se hiciera pública la vulnerabilidad, tuvimos que actualizar constantemente las reglas para que se ajustaran a las variaciones y mutaciones conforme los atacantes intentaban omitir el WAF. Además, la optimización de las reglas requiere una importante intervención del usuario y, por lo general, solo funciona después de que se hayan identificado o incluso explotado las omisiones, lo que hace que la protección sea reactiva en lugar de proactiva.
Hoy estamos encantados de complementar los conjuntos de reglas administradas (como el conjunto de reglas básicas de OWASP y las reglas administradas por Cloudflare) con una nueva herramienta destinada a identificar las omisiones y las cargas útiles maliciosas sin intervención del usuario y antes de que se produzcan. Los clientes pueden ahora acceder a las señales de un modelo de aprendizaje automático entrenado en el tráfico legítimo/malintencionado clasificado por las reglas administradas y los datos aumentados, mejorando así la protección frente a una variedad más amplia de ataques antiguos y nuevos.
Te damos la bienvenida a nuestro nuevo sistema de detección WAF con aprendizaje automático.
Los clientes suscritos a los planes Enterprise, Pro y Business pueden conseguir acceso anticipado al nuevo sistema de detección. Apúntate a la lista de espera si te interesa hacer una prueba. A largo plazo, estará disponible para los clientes de niveles superiores.
El primer WAF de autoaprendizaje
El nuevo sistema de detección complementa los conjuntos de reglas administradas existentes con tres ventajas principales:
Se ejecuta en todo el tráfico. Cada solicitud se puntúa en función de la probabilidad de que contenga un ataque SQLi o XSS, por ejemplo. De este modo, se facilita una nueva experiencia de análisis del WAF que te permite explorar tendencias y patrones en tu tráfico general.
La tasa de detección mejora en función del tráfico anterior y los comentarios recibidos. El modelo se entrena con el tráfico legítimo y malintencionado según las reglas administradas en todo el tráfico de Cloudflare. Los sitios pequeños pueden obtener así el mismo nivel de protección que las propiedades más grandes de Internet.
Nueva definición de rendimiento. El motor de aprendizaje automático identifica las omisiones y anomalías antes de que sean explotadas o identificadas por recursos humanos.
El ingrediente secreto es una combinación de modelos innovadores de aprendizaje automático, entre los que se incluye: un vasto conjunto de datos de entrenamiento desarrollado a partir de los ataques que bloqueamos a diario, técnicas de aumento de datos, el marco adecuado de evaluación y pruebas basado en el principio de las pruebas de comportamiento y una ingeniería de vanguardia que nos permite evaluar cada solicitud con una latencia insignificante.
Nueva experiencia WAF
El nuevo sistema de detección se basa en el paradigma lanzado con Análisis de bots. Siguiendo este enfoque, se evalúa cada solicitud, a la que se asigna una puntuación, independientemente de que adoptemos medidas sobre ella. Dado que puntuamos cada solicitud, los usuarios pueden visualizar cómo evoluciona la puntuación a lo largo del tiempo para la totalidad del tráfico dirigido a su servidor.
Los clientes pueden utilizar el motor de categorización de aprendizaje automático para identificar tendencias en su tráfico
Además, los usuarios pueden visualizar el histograma de cómo se puntuaron las solicitudes para un vector de ataque específico (como SQLi) y encontrar qué puntuación es un buen valor para separar el tráfico legítimo del malintencionado.
La mitigación real se lleva a cabo con reglas del WAF personalizadas en las que se utiliza la puntuación para decidir qué solicitudes se deben bloquear. De este modo, los clientes pueden crear reglas cuya lógica incluye cualquier parámetro de las solicitudes HTTP, incluidos los campos dinámicos rellenados por Cloudflare, como las puntuaciones de los bots.
Regla de firewall creada sobre la puntuación waf ml
Ahora estamos estudiando la posibilidad de ampliar este enfoque para que funcione también para las reglas administradas (conjunto de reglas básicas de OWASP y las reglas administradas por Cloudflare). Los clientes podrán identificar tendencias y crear reglas basadas en patrones que son visibles cuando se observa el tráfico general. En lugar de crear reglas basadas en ensayo y error, se registra el tráfico para validarlas y finalmente aplicar la protección.
¿Cómo funciona?
Las detecciones basadas en el aprendizaje automático complementan los conjuntos de reglas administradas existentes, tales como el conjunto de reglas básicas de OWASP y las reglas administradas por Cloudflare. El sistema se basa en modelos diseñados para identificar variaciones de patrones de ataque y anomalías sin la supervisión directa de los investigadores o del usuario final.
A día de hoy, presentamos puntuaciones para dos vectores de ataque: inyección de código SQL y scripting entre sitios. Los usuarios pueden crear reglas WAF/firewall personalizadas utilizando tres puntuaciones distintas: una puntuación total (cf.waf.ml.score), una para SQLi y otra para XSS (cf.waf.ml.score.sqli, cf.waf.ml.score.xss, respectivamente). Las puntuaciones pueden tener valores entre 1 y 99, siendo 1 el tráfico definitivamente malicioso y 99 el tráfico legítimo.
Histograma de la puntuación de todo el tráfico que llega a una aplicación
A continuación, el modelo se entrena basándose en el tráfico clasificado por las reglas de WAF existentes y funciona sobre una versión transformada de la solicitud original, lo que facilita la identificación de las huellas de los ataques.
Para cada solicitud, el modelo puntúa cada parte de la solicitud de forma independiente, de modo que es posible identificar dónde se han detectado las cargas útiles maliciosas, por ejemplo, en el cuerpo de la solicitud, la URI o los encabezados.
El motor de detección proporciona un desglose de dónde se encontraron las amenazas (por ejemplo, cuerpo, URI, encabezados)
Esto parece fácil sobre el papel, pero hay una serie de desafíos que los ingenieros de Cloudflare han tenido que resolver para llegar hasta aquí. Entre ellos se incluye cómo desarrollar un conjunto de datos fiable, el etiquetado de datos escalable, la selección de la arquitectura del modelo adecuado y el requisito de ejecutar la categorización en cada solicitud procesada por la red global de Cloudflare (es decir, 32 millones de veces por segundo).
En las próximas semanas, el equipo de ingeniería publicará artículos en el blog que te ayudarán a comprender mejor cómo funciona la solución de forma avanzada.
Perspectivas
En los próximos meses, pondremos el nuevo motor de detección a disposición de los clientes y les pediremos opinión sobre su rendimiento. A largo plazo, tenemos previsto ampliar el motor de detección para cubrir todos los vectores de ataque ya identificados por las reglas administradas y utilizar los ataques bloqueados por el modelo de aprendizaje automático para mejorar aún más nuestros conjuntos de reglas administradas.