La limitación de velocidad bloquea a los usuarios, bots o aplicaciones que hacen un uso excesivo o indebido de una propiedad web. La limitación de velocidad puede detener ciertos tipos de ataques de bots.
Después de leer este artículo podrás:
Contenido relacionado
Suscríbete a theNET, el resumen mensual de Cloudflare sobre las ideas más populares de Internet.
Copiar el enlace del artículo
La limitación de velocidad es una estrategia para limitar el tráfico de red. Pone un tope a la frecuencia con la que alguien puede repetir una acción en un determinado marco de tiempo, por ejemplo, intentar iniciar sesión en una cuenta. La limitación de velocidad puede ayudar a detener ciertos tipos de actividades de bots maliciosos. También puede reducir la presión sobre los servidores web. Sin embargo, la limitación de velocidad no es una solución completa para gestionar la actividad de los bots.
La limitación de velocidad se suele emplear para impedir que los bots perjudiciales afecten de forma negativa a un sitio web o aplicación. Entre los ataques de bots que la limitación de velocidad puede ayudar a mitigar se incluyen:
La limitación de velocidad también protege contra el uso excesivo de la API, lo cual no es necesariamente malicioso ni se debe a la actividad de los bots, pero que conviene prevenir.
La limitación de velocidad se ejecuta dentro de una aplicación, en lugar de ejecutarse en el propio servidor web. Normalmente, la limitación de velocidad se basa en el seguimiento de las direcciones IP de las que proceden las solicitudes y en el seguimiento del tiempo que transcurre entre cada solicitud. La dirección IP es la principal forma en que una aplicación identifica quién o qué está realizando la solicitud.
Una solución de limitación de velocidad mide la cantidad de tiempo entre cada solicitud de cada dirección IP, y también mide el número de solicitudes en un período específico. Si hay demasiadas solicitudes de una sola IP en un período determinado, la solución de limitación de velocidad no atenderá las solicitudes de la dirección IP durante un tiempo determinado.
En esencia, una aplicación con límite de velocidad dirá, "Oye, baja la velocidad," a los usuarios únicos que están realizando solicitudes a mucha velocidad. Esto es comparable a un agente de policía que para a un conductor por exceder el límite de velocidad establecido en esa carretera, o a un padre que le dice a su hijo que no coma tantos caramelos en tan poco tiempo.
Una dirección IP es el identificador numérico (o, en IPv6, alfanumérico) único asignado a cualquier dispositivo que se conecte a Internet. Cada dispositivo tendrá su propia dirección IP mientras esté conectado, y al igual que una dirección física o un número de teléfono, esto permite que los dispositivos puedan enviar mensajes de ida y vuelta. Una dirección tradicional (IPv4) tiene el siguiente aspecto 198.41.129.1
Para los dispositivos de los usuarios, las direcciones IP no suelen ser permanentes, ya que no hay suficientes direcciones IP para todos en IPv4. En su lugar, el proveedor de acceso a Internet (ISP) del usuario asigna dinámicamente las direcciones según se van conectando los dispositivos a Internet.
Una solución de limitación de velocidad puede utilizar una dirección IP como base para determinar qué dispositivos están realizando demasiadas solicitudes y deben bloquearse temporalmente.
A los usuarios se les puede bloquear el acceso a una cuenta si intentan iniciar sesión sin éxito demasiadas veces en un corto período de tiempo. Esto sucede cuando un sitio web tiene implementada la limitación de velocidad en el inicio de sesión.
Esta precaución existe, no para frustrar a los usuarios que han olvidado sus contraseñas, sino para bloquear los ataques de fuerza bruta en los que un bot prueba miles de contraseñas diferentes para adivinarla y entrar en la cuenta. Si un bot solo puede hacer 3 o 4 intentos por hora, es estadísticamente improbable que un ataque de este tipo tenga éxito.
La limitación de la velocidad en una página de inicio de sesión puede aplicarse en función de la dirección IP del usuario que intenta iniciar la sesión, o en función del nombre de usuario. Lo ideal sería utilizar una combinación de ambos, porque:
Ya que la limitación de velocidad es necesaria para evitar estos ataques de fuerza bruta, los usuarios que hayan olvidado sus contraseñas pueden verse sometidos a esta limitación junto con los bots maliciosos. Es probable que los usuarios acaben viendo un mensaje de "demasiados intentos de inicio de sesión" y se les pida que lo intenten de nuevo en un plazo determinado, o se les avise de que tienen el acceso bloqueado a sus cuentas.
Una API, o interfaz de programación de aplicaciones, es una forma de solicitar la funcionalidad de un programa. Las API son invisibles para la mayoría de los usuarios, pero son extremadamente importantes para que las aplicaciones funcionen como es debido. Por ejemplo, el sitio web de un restaurante podría depender de la API de un servicio de reserva de mesas para que los clientes puedan hacer reservas en línea. O una plataforma de comercio electrónico podría integrar la API de una empresa de transporte para ofrecer a los usuarios costes de envío precisos.
Cada vez que una API responde a una solicitud, el propietario de esa API tiene que pagar por el tiempo de computación: los recursos del servidor necesarios para que el código se ejecute y produzca una respuesta a esa solicitud de la API. En el ejemplo anterior, la integración de la API del restaurante hará que el servicio de reserva de mesas pague por el tiempo de computación cada vez que un cliente del restaurante realice una reserva.
Por este motivo, cualquier aplicación o servicio que ofrezca una API para desarrolladores tendrá limitaciones respecto a cuántas llamadas API pueden realizarse por hora o día por cada usuario en concreto. De este modo, los desarrolladores terceros no sobreutilizan una API.
La limitación de velocidad también puede motivar a los desarrolladores a pagar más por aprovechar la API: lo habitual que es que solo puedan hacer un número determinado de llamadas a la API antes de pagar más por el servicio de la API.
La limitación de la velocidad de las API también ayuda en la protección contra los ataques de bots maliciosos. Un atacante puede utilizar bots para hacer tantas llamadas repetidas a una API que provoque que el servicio no esté disponible para nadie más, o que directamente deje de funcionar. Esto es un tipo de ataque DoS o DDoS.
La limitación de velocidad de las plataformas de medios sociales a menudo es similar a la limitación de velocidad de API. Cualquier aplicación de terceros que integre X (anteriormente conocido como Twitter), por ejemplo, solo puede actualizarse para buscar nuevas publicaciones o mensajes un cierto número de veces por hora. Instagram tiene límites similares para las aplicaciones de terceros. Es por este motivo que los usuarios pueden encontrarse ocasionalmente con mensajes de "límite de ratio superado".
La limitación de velocidad es bastante unidimensional: aunque es útil, solo puede detener tipos muy específicos de actividad de bots. Además, la limitación de velocidad no es solo para los bots, sino para limitar el uso en general. Por ejemplo, la limitación de velocidad de Cloudflare protege ante los ataques DDoS, el abuso de la API y los ataques de fuerza bruta, pero no mitiga necesariamente otras formas de actividad de bots maliciosos, y no distingue entre bots beneficiosos y perjudiciales.
En cambio, la gestión de bots puede detectar de forma holística la actividad de los bots en general. Por ejemplo, Cloudflare Bot Management utiliza el aprendizaje automático para identificar posibles bots, lo que le permite bloquear una mayor variedad de ataques de bots (como el relleno de credenciales, las publicaciones de spam, acumulación de inventario, etc.). Las organizaciones más pequeñas también pueden bloquear los bots perjudiciales con Super Bot Fight Mode, disponible en los planes Pro y Business de Cloudflare.