El problema fundamental que Precursor aborda es la creciente sofisticación de los bots modernos, que pueden eludir las detecciones tradicionales basadas en solicitudes individuales o desafíos puntuales como CAPTCHAs. Estos bots son capaces de ejecutar JavaScript, operar en entornos de navegador reales y pasar verificaciones aisladas, haciendo que la distinción entre tráfico humano y automatizado sea cada vez más difícil. La solución de Precursor se centra en la premisa de que, si bien los bots pueden simular comportamientos humanos a corto plazo, replicar la consistencia y las idiosincrasias del comportamiento humano a lo largo de una sesión completa es significativamente más complejo y costoso.

Históricamente, la detección de bots ha evolucionado desde el análisis de firmas de IP y user-agents, pasando por la limitación de tasas y los desafíos interactivos. Sin embargo, la proliferación de herramientas de automatización como Selenium o Puppeteer, junto con la capacidad de emular entornos de navegador completos, ha erosionado la efectividad de estas técnicas. Precursor representa un avance al cambiar el foco de la detección de eventos discretos a patrones de comportamiento holísticos y continuos, aprovechando la dificultad inherente de los agentes automatizados para simular la "imperfección" y la variabilidad física y cognitiva del comportamiento humano a lo largo del tiempo.

Arquitectura del Sistema

Precursor opera mediante la inyección dinámica de un script JavaScript ligero en las respuestas HTML que pasan por la red de Cloudflare. Este script se ejecuta en el navegador del cliente y adjunta event listeners para capturar señales de interacción, como movimientos del puntero, actividad del teclado, cambios de foco y visibilidad de la página. Los datos de estos eventos se serializan en un formato compacto y se almacenan en un buffer en memoria.

Periódicamente, los datos almacenados en el buffer se envían a la capa de evaluación en los servidores de borde de Cloudflare. En esta capa, los payloads entrantes de Precursor se deserializan en entradas de comportamiento. Un dispatcher ejecuta una serie de evaluadores sobre estos datos. Cada evaluador está diseñado para leer flujos específicos de Precursor y generar señales en un registro de detección compartido. Los evaluadores pueden realizar validaciones cruzadas, como correlacionar la actividad del puntero con la duración de la visibilidad de la página o verificar que los eventos del teclado solo se activan cuando un campo de texto está enfocado. Estas señales se consolidan y se utilizan para ponderar las detecciones.

Finalmente, los datos de Precursor se integran a nivel de sesión. Esto significa que la información se acumula a lo largo de la sesión del usuario, impidiendo que un bot reinicie su firma de comportamiento simplemente actualizando la página. Los metadatos de la sesión se alimentan a capas de detección posteriores para heurísticas adicionales en modo sombra, análisis de sesiones y ajuste del 'bot score' de una sesión. El diseño prioriza la privacidad, capturando solo la información mínima necesaria (ej. ritmo del teclado, no las teclas exactas) y evaluando patrones agregados en lugar de acciones individuales, sin vincular los datos a identidades de usuario o perfiles persistentes.

Flujo de Detección de Comportamiento de Precursor

  1. 1 Navegador Cliente Usuario interactúa con la aplicación web.
  2. 2 Cloudflare Edge (Inyección) Cloudflare inyecta script JS ligero en la respuesta HTML.
  3. 3 Navegador Cliente (Recolección) Script JS adjunta event listeners, captura señales (movimiento, teclado, foco).
  4. 4 Navegador Cliente (Buffer) Eventos serializados y almacenados en buffer en memoria.
  5. 5 Cloudflare Edge (Evaluación) Datos del buffer enviados al edge, deserializados y procesados por evaluadores.
  6. 6 Cloudflare Edge (Registro Detección) Evaluadores generan señales en registro compartido, validación cruzada de datos.
  7. 7 Cloudflare Edge (Integración Sesión) Datos acumulados a nivel de sesión, alimentan capas de detección downstream.
  8. 8 Cloudflare Edge (Bot Score) Ajuste del 'bot score' de la sesión, decisiones de desafío y reglas de seguri...
CapaTecnologíaJustificación
networking Cloudflare Edge Network Punto de inyección del JavaScript de Precursor en las respuestas HTML y capa de procesamiento para la evaluación de señales de comportamiento.
compute JavaScript (cliente) Recolección de señales de interacción del usuario (movimiento del puntero, teclado, foco, visibilidad) en el navegador del cliente.
data-processing Evaluadores de Comportamiento (servidor) Procesamiento y análisis de los flujos de datos de comportamiento para identificar patrones anómalos y generar señales de detección.
storage Memoria en cliente (buffer) Almacenamiento temporal de eventos de interacción antes de ser enviados al servidor de borde.
observability Security Analytics (Cloudflare) Visualización y análisis de datos de sesión para entender el comportamiento típico y detectar desviaciones, complementando las métricas por solicitud.

Trade-offs

Ganancias
  • Precisión en la detección de bots
  • Reducción de fricción para usuarios legítimos
  • Costo de operación para desarrolladores de bots
  • ▲▲ Visibilidad del comportamiento del usuario a lo largo de la sesión
Costes
  • Recursos computacionales en el cliente (aunque ligero)
  • Complejidad del sistema de detección

Fundamentos Teóricos

La aproximación de Precursor a la detección de bots, al enfocarse en patrones de comportamiento a lo largo del tiempo, se alinea con principios de la ciencia de datos y el aprendizaje automático aplicados a la detección de anomalías y el análisis de series temporales. Conceptos como la detección de anomalías en flujos de datos, donde las desviaciones de un comportamiento "normal" o esperado son indicativas de actividad maliciosa, son fundamentales. Trabajos en el campo de la detección de intrusiones (Intrusion Detection Systems - IDS) y la detección de fraude han explorado durante décadas la construcción de perfiles de comportamiento para identificar desviaciones. Por ejemplo, la idea de modelar el comportamiento humano y buscar desviaciones se remonta a los primeros trabajos sobre detección de anomalías, como los de Denning (1987) en "An Intrusion-Detection Model", que sentaron las bases para el análisis de patrones de uso y la identificación de actividades fuera de la norma.

Además, la capacidad de los bots para simular comportamientos humanos a corto plazo, pero fallar en la consistencia a largo plazo, resuena con la teoría de juegos y la adversarial machine learning. Los atacantes (bots) intentan engañar a los defensores (sistemas de detección) adaptando sus estrategias, mientras que los defensores buscan nuevas características o patrones que sean difíciles de falsificar. La dificultad de replicar la "imperfección" humana, como los movimientos del ratón que siguen arcos físicos o la variabilidad en los tiempos de reacción, se relaciona con la biomecánica y la psicología cognitiva, campos que han estudiado cómo los humanos interactúan con interfaces y cómo estas interacciones difieren fundamentalmente de las generadas algorítmicamente. La detección de micro-patrones en movimientos del ratón o pulsaciones de teclado ha sido objeto de investigación en biometría conductual, donde se utilizan modelos estadísticos y de aprendizaje automático para identificar usuarios basándose en sus patrones únicos de interacción.