XUT_ / COURSES / PENETRATION TESTER

Vulnerability I - Broken Object Level Authorisation (BOLA)

¿Cómo Ocurre?

Generalmente, los endpoints de las APIs se utilizan para recuperar y manipular información a través de identificadores. BOLA se refiere al Insecure Direct Object Reference (IDOR), que crea un escenario donde el usuario usa la funcionalidad de input y obtiene acceso al recurso que no están autorizados a acceder. En una API, dichos controles son implementados normalmente mediante la programación en modelos (Arquitectura Model-View-Controller) a nivel de código.


Impacto Posible

La ausencia de controles para prevenir el acceso no autorizado a objetos puede llevar a una exfiltración de información y en algunos casos a la pérdida total de control sobre la cuenta. La información de los usuarios o suscriptores juega un papel crítico en la reputación de la marca. Si dicha información se filtra, resultará en una gran pérdida económica.


Ejemplo Práctico

  1. Bob está trabajando como desarrollador API en la compañía MHT y desarrolló un endpoint en /apirule1/users/{ID} que permite a otras aplicaciones o desarrolladores pedir información mandando el ID de un empleado. Vulnerability I - Broken Object Level Authorisation (BOLA)
  2. El problema con el endpoint es que no está validando la llamada para saber si es válida o no y tampoco si la persona haciendo la llamada tiene el permiso para hacerla.
  3. La solución a este problema es bastante sencillo. Bob debe implementar un mecanismo de autorización a través del cual identificar quién puede hacer qué llamadas a la API.
  4. Esto se consigue mediante tokens de autorización o de acceso en el header. Después de esto, sólo introducir un token de autorización válido te dará acceso a los resultados. Vulnerability I - Broken Object Level Authorisation (BOLA)

Medidas de Mitigación

  • Un mecanismo de autorización que confíe en políticas de usuario y jerarquías debería de ser implementado adecuadamente.
  • Controles de acceso estricto para comprobar si el usuario registrado está autorizado para realizar acciones específicas.
  • Promover el uso de valores completamente aleatorios para que sean imposibles de predecir.