Blog

Coders Conquer Security OWASP Top 10 API Series - Falta de recursos y limitación de la tasa

Doctor Matias Madou
Publicado el 30 de septiembre de 2020

Con la falta de recursos y la limitación de la tasa, la vulnerabilidad de la API actúa casi exactamente como se describe en el título. Cada API tiene recursos y potencia de cálculo limitados a su disposición, dependiendo de su entorno. Además, la mayoría tiene que atender las peticiones de los usuarios u otros programas que le piden que realice su función deseada. Esta vulnerabilidad se produce cuando llegan demasiadas peticiones al mismo tiempo y la API no tiene suficientes recursos informáticos para atenderlas. La API puede entonces dejar de estar disponible o no responder a nuevas peticiones.

Las APIs se vuelven vulnerables a este problema si sus límites de velocidad o recursos no se establecen correctamente, o si los límites se dejan sin definir en el código. Una API puede entonces sobrecargarse si, por ejemplo, una empresa experimenta un periodo de especial actividad. Pero también es una vulnerabilidad de seguridad, porque los actores de amenazas pueden sobrecargar a propósito las APIs desprotegidas con peticiones para realizar ataques de denegación de servicio (DDoS).  

Por cierto, ¿cómo te va con los desafíos gamificados de la API hasta ahora? Si quieres poner a prueba tus habilidades en el manejo de una vulnerabilidad que limita la velocidad ahora mismo, entra en la arena:

Ahora, profundicemos un poco más.

¿Cuáles son algunos ejemplos de la falta de recursos y la tasa que limita la vulnerabilidad de la API?

Hay dos maneras en que esta vulnerabilidad puede colarse en una API. La primera es cuando un codificador simplemente no define cuáles deben ser las tasas de aceleración para una API. Puede haber una configuración por defecto para las tasas de aceleración en algún lugar de la infraestructura, pero confiar en eso no es una buena política. En su lugar, cada API debería tener sus tasas establecidas individualmente. Esto es especialmente cierto porque las APIs pueden tener funciones muy diferentes así como recursos disponibles.

Por ejemplo, una API interna diseñada para servir a unos pocos usuarios podría tener una tasa de aceleración muy baja y funcionar bien. Pero una API de cara al público que forme parte de un sitio de comercio electrónico en vivo probablemente necesitaría una tasa excepcionalmente alta definida para compensar la posibilidad de un aumento de usuarios simultáneos. En ambos casos, las tasas de estrangulamiento deben definirse en función de las necesidades previstas, el número de usuarios potenciales y la potencia de cálculo disponible.

Puede ser tentador, especialmente con las APIs que probablemente estarán muy ocupadas, establecer las tasas como ilimitadas para tratar de maximizar el rendimiento. Esto podría lograrse con un simple trozo de código (como ejemplo, utilizaremos el framework Django REST de Python):

"DEFAULT_THROTTLE_RATES: {
       "anon: None,
       "user: None

En ese ejemplo, tanto los usuarios anónimos como los conocidos por el sistema pueden ponerse en contacto con la API un número ilimitado de veces sin tener en cuenta el número de solicitudes a lo largo del tiempo. Esto es una mala idea porque no importa cuántos recursos informáticos tenga disponible una API, los atacantes pueden desplegar cosas como botnets para eventualmente ralentizarla o posiblemente dejarla fuera de servicio por completo. Cuando esto ocurra, se negará el acceso a los usuarios válidos y el ataque tendrá éxito.

Eliminación de la falta de recursos y de los problemas de limitación de velocidad

Cada API desplegada por una organización debe tener sus tasas de aceleración definidas en su código. Esto podría incluir cosas como los tiempos de espera de ejecución, la memoria máxima permitida, el número de registros por página que se pueden devolver a un usuario o el número de procesos permitidos dentro de un marco de tiempo definido.

A partir del ejemplo anterior, en lugar de dejar las tasas de estrangulamiento totalmente abiertas, podrían definirse estrictamente con tasas diferentes para los usuarios anónimos y los conocidos.

