0

Detección de Bots y Automatización Maliciosa Mediante Análisis de Comportamiento HTTP

Actualmente, la mayoría de los ataques dirigidos contra aplicaciones web ya no son ejecutados manualmente por un atacante. En su lugar, son realizados por bots automatizados capaces de generar miles de solicitudes por minuto, distribuir el tráfico entre múltiples direcciones IP y adaptarse a los mecanismos tradicionales de defensa.

Los ataques automatizados representan una de las principales amenazas para cualquier servicio expuesto a Internet. Desde intentos masivos de fuerza bruta hasta el scraping de información, fraude de cuentas, creación automática de usuarios y explotación de vulnerabilidades, los bots son responsables de una parte significativa del tráfico HTTP que reciben los servidores.

Uno de los mayores desafíos para los equipos de ciberseguridad consiste en distinguir el tráfico generado por usuarios legítimos del producido por herramientas automatizadas. Durante muchos años, esta tarea se abordó mediante listas negras de direcciones IP, bloqueo por User-Agent o el uso de CAPTCHA. Sin embargo, estas técnicas resultan cada vez menos efectivas frente a bots modernos que utilizan navegadores reales, proxies residenciales e incluso inteligencia artificial para simular el comportamiento humano.

La respuesta actual consiste en analizar el comportamiento HTTP del cliente, identificando patrones que difícilmente pueden ser replicados por una persona.

¿Qué es un bot?

Un bot es un programa diseñado para ejecutar tareas de manera automática mediante solicitudes HTTP o HTTPS.

No todos los bots son maliciosos.

Bots legítimos

Ejemplos:

  • Googlebot
  • Bingbot
  • UptimeRobot
  • Monitores de disponibilidad
  • Crawlers académicos

Estos respetan normalmente el archivo robots.txt, identifican claramente su User-Agent y generan un tráfico relativamente predecible.

Bots maliciosos

Entre los más comunes se encuentran:

  • Credential Stuffing
  • Fuerza bruta
  • Carding
  • Scraping masivo
  • Enumeración de usuarios
  • Spam automatizado
  • Compra automática de productos (Sneaker Bots)
  • DDoS HTTP Layer 7
  • Ataques contra APIs REST

Estos buscan ocultar su identidad y parecer usuarios reales.

¿Por qué el bloqueo por IP ya no funciona?

Hace algunos años bastaba con bloquear una dirección IP.

Actualmente un atacante puede utilizar:

  • VPN comerciales
  • Proxies residenciales
  • Botnets
  • Redes TOR
  • Cloud Providers
  • Miles de dispositivos comprometidos

Es común observar un ataque distribuido entre más de 20 000 IP diferentes.

Cada IP genera únicamente unas pocas solicitudes, evitando superar los límites tradicionales.

El problema del User-Agent

Muchos administradores bloquean User-Agent conocidos como:

  • curl
  • python-requests
  • wget
  • Go-http-client
  • Java
  • libwww

Sin embargo un bot puede enviar simplemente:

  • Mozilla/5.0
  • Chrome/139
  • Safari
  • Edge
  • Firefox

En menos de una línea de código.

Por ello el User-Agent únicamente aporta contexto, pero nunca debe utilizarse como único indicador.

El enfoque moderno: Behavioral Analysis

En lugar de preguntarse:

¿Quién es el cliente?

La pregunta correcta es:

¿Cómo se comporta?

Ese cambio de enfoque permite detectar automatización incluso cuando el atacante utiliza un navegador legítimo.

Variables de comportamiento HTTP

Existen decenas de variables útiles.

Las más utilizadas son las siguientes.

1. Tiempo entre solicitudes

Un ser humano presenta pausas variables.

Ejemplo:

  • 2.3 s
  • 1.8 s
  • 5.1 s
  • 0.9 s
  • 3.7 s

Un bot suele generar intervalos extremadamente constantes.

  • 500 ms
  • 500 ms
  • 500 ms
  • 500 ms
  • 500 ms

La baja desviación estándar suele ser un excelente indicador.

2. Velocidad de navegación

Una persona:

Inicio

Categoría

Producto

Detalle

Carrito

Un scraper:

  • Producto 1
  • Producto 2
  • Producto 3
  • Producto 4
  • Producto 5

Sin interacción lógica.


3. Profundidad de navegación

Los usuarios exploran.

Los bots recorren directorios completos.

Ejemplo:

/product?id=1

/product?id=2

/product?id=3

/product?id=100000


4. Tasa de errores

Muchos bots producen:

404

403

400

405

Porque prueban múltiples rutas.

Los usuarios normales raramente generan cientos de errores HTTP.

5. Distribución temporal

Un humano suele tener actividad:

Click

Leer

Scroll

Click

Los bots mantienen un ritmo continuo durante horas.

6. Encabezados HTTP

Los navegadores modernos incluyen numerosos encabezados.

Ejemplo:

Accept

Accept-Language

Accept-Encoding

Sec-Fetch-Site

Sec-Fetch-Mode

Sec-Fetch-Dest

Upgrade-Insecure-Requests

Cache-Control

Muchas herramientas automatizadas omiten algunos de ellos.

Una combinación inusual puede indicar automatización.

7. Consistencia del navegador

Ejemplo sospechoso:

User-Agent:

