Loading
_ DESCIFRANDO CONEXIÓN SEGURA...

Autorización detallada en aplicaciones y APIs

5 tareas · 40 min · Principiante

Una API puede autenticar bien a todo el mundo y aun así dejar que cada cual vea lo de otro, use funciones que no le tocan o cambie campos que no debería. La autorización detallada se decide en tres niveles: el objeto, la función y la propiedad. La Librería Hojarasca guarda las reglas de su API de pedidos y un registro de las peticiones de la mañana. Lees las reglas, las cruzas con lo que la API respondió y encuentras dónde el servidor dijo que sí cuando debía decir que no. Todo es lectura de registros inventados.

0 de 5 · 0%

Objetivo de la sala

Una API puede autenticar bien a todo el mundo y aun así dejar que cada cual vea lo de otro, use funciones que no le tocan o cambie campos que no debería. La autorización detallada se decide en tres niveles: el objeto, la función y la propiedad. La Librería Hojarasca guarda las reglas de su API de pedidos y un registro de las peticiones de la mañana. Lees las reglas, las cruzas con lo que la API respondió y encuentras dónde el servidor dijo que sí cuando debía decir que no. Todo es lectura de registros inventados.

La lista OWASP API Security Top 10 (edición 2023) pone en los primeros lugares tres fallos de autorización, uno por cada nivel. La autorización a nivel de objeto (API1, BOLA) falla cuando la API entrega un objeto sin comprobar que pertenece a quien lo pide: basta con que el identificador de la petición apunte a otro objeto. La de nivel de función (API5, BFLA) falla cuando una cuenta llama a una operación que no es de su rol, como una función administrativa. Y la de nivel de propiedad de objeto (API3, BOPLA) falla cuando se leen o se cambian campos que esa cuenta no debería tocar.

Que la persona haya iniciado sesión no resuelve ninguno de los tres: estar autenticada solo dice quién es.

Responde para continuar

¿Qué nivel falla cuando una cuenta de cliente llama a una operación reservada al rol de finanzas?

Abre el laboratorio. La carpeta hojarasca trae reglas_api.txt, con la regla de autorización de cada ruta, y registro_api.txt, con diez peticiones de la mañana. En el registro, la columna «dueño» es el dueño del objeto consultado, y la última es el código de respuesta: 200 significa que el servidor entregó o hizo lo pedido, 403 que lo rechazó.

Compara la cuenta que pide con el dueño del objeto y con la regla de la ruta. Busca la línea en que un cliente leyó un pedido que no era suyo y el servidor contestó 200.

Responde para continuar

¿Qué línea del registro es un cliente leyendo un pedido de otro con respuesta 200?

Los reembolsos mueven dinero y la regla de Hojarasca los reserva a un solo rol. En el registro hay dos reembolsos con respuesta 200: uno lo hizo la cuenta correcta y otro no. Fíjate en el prefijo de la cuenta, que dice su rol, y no solo en que el pedido sea o no suyo: ser dueño de un pedido no da derecho a reembolsarlo.

Responde para continuar

¿Qué cuenta de cliente hizo un reembolso que solo le correspondía a finanzas?

El tercer nivel es el más fácil de pasar por alto, porque la cuenta sí puede modificar su perfil: lo que no puede es modificar cualquier campo. Las reglas de la ruta dicen qué campos admite cada rol y cuál no admite ningún rol. En el registro, la columna «campos» dice qué se intentó cambiar.

Responde para continuar

¿Qué línea del registro cambió un campo que ningún rol podía cambiar y respondió 200?

Una revisión útil termina con una cifra: cuántas respuestas fueron un error de autorización. Recorre las diez líneas y cuenta aquellas con respuesta 200 que, según las reglas de la ruta, debieron ser 403. Tiene que contar las de los tres niveles. No cuentes las que el rol de soporte puede hacer legítimamente, como leer pedidos ajenos.

Responde para continuar

¿Cuántas líneas con respuesta 200 contradicen las reglas de autorización?

Inicia sesión para registrar tus puntos y progreso en el ranking.

Whoami-Labs Pro

Whoami-Labs Pro utiliza cookies

Utilizamos cookies y almacenamiento local para el funcionamiento del sitio, seguridad de sesión y, si lo autorizas, analítica y marketing. Puedes aceptar, rechazar o personalizar. Política de Privacidad