¿Cómo Ocurre?
La falta de recursos y limitación de frecuencia significa que la API no aplica ninguna restricción en cuanto a la frecuencia de los recursos pedidos, lo que afecta negativamente al rendimiento del servidor API y lleva a DoS. Imagina un escenario donde la API no esté limitada y un intruso pueda subir varios GB a la vez o mandar el número de peticiones por segundo que el quiera.
Impacto Posible
El ataque apunta a la disponibilidad de los sitios. Sin embargo puede perjudicar la reputación de la marca y causar pérdidas monetarias.
Ejemplo Práctico
- La compañía ha comprado un plan de marketing email (20000 al mes) para mandar emails de marketing, recuperación de contraseñas, etc. Bob se ha dado cuenta de que ha desarrollado el login de la API exitosamente pero debe haber una opción de olvidé mi contraseña.
- Ha comenzado a construir el endpoint
/apirule4/sendOTP_vque mandará 4 dígitos al email del usuario. Un usuario autentificado podrá usar el One Time Password (OTP) para recuperar la contraseña.
- El problema aquí es que Bob no ha habilitado la frecuencia de acceso del endpoint. Un actor malicioso puede escribir un script que bruteforcee el endpoint mandando muchos emails en segundos usando el plan recientemente comprado por la compañía.
- Finalmente a Bob se le ha ocurrido una solución inteligente
/apirule4/sendOTP_sy ha activado la limitación de frecuencia de acceso a 2 minutos para volver a pedir otro OTP.
Medidas de Mitigación
- Asegura usar un captcha paras evitar peticiones de scripts automatizados y bots.
- Asegura la limitación de la frecuencia de acceso al endpoint por tiempo y notifica inmediatamente cuando se sobrepase.
- Asegura definir el tamaño máximo de información en todos los parámetros y payloads, como la longitud máxima de string y el máximo número de elementos del array.
