Vulnerabilidades Access control

 

www.onlinetis.com

Las vulnerabilidades de control de acceso son fallos de seguridad que permiten a un usuario acceder a información o funcionalidades que no debería poder ver o usar. Estas vulnerabilidades ocurren cuando una aplicación web no restringe correctamente las acciones de un usuario, ya sea permitiendo el acceso a páginas, archivos o funciones que solo deberían estar disponibles para otros usuarios o para un rol superior (como un administrador). 🔐


Tipos de vulnerabilidades de control de acceso

Hay dos categorías principales de fallos de control de acceso:

1. Escalada de privilegios

Esto ocurre cuando un usuario puede obtener privilegios que no le corresponden, ya sea en su propio nivel (escalada horizontal) o a un nivel superior (escalada vertical).

  • Escalada de privilegios vertical: Un usuario estándar puede acceder a funciones de un administrador.

    • Ejemplo: Un usuario con un rol de "cliente" accede a una URL de administración como https://ejemplo.com/admin/deleteUser?id=123 y logra borrar una cuenta de usuario.

  • Escalada de privilegios horizontal: Un usuario puede acceder a los datos o la cuenta de otro usuario con el mismo nivel de permisos.

    • Ejemplo: Un usuario con el ID 101 accede a su perfil en https://ejemplo.com/profile?id=101. El atacante cambia el ID en la URL a 102 (https://ejemplo.com/profile?id=102) y logra ver o modificar el perfil de otro usuario.

2. Inseguridad de referencia directa a objetos (IDOR)

Este es un tipo de escalada horizontal en el que una aplicación expone un identificador interno o una referencia directa a un objeto (como un nombre de archivo, un ID de usuario o un número de documento). Un atacante puede manipular este identificador para acceder a los datos de otro usuario.

  • Ejemplo: Un usuario ve que la URL para descargar una factura es https://ejemplo.com/factura?id=3456. Al cambiar el id a 3457, el atacante descarga la factura de otro cliente, exponiendo información personal.


Prevención

La mitigación de las vulnerabilidades de control de acceso se basa en implementar un control estricto en cada punto de acceso de la aplicación:

  • Implementar controles en el servidor: No confíes en la seguridad del lado del cliente (por ejemplo, ocultar botones de administración con JavaScript). Todas las decisiones de control de acceso deben ser tomadas por el servidor.

  • Validar la autorización: Antes de procesar una petición, el servidor debe verificar si el usuario autenticado tiene el rol y los permisos adecuados para acceder a esa función o dato.

  • Utilizar referencias indirectas: En lugar de exponer directamente los identificadores de los objetos (como los IDs de la base de datos), utiliza referencias indirectas, como un hash o un identificador único aleatorio por sesión, que sea difícil de adivinar o manipular.

Entradas populares de este blog

Ciberseguridad y hacking con Whatweb

Como robar contraseñas haciendo un phishing web

Arsenal software hacking NFC