OWASP TOP 10: A01 Control de Acceso Roto

César Millavil Arenas
26.07.23 04:31 PM Comment(s)

¿Qué es OWASP TOP 10?

OWASP

OWASP (Open Web Application Security Project) es una comunidad global dedicada a mejorar la seguridad del software. Cada pocos años, OWASP lanza una lista llamada "OWASP Top 10", que destaca las diez vulnerabilidades más críticas y comunes que afectan a las aplicaciones web en ese momento. En el siguiente artículo te explicamos todo sobre OWASP TOP 10.

Imagina un mundo sin puertas cerradas, llaves ni candados. Cualquiera podría entrar en tu hogar o en lugares sensibles sin restricciones, lo que llevaría al caos y la vulnerabilidad. En el mundo digital, un problema similar existe y se conoce como "Broken Access Control" o "Control de Acceso Insuficiente". Este riesgo, que ocupa el cuarto lugar en la lista de OWASP Top 10 2021, representa una amenaza significativa para la seguridad de las aplicaciones web. En este artículo, exploraremos qué es el Broken Access Control, por qué es importante y veremos un ejemplo para entender mejor su impacto.

¿Qué es el Broken Access Control?:

El Broken Access Control es una de las principales vulnerabilidades en aplicaciones web, y sus consecuencias pueden ser devastadoras. Un atacante podría obtener acceso a información confidencial, modificar datos cruciales o incluso ejecutar funciones empresariales sin autorización. Además, esta vulnerabilidad puede permitir que los usuarios malintencionados asuman identidades privilegiadas, poniendo en peligro toda la integridad del sistema.

El Control de Acceso es el mecanismo mediante el cual una aplicación web decide qué acciones o recursos están permitidos para un usuario o grupo de usuarios. Esencialmente, garantiza que cada usuario tenga acceso solo a lo que se le ha autorizado y nada más. El Broken Access Control, sin embargo, ocurre cuando este mecanismo falla y un usuario logra acceder a recursos o realizar acciones para las que no tiene permisos adecuados.

Para ilustrar cómo funciona el Broken Access Control, imaginemos una aplicación bancaria en línea. Cada usuario tiene una cuenta bancaria asociada con un número de cuenta único y tiene acceso solo a su propia cuenta. Sin embargo, debido a una mala implementación del control de acceso, un atacante descubre que puede manipular el parámetro de la URL para acceder a cuentas de otros usuarios.

URL válida para un usuario:

https://examplebank.com/account?acct=12345 (El número de cuenta 12345 pertenece al usuario autenticado

URL manipulada por un atacante:

https://examplebank.com/account?acct=99999 (El número de cuenta 99999 pertenece a otro usuario no autorizado)

En este escenario, y en un simple caso para ejemplificar, el atacante logra acceder a la cuenta de otro usuario, lo que representa un serio problema de Broken Access Control. Con esta vulnerabilidad, el atacante puede realizar transacciones no autorizadas o incluso robar información financiera sensible.

¿Cómo Prevenir el Broken Access Control?

Prevenir el Broken Access Control es esencial para garantizar la seguridad de las aplicaciones web. Algunas medidas clave para prevenir esta vulnerabilidad incluyen:

1. Implementar controles de acceso en el lado del servidor de confianza, donde los atacantes no pueden modificarlos.

2. Seguir el principio de "denegar por defecto", otorgando acceso solo a lo que es estrictamente necesario.

3. Reutilizar mecanismos de control de acceso en toda la aplicación, incluyendo el uso mínimo de CORS (Cross-Origin Resource Sharing).

4. Establecer la propiedad de registros mediante controles de acceso en lugar de permitir que los usuarios tengan acceso indiscriminado a todos los registros.

5. Realizar pruebas de penetración periodicas para verificar el funcionamiento adecuado del control de acceso.

El Broken Access Control es una amenaza real y seria para las aplicaciones web. Garantizar que los usuarios solo tengan acceso a lo que les corresponde es fundamental para proteger la privacidad y la seguridad de los datos. Al seguir buenas prácticas de seguridad, como implementar controles de acceso confiables y realizar pruebas rigurosas, podemos fortalecer nuestras aplicaciones web contra esta vulnerabilidad y ofrecer un ambiente más seguro para los usuarios.

Recuerda, en el mundo digital, una puerta abierta es una invitación para los intrusos. ¡Mantén tus aplicaciones seguras y protegidas!


Escrito Por Giovanni Díaz

Analista de Ciberseguridad

César Millavil Arenas