"DEFAULT_THROTTLE_RATES: {
       "anon: config("THROTTLE_ANON, default=200/hour),
       "user: config("THROTTLE_USER, default=5000/hour)

En el nuevo ejemplo, la API limitaría a los usuarios anónimos a realizar 200 solicitudes por hora. Los usuarios conocidos que ya han sido investigados por el sistema tienen más margen de maniobra, con 5.000 solicitudes por hora. Pero incluso ellos están limitados para evitar una sobrecarga accidental en las horas punta o para compensar si una cuenta de usuario está comprometida y se utiliza para un ataque de denegación de servicio.

Como última buena práctica a tener en cuenta, es una buena idea mostrar una notificación a los usuarios cuando hayan alcanzado los límites de estrangulamiento junto con una explicación de cuándo se restablecerán dichos límites. De esta manera, los usuarios válidos sabrán por qué una aplicación está rechazando sus solicitudes. Esto también puede ser útil si a los usuarios válidos que realizan tareas aprobadas se les niega el acceso a una API, ya que puede indicar al personal de operaciones que es necesario aumentar el estrangulamiento.

Consulte las páginas del Secure Code Warrior páginas del blog para obtener más información sobre esta vulnerabilidad y sobre cómo proteger a su organización y a sus clientes de los estragos de otros fallos de seguridad. También puede probar una demostración de la plataforma de formación Secure Code Warrior para mantener todos sus conocimientos de ciberseguridad perfeccionados y actualizados.

Ver recurso
Ver recurso

Esta vulnerabilidad se produce cuando entran demasiadas solicitudes al mismo tiempo y la API no tiene suficientes recursos informáticos para atenderlas. La API puede entonces dejar de estar disponible o no responder a nuevas peticiones.

¿Quiere saber más?

Matias Madou, Ph.D. es experto en seguridad, investigador y CTO y cofundador de Secure Code Warrior. Matias obtuvo su doctorado en Seguridad de Aplicaciones en la Universidad de Gante, centrándose en soluciones de análisis estático. Más tarde se incorporó a Fortify en EE.UU., donde se dio cuenta de que no bastaba con detectar problemas de código sin ayudar a los desarrolladores a escribir código seguro. Esto le inspiró para desarrollar productos que ayuden a los desarrolladores, alivien la carga de la seguridad y superen las expectativas de los clientes. Cuando no está en su escritorio como parte de Team Awesome, le gusta estar en el escenario presentando en conferencias como RSA Conference, BlackHat y DefCon.

Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.

Reservar una demostración
Compartir en:
Autor
Doctor Matias Madou
Publicado el 30 de septiembre de 2020

Matias Madou, Ph.D. es experto en seguridad, investigador y CTO y cofundador de Secure Code Warrior. Matias obtuvo su doctorado en Seguridad de Aplicaciones en la Universidad de Gante, centrándose en soluciones de análisis estático. Más tarde se incorporó a Fortify en EE.UU., donde se dio cuenta de que no bastaba con detectar problemas de código sin ayudar a los desarrolladores a escribir código seguro. Esto le inspiró para desarrollar productos que ayuden a los desarrolladores, alivien la carga de la seguridad y superen las expectativas de los clientes. Cuando no está en su escritorio como parte de Team Awesome, le gusta estar en el escenario presentando en conferencias como RSA Conference, BlackHat y DefCon.

Matías es un investigador y desarrollador con más de 15 años de experiencia práctica en seguridad de software. Ha desarrollado soluciones para empresas como Fortify Software y su propia empresa Sensei Security. A lo largo de su carrera, Matías ha dirigido múltiples proyectos de investigación sobre seguridad de aplicaciones que han dado lugar a productos comerciales y cuenta con más de 10 patentes en su haber. Cuando está lejos de su escritorio, Matias ha servido como instructor para la formación de seguridad de aplicaciones avanzadas courses y regularmente habla en conferencias mundiales como la Conferencia RSA, Black Hat, DefCon, BSIMM, OWASP AppSec y BruCon.