Chrome 139

pero

Accept-Language:

vacío

Sec-Fetch:

ausente

Accept-Encoding:

identity

La combinación completa resulta inconsistente.

8. Cookies

Los usuarios mantienen:

  • Cookies
  • Tokens
  • Sesiones

Los bots muchas veces no las almacenan.

9. JavaScript

Muchos bots no ejecutan JavaScript.

Por ejemplo:

  • no generan eventos
  • no actualizan cookies
  • no realizan llamadas AJAX

Esto constituye un indicador muy valioso.

10. Movimiento del mouse

Aunque el movimiento del mouse no forma parte del protocolo HTTP, puede enviarse al servidor mediante JavaScript.

Los movimientos humanos presentan:

  • aceleración
  • desaceleración
  • curvas
  • microcorrecciones
  • pausas

Los bots generan trayectorias:

A —————- B

Totalmente lineales.

Fingerprinting HTTP

Además del comportamiento, es posible construir una «huella digital» del cliente.

Puede incluir:

  • Orden de encabezados HTTP
  • TLS Fingerprint
  • JA3
  • JA4
  • HTTP2 Fingerprint
  • Prioridades HTTP/2
  • Versiones TLS
  • ALPN
  • Cipher Suites

Aunque el atacante cambie de IP, la huella suele mantenerse estable.

Correlación de eventos

Una única solicitud rara vez es suficiente.

Lo correcto consiste en analizar toda la sesión.

Ejemplo:

IP nueva

100 solicitudes

Sin imágenes

Sin CSS

Sin JavaScript

Sin cookies

Intervalo constante

Enumeración de IDs

La combinación produce una alta confianza de automatización.

Sistema de puntuación (Bot Score)

Muchos WAF modernos asignan una puntuación.

Ejemplo:

IndicadorPuntaje
User-Agent sospechoso5
Sin Cookies10
Intervalo constante15
Sin JavaScript20
Enumeración20
Sin recursos estáticos15
Headers incompletos10
JA3 sospechoso20

Resultado:

Bot Score = 115

Reglas posibles:

0–30

Humano

31–60

Sospechoso

61–100

Alto riesgo

100+

Bloquear

Machine Learning

Los sistemas más avanzados utilizan modelos que aprenden patrones normales.

Variables:

  • Requests por minuto
  • Tiempo entre clics
  • Longitud de URLs
  • Métodos HTTP
  • Número de recursos
  • Navegación
  • Cookies
  • Headers
  • Duración de sesión

Algoritmos comunes:

  • Random Forest
  • XGBoost
  • Isolation Forest
  • Redes Neuronales
  • Autoencoders

Estos modelos identifican anomalías que no son evidentes mediante reglas estáticas.

Implementación en un WAF

Un WAF moderno puede combinar múltiples fuentes de información para calcular un Bot Score en tiempo real:

  1. Inspección de solicitudes HTTP: análisis de métodos, rutas, parámetros y encabezados.
  2. Seguimiento de sesiones: correlación de cookies, tokens y duración de la navegación.
  3. Análisis de comportamiento: frecuencia de solicitudes, secuencia de navegación y tiempos entre eventos.
  4. Fingerprinting: identificación de características únicas del cliente (TLS, HTTP/2, orden de encabezados).
  5. Inteligencia de amenazas: consulta de listas de IP maliciosas, ASN de alto riesgo y reputación.
  6. Decisión: permitir, registrar, limitar la velocidad (Rate Limit), presentar un desafío JavaScript, requerir CAPTCHA o bloquear la conexión.

Este enfoque multicapa reduce considerablemente los falsos positivos y dificulta la evasión por parte de atacantes.

Recomendaciones para Administradores

Para mejorar la detección de bots en aplicaciones web:

  • No confíe únicamente en la dirección IP o el User-Agent.
  • Analice el comportamiento completo de la sesión.
  • Correlacione múltiples indicadores antes de tomar una decisión.
  • Mantenga registros HTTP detallados y centralizados.
  • Utilice desafíos JavaScript antes de aplicar CAPTCHA para minimizar el impacto en usuarios legítimos.
  • Implemente límites de velocidad adaptativos según el comportamiento observado y no solo por IP.
  • Supervise continuamente los indicadores y ajuste las reglas de detección según la evolución de las amenazas.
  • Incorpore inteligencia de amenazas para enriquecer la evaluación de riesgo.
  • Revise periódicamente los falsos positivos para evitar afectar la experiencia de usuarios reales.

Conclusión

La detección de bots ha evolucionado desde mecanismos simples basados en direcciones IP hacia modelos que analizan el comportamiento integral de cada cliente. En un escenario donde los atacantes utilizan navegadores reales, proxies residenciales y herramientas capaces de imitar el tráfico humano, los indicadores aislados han perdido efectividad.

El análisis de comportamiento HTTP, combinado con técnicas de fingerprinting, correlación de eventos, sistemas de puntuación e inteligencia de amenazas, permite identificar con mayor precisión la automatización maliciosa sin perjudicar significativamente a los usuarios legítimos. La adopción de estos enfoques representa un componente esencial de las estrategias modernas de protección de aplicaciones web y constituye una capacidad clave para cualquier organización que busque fortalecer su postura de ciberseguridad frente a amenazas automatizadas.

calivent

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *