Django REST es un Framework que permite el fácil desarrollo de una API REST, estas APIs son utilizadas para obtener información de diferentes fuentes, dichas APIs están desarrolladas en el lenguaje de programación Python, el cual es un lenguaje de programación de alto nivel que se utiliza para desarrollar aplicaciones de todo tipo, se trata de un lenguaje interpretado, es decir, que no es necesario compilarlo para ejecutar las aplicaciones escritas en Python, sino que se ejecutan directamente por el ordenador utilizando un programa denominado interpretador, por lo que no es necesario traducirlo a lenguaje máquina. Django es utilizado por Mozilla, Red Hat y Heroku, entre otros miles de aplicaciones.

ATAQUES DDOS CONTRA MILES DE APLICACIONES
Una vulnerabilidad crítica de falsificación de IP en django rest habría permitido a los atacantes evadir la función de limitación de velocidad, las limitaciones indican un estado temporal y se utilizan para controlar la tasa de solicitudes que los clientes pueden realizar a una API, pensada para proteger las aplicaciones web contra solicitudes masivas, un atacante puede usar bots para hacer tantas llamadas repetidas a una API que hace que el servicio no esté disponible para nadie más o colapsa el servicio por completo generando una denegación de servicio DoS

Esta característica está diseñada para proteger las apliaciones contra actividades de bots, ataques de denegación de servicio DoS, ataques de fuerza bruta e intentos de restablecimiento de contraseñas, este conjunto de herramientas es utilizadas por Mozilla, Red Hat y Heroku entre otros miles de aplicaciones que hay en servicio en el mercado

Solicitudes

Django REST usa direcciones IP para identificar clientes y aplicar los límites de solicitud de aceleración protegiendo las aplicaciones web de ataques de DoS. Según el reporte de Hosein Vita, los clientes pueden engañar al servidor y enmascarar su dirección IP cambiando los encabezados de sus solicitudes: “Django usa WSGI para sus comunicaciones con la aplicación web, además del encabezado HTTP X-Forwarded-For y la variable WSGI REMOTE_ADDR para identificar de manera única las direcciones IP de los clientes para la limitación”, señala el experto. Si una solicitud web incluye el encabezado X-Forwarded-For, el servidor considerará que esa es la dirección IP del cliente; al usar diferentes valores para X Forwarded-For, fue posible enviar solicitudes ilimitadas con el mismo cliente, cabe resaltar que los actores de amenazas no requieren de un acceso especial al servidor afectado, basta con identificar el sitio web vulnerable para la explotación.

Encabezados

Conclusión
Se recomienda cambiar los métodos de prevención y limitación de velocidad con otras técnicas de autenticación más avanzadas, para prevenir futuros ataques de denegación de servicio DoS y fuerza bruta.

Autenticación

Recomendaciones

  • Configurar métodos de autenticación avanzados combinado con técnicas de limitación de velocidad.
  • Implementar métodos de autenticación
  • Autentificación básica.
  • Autentificación basada en token.
  • Autentificación basada en clave API.
  • OAuth 2.0 (Autorización abierta).
  • Autenticación

Para más información puede consultar las siguientes fuentes asociadas a la noticia: