Tarpitting y Throttling: El Arte de Frenar Bots con "Arenas Movedizas"
El problema del bloqueo tradicional
Cuando un servidor empieza a recibir cientos de peticiones por segundo desde una misma dirección IP, el instinto más básico en la arquitectura web es bloquear esa conexión. Devolver un error 429 (Too Many Requests) o simplemente rechazar el acceso parece la solución más lógica para proteger la base de datos.
El Throttling funciona como un reloj de arena: al introducir demoras progresivas, obligamos al bot a esperar y agotar sus recursos sin bloquear a los usuarios reales.
Sin embargo, el bloqueo tradicional tiene dos grandes problemas. Primero, si el usuario es una persona real interactuando muy rápido (por ejemplo, haciendo muchas preguntas seguidas en un chatbot impulsado por IA), un bloqueo total arruina su experiencia.
Segundo, si quien hace las peticiones es un bot malicioso o un scraper intentando robar datos, al recibir el error de bloqueo, su código simplemente cambia de dirección IP y sigue atacando desde otro lado. Le estamos avisando que lo detectamos.
Adaptive Throttling: El freno progresivo
En lugar de usar un muro de concreto, la arquitectura de seguridad moderna utiliza una respuesta elástica conocida como Throttling Adaptativo (freno progresivo).
El concepto es no bloquear, sino demorar la respuesta en base al comportamiento. Tomemos el ejemplo de un usuario en un chatbot:
- Si hace 3 peticiones en un minuto, el servidor responde en 100 milisegundos. Todo fluye.
- Si hace 10 peticiones rápidas, el servidor empieza a introducir un retraso artificial y responde en 2 o 3 segundos.
- Si hace 20 peticiones, la demora sube a 10 segundos por respuesta.
// Lógica conceptual de un freno progresivo
if (peticionesEnUnMinuto > 20) {
await delay(10000); // 10 segundos de penalización
} else if (peticionesEnUnMinuto > 10) {
await delay(2000); // 2 segundos de penalización
}
procesarPeticion();
El usuario real que hizo demasiados clics simplemente nota que la web está "un poco lenta" por un momento, pero no pierde su sesión ni recibe una pantalla de error.
Tarpitting: Las arenas movedizas digitales
Cuando el sistema de seguridad tiene la certeza de que está lidiando con un bot malicioso, se pasa al siguiente nivel: el Tarpitting (hacer un "pozo de brea").
La metáfora visual perfecta son las arenas movedizas. En lugar de cerrarle la puerta en la cara al atacante, el servidor acepta la conexión, pero la mantiene abierta respondiendo byte por byte de forma increíblemente lenta.
Para los bots, el tiempo es dinero. Operan bajo una lógica de rentabilidad: necesitan hacer decenas de miles de peticiones por minuto para encontrar una vulnerabilidad o robar suficiente información. Al dejarlos atrapados en estas arenas movedizas digitales, sus "hilos" de procesamiento se quedan trabados esperando una respuesta que nunca termina de llegar.
Esta técnica no busca ganar por la fuerza bruta, sino por agotamiento económico. Al destruir el rendimiento del atacante y hacerle consumir todos sus recursos computacionales en esperas inútiles, el ataque deja de ser rentable y el bot simplemente desiste.
Implementar estrategias como el Throttling y el Tarpitting demuestra madurez en la arquitectura de un proyecto. Nos permite proteger las bases de datos y los recursos del servidor con inteligencia, asegurando que los usuarios reales disfruten de una experiencia fluida mientras los scripts maliciosos se hunden lentamente en la espera.