Matías es doctor en Ingeniería Informática por la Universidad de Gante, donde estudió la seguridad de las aplicaciones mediante la ofuscación de programas para ocultar el funcionamiento interno de una aplicación.

Compartir en:

Con la falta de recursos y la limitación de la tasa, la vulnerabilidad de la API actúa casi exactamente como se describe en el título. Cada API tiene recursos y potencia de cálculo limitados a su disposición, dependiendo de su entorno. Además, la mayoría tiene que atender las peticiones de los usuarios u otros programas que le piden que realice su función deseada. Esta vulnerabilidad se produce cuando llegan demasiadas peticiones al mismo tiempo y la API no tiene suficientes recursos informáticos para atenderlas. La API puede entonces dejar de estar disponible o no responder a nuevas peticiones.

Las APIs se vuelven vulnerables a este problema si sus límites de velocidad o recursos no se establecen correctamente, o si los límites se dejan sin definir en el código. Una API puede entonces sobrecargarse si, por ejemplo, una empresa experimenta un periodo de especial actividad. Pero también es una vulnerabilidad de seguridad, porque los actores de amenazas pueden sobrecargar a propósito las APIs desprotegidas con peticiones para realizar ataques de denegación de servicio (DDoS).  

Por cierto, ¿cómo te va con los desafíos gamificados de la API hasta ahora? Si quieres poner a prueba tus habilidades en el manejo de una vulnerabilidad que limita la velocidad ahora mismo, entra en la arena:

Ahora, profundicemos un poco más.

¿Cuáles son algunos ejemplos de la falta de recursos y la tasa que limita la vulnerabilidad de la API?

Hay dos maneras en que esta vulnerabilidad puede colarse en una API. La primera es cuando un codificador simplemente no define cuáles deben ser las tasas de aceleración para una API. Puede haber una configuración por defecto para las tasas de aceleración en algún lugar de la infraestructura, pero confiar en eso no es una buena política. En su lugar, cada API debería tener sus tasas establecidas individualmente. Esto es especialmente cierto porque las APIs pueden tener funciones muy diferentes así como recursos disponibles.

Por ejemplo, una API interna diseñada para servir a unos pocos usuarios podría tener una tasa de aceleración muy baja y funcionar bien. Pero una API de cara al público que forme parte de un sitio de comercio electrónico en vivo probablemente necesitaría una tasa excepcionalmente alta definida para compensar la posibilidad de un aumento de usuarios simultáneos. En ambos casos, las tasas de estrangulamiento deben definirse en función de las necesidades previstas, el número de usuarios potenciales y la potencia de cálculo disponible.

Puede ser tentador, especialmente con las APIs que probablemente estarán muy ocupadas, establecer las tasas como ilimitadas para tratar de maximizar el rendimiento. Esto podría lograrse con un simple trozo de código (como ejemplo, utilizaremos el framework Django REST de Python):

"DEFAULT_THROTTLE_RATES: {
       "anon: None,
       "user: None

En ese ejemplo, tanto los usuarios anónimos como los conocidos por el sistema pueden ponerse en contacto con la API un número ilimitado de veces sin tener en cuenta el número de solicitudes a lo largo del tiempo. Esto es una mala idea porque no importa cuántos recursos informáticos tenga disponible una API, los atacantes pueden desplegar cosas como botnets para eventualmente ralentizarla o posiblemente dejarla fuera de servicio por completo. Cuando esto ocurra, se negará el acceso a los usuarios válidos y el ataque tendrá éxito.

Eliminación de la falta de recursos y de los problemas de limitación de velocidad

Cada API desplegada por una organización debe tener sus tasas de aceleración definidas en su código. Esto podría incluir cosas como los tiempos de espera de ejecución, la memoria máxima permitida, el número de registros por página que se pueden devolver a un usuario o el número de procesos permitidos dentro de un marco de tiempo definido.

A partir del ejemplo anterior, en lugar de dejar las tasas de estrangulamiento totalmente abiertas, podrían definirse estrictamente con tasas diferentes para los usuarios anónimos y los conocidos.

"DEFAULT_THROTTLE_RATES: {
       "anon: config("THROTTLE_ANON, default=200/hour),
       "user: config("THROTTLE_USER, default=5000/hour)

En el nuevo ejemplo, la API limitaría a los usuarios anónimos a realizar 200 solicitudes por hora. Los usuarios conocidos que ya han sido investigados por el sistema tienen más margen de maniobra, con 5.000 solicitudes por hora. Pero incluso ellos están limitados para evitar una sobrecarga accidental en las horas punta o para compensar si una cuenta de usuario está comprometida y se utiliza para un ataque de denegación de servicio.

Como última buena práctica a tener en cuenta, es una buena idea mostrar una notificación a los usuarios cuando hayan alcanzado los límites de estrangulamiento junto con una explicación de cuándo se restablecerán dichos límites. De esta manera, los usuarios válidos sabrán por qué una aplicación está rechazando sus solicitudes. Esto también puede ser útil si a los usuarios válidos que realizan tareas aprobadas se les niega el acceso a una API, ya que puede indicar al personal de operaciones que es necesario aumentar el estrangulamiento.

Consulte las páginas del Secure Code Warrior páginas del blog para obtener más información sobre esta vulnerabilidad y sobre cómo proteger a su organización y a sus clientes de los estragos de otros fallos de seguridad. También puede probar una demostración de la plataforma de formación Secure Code Warrior para mantener todos sus conocimientos de ciberseguridad perfeccionados y actualizados.

Ver recurso
Ver recurso

Rellene el siguiente formulario para descargar el informe

Nos gustaría contar con su permiso para enviarle información sobre nuestros productos y/o temas relacionados con la codificación segura. Siempre trataremos sus datos personales con el máximo cuidado y nunca los venderemos a otras empresas con fines de marketing.

Enviar
Para enviar el formulario, habilite las cookies "Analytics". Siéntase libre de desactivarlas de nuevo una vez que haya terminado.

Con la falta de recursos y la limitación de la tasa, la vulnerabilidad de la API actúa casi exactamente como se describe en el título. Cada API tiene recursos y potencia de cálculo limitados a su disposición, dependiendo de su entorno. Además, la mayoría tiene que atender las peticiones de los usuarios u otros programas que le piden que realice su función deseada. Esta vulnerabilidad se produce cuando llegan demasiadas peticiones al mismo tiempo y la API no tiene suficientes recursos informáticos para atenderlas. La API puede entonces dejar de estar disponible o no responder a nuevas peticiones.

Las APIs se vuelven vulnerables a este problema si sus límites de velocidad o recursos no se establecen correctamente, o si los límites se dejan sin definir en el código. Una API puede entonces sobrecargarse si, por ejemplo, una empresa experimenta un periodo de especial actividad. Pero también es una vulnerabilidad de seguridad, porque los actores de amenazas pueden sobrecargar a propósito las APIs desprotegidas con peticiones para realizar ataques de denegación de servicio (DDoS).  

Por cierto, ¿cómo te va con los desafíos gamificados de la API hasta ahora? Si quieres poner a prueba tus habilidades en el manejo de una vulnerabilidad que limita la velocidad ahora mismo, entra en la arena:

Ahora, profundicemos un poco más.

¿Cuáles son algunos ejemplos de la falta de recursos y la tasa que limita la vulnerabilidad de la API?

Hay dos maneras en que esta vulnerabilidad puede colarse en una API. La primera es cuando un codificador simplemente no define cuáles deben ser las tasas de aceleración para una API. Puede haber una configuración por defecto para las tasas de aceleración en algún lugar de la infraestructura, pero confiar en eso no es una buena política. En su lugar, cada API debería tener sus tasas establecidas individualmente. Esto es especialmente cierto porque las APIs pueden tener funciones muy diferentes así como recursos disponibles.

Por ejemplo, una API interna diseñada para servir a unos pocos usuarios podría tener una tasa de aceleración muy baja y funcionar bien. Pero una API de cara al público que forme parte de un sitio de comercio electrónico en vivo probablemente necesitaría una tasa excepcionalmente alta definida para compensar la posibilidad de un aumento de usuarios simultáneos. En ambos casos, las tasas de estrangulamiento deben definirse en función de las necesidades previstas, el número de usuarios potenciales y la potencia de cálculo disponible.

Puede ser tentador, especialmente con las APIs que probablemente estarán muy ocupadas, establecer las tasas como ilimitadas para tratar de maximizar el rendimiento. Esto podría lograrse con un simple trozo de código (como ejemplo, utilizaremos el framework Django REST de Python):

"DEFAULT_THROTTLE_RATES: {
       "anon: None,
       "user: None

En ese ejemplo, tanto los usuarios anónimos como los conocidos por el sistema pueden ponerse en contacto con la API un número ilimitado de veces sin tener en cuenta el número de solicitudes a lo largo del tiempo. Esto es una mala idea porque no importa cuántos recursos informáticos tenga disponible una API, los atacantes pueden desplegar cosas como botnets para eventualmente ralentizarla o posiblemente dejarla fuera de servicio por completo. Cuando esto ocurra, se negará el acceso a los usuarios válidos y el ataque tendrá éxito.

Eliminación de la falta de recursos y de los problemas de limitación de velocidad

Cada API desplegada por una organización debe tener sus tasas de aceleración definidas en su código. Esto podría incluir cosas como los tiempos de espera de ejecución, la memoria máxima permitida, el número de registros por página que se pueden devolver a un usuario o el número de procesos permitidos dentro de un marco de tiempo definido.

A partir del ejemplo anterior, en lugar de dejar las tasas de estrangulamiento totalmente abiertas, podrían definirse estrictamente con tasas diferentes para los usuarios anónimos y los conocidos.

"DEFAULT_THROTTLE_RATES: {
       "anon: config("THROTTLE_ANON, default=200/hour),
       "user: config("THROTTLE_USER, default=5000/hour)

En el nuevo ejemplo, la API limitaría a los usuarios anónimos a realizar 200 solicitudes por hora. Los usuarios conocidos que ya han sido investigados por el sistema tienen más margen de maniobra, con 5.000 solicitudes por hora. Pero incluso ellos están limitados para evitar una sobrecarga accidental en las horas punta o para compensar si una cuenta de usuario está comprometida y se utiliza para un ataque de denegación de servicio.

Como última buena práctica a tener en cuenta, es una buena idea mostrar una notificación a los usuarios cuando hayan alcanzado los límites de estrangulamiento junto con una explicación de cuándo se restablecerán dichos límites. De esta manera, los usuarios válidos sabrán por qué una aplicación está rechazando sus solicitudes. Esto también puede ser útil si a los usuarios válidos que realizan tareas aprobadas se les niega el acceso a una API, ya que puede indicar al personal de operaciones que es necesario aumentar el estrangulamiento.

Consulte las páginas del Secure Code Warrior páginas del blog para obtener más información sobre esta vulnerabilidad y sobre cómo proteger a su organización y a sus clientes de los estragos de otros fallos de seguridad. También puede probar una demostración de la plataforma de formación Secure Code Warrior para mantener todos sus conocimientos de ciberseguridad perfeccionados y actualizados.

Acceso a recursos

Haga clic en el siguiente enlace y descargue el PDF de este recurso.

Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.

Ver el informeReservar una demostración
Descargar PDF
Ver recurso
Compartir en:
¿Quiere saber más?

Compartir en:
Autor
Doctor Matias Madou
Publicado el 30 de septiembre de 2020

Matias Madou, Ph.D. es experto en seguridad, investigador y CTO y cofundador de Secure Code Warrior. Matias obtuvo su doctorado en Seguridad de Aplicaciones en la Universidad de Gante, centrándose en soluciones de análisis estático. Más tarde se incorporó a Fortify en EE.UU., donde se dio cuenta de que no bastaba con detectar problemas de código sin ayudar a los desarrolladores a escribir código seguro. Esto le inspiró para desarrollar productos que ayuden a los desarrolladores, alivien la carga de la seguridad y superen las expectativas de los clientes. Cuando no está en su escritorio como parte de Team Awesome, le gusta estar en el escenario presentando en conferencias como RSA Conference, BlackHat y DefCon.

Matías es un investigador y desarrollador con más de 15 años de experiencia práctica en seguridad de software. Ha desarrollado soluciones para empresas como Fortify Software y su propia empresa Sensei Security. A lo largo de su carrera, Matías ha dirigido múltiples proyectos de investigación sobre seguridad de aplicaciones que han dado lugar a productos comerciales y cuenta con más de 10 patentes en su haber. Cuando está lejos de su escritorio, Matias ha servido como instructor para la formación de seguridad de aplicaciones avanzadas courses y regularmente habla en conferencias mundiales como la Conferencia RSA, Black Hat, DefCon, BSIMM, OWASP AppSec y BruCon.

Matías es doctor en Ingeniería Informática por la Universidad de Gante, donde estudió la seguridad de las aplicaciones mediante la ofuscación de programas para ocultar el funcionamiento interno de una aplicación.

Compartir en:

Con la falta de recursos y la limitación de la tasa, la vulnerabilidad de la API actúa casi exactamente como se describe en el título. Cada API tiene recursos y potencia de cálculo limitados a su disposición, dependiendo de su entorno. Además, la mayoría tiene que atender las peticiones de los usuarios u otros programas que le piden que realice su función deseada. Esta vulnerabilidad se produce cuando llegan demasiadas peticiones al mismo tiempo y la API no tiene suficientes recursos informáticos para atenderlas. La API puede entonces dejar de estar disponible o no responder a nuevas peticiones.

Las APIs se vuelven vulnerables a este problema si sus límites de velocidad o recursos no se establecen correctamente, o si los límites se dejan sin definir en el código. Una API puede entonces sobrecargarse si, por ejemplo, una empresa experimenta un periodo de especial actividad. Pero también es una vulnerabilidad de seguridad, porque los actores de amenazas pueden sobrecargar a propósito las APIs desprotegidas con peticiones para realizar ataques de denegación de servicio (DDoS).  

Por cierto, ¿cómo te va con los desafíos gamificados de la API hasta ahora? Si quieres poner a prueba tus habilidades en el manejo de una vulnerabilidad que limita la velocidad ahora mismo, entra en la arena:

Ahora, profundicemos un poco más.

¿Cuáles son algunos ejemplos de la falta de recursos y la tasa que limita la vulnerabilidad de la API?

Hay dos maneras en que esta vulnerabilidad puede colarse en una API. La primera es cuando un codificador simplemente no define cuáles deben ser las tasas de aceleración para una API. Puede haber una configuración por defecto para las tasas de aceleración en algún lugar de la infraestructura, pero confiar en eso no es una buena política. En su lugar, cada API debería tener sus tasas establecidas individualmente. Esto es especialmente cierto porque las APIs pueden tener funciones muy diferentes así como recursos disponibles.

Por ejemplo, una API interna diseñada para servir a unos pocos usuarios podría tener una tasa de aceleración muy baja y funcionar bien. Pero una API de cara al público que forme parte de un sitio de comercio electrónico en vivo probablemente necesitaría una tasa excepcionalmente alta definida para compensar la posibilidad de un aumento de usuarios simultáneos. En ambos casos, las tasas de estrangulamiento deben definirse en función de las necesidades previstas, el número de usuarios potenciales y la potencia de cálculo disponible.

Puede ser tentador, especialmente con las APIs que probablemente estarán muy ocupadas, establecer las tasas como ilimitadas para tratar de maximizar el rendimiento. Esto podría lograrse con un simple trozo de código (como ejemplo, utilizaremos el framework Django REST de Python):

"DEFAULT_THROTTLE_RATES: {
       "anon: None,
       "user: None

En ese ejemplo, tanto los usuarios anónimos como los conocidos por el sistema pueden ponerse en contacto con la API un número ilimitado de veces sin tener en cuenta el número de solicitudes a lo largo del tiempo. Esto es una mala idea porque no importa cuántos recursos informáticos tenga disponible una API, los atacantes pueden desplegar cosas como botnets para eventualmente ralentizarla o posiblemente dejarla fuera de servicio por completo. Cuando esto ocurra, se negará el acceso a los usuarios válidos y el ataque tendrá éxito.

Eliminación de la falta de recursos y de los problemas de limitación de velocidad

Cada API desplegada por una organización debe tener sus tasas de aceleración definidas en su código. Esto podría incluir cosas como los tiempos de espera de ejecución, la memoria máxima permitida, el número de registros por página que se pueden devolver a un usuario o el número de procesos permitidos dentro de un marco de tiempo definido.

A partir del ejemplo anterior, en lugar de dejar las tasas de estrangulamiento totalmente abiertas, podrían definirse estrictamente con tasas diferentes para los usuarios anónimos y los conocidos.

"DEFAULT_THROTTLE_RATES: {
       "anon: config("THROTTLE_ANON, default=200/hour),
       "user: config("THROTTLE_USER, default=5000/hour)

En el nuevo ejemplo, la API limitaría a los usuarios anónimos a realizar 200 solicitudes por hora. Los usuarios conocidos que ya han sido investigados por el sistema tienen más margen de maniobra, con 5.000 solicitudes por hora. Pero incluso ellos están limitados para evitar una sobrecarga accidental en las horas punta o para compensar si una cuenta de usuario está comprometida y se utiliza para un ataque de denegación de servicio.

Como última buena práctica a tener en cuenta, es una buena idea mostrar una notificación a los usuarios cuando hayan alcanzado los límites de estrangulamiento junto con una explicación de cuándo se restablecerán dichos límites. De esta manera, los usuarios válidos sabrán por qué una aplicación está rechazando sus solicitudes. Esto también puede ser útil si a los usuarios válidos que realizan tareas aprobadas se les niega el acceso a una API, ya que puede indicar al personal de operaciones que es necesario aumentar el estrangulamiento.

Consulte las páginas del Secure Code Warrior páginas del blog para obtener más información sobre esta vulnerabilidad y sobre cómo proteger a su organización y a sus clientes de los estragos de otros fallos de seguridad. También puede probar una demostración de la plataforma de formación Secure Code Warrior para mantener todos sus conocimientos de ciberseguridad perfeccionados y actualizados.

Índice

Descargar PDF
Ver recurso
¿Quiere saber más?

Matias Madou, Ph.D. es experto en seguridad, investigador y CTO y cofundador de Secure Code Warrior. Matias obtuvo su doctorado en Seguridad de Aplicaciones en la Universidad de Gante, centrándose en soluciones de análisis estático. Más tarde se incorporó a Fortify en EE.UU., donde se dio cuenta de que no bastaba con detectar problemas de código sin ayudar a los desarrolladores a escribir código seguro. Esto le inspiró para desarrollar productos que ayuden a los desarrolladores, alivien la carga de la seguridad y superen las expectativas de los clientes. Cuando no está en su escritorio como parte de Team Awesome, le gusta estar en el escenario presentando en conferencias como RSA Conference, BlackHat y DefCon.

Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.

Reservar una demostraciónDescargar
Compartir en:
Centro de recursos

Recursos para empezar

Más entradas
Centro de recursos

Recursos para empezar

Más entradas