Riesgo A5 en OWASP - Pérdida de control de acceso

Author
By Darío Rivera
Posted on 2021-12-02 in OWASP

En nuestro post Qué es OWASP y por qué todo desarrollador debería conocerlo vimos una introducción a OWASP y por qué es tan importante en el desarrollo de aplicaciones web. Dentro del proyecto TOP TEN, vamos a ahondar un poco en cada una de los diez riesgos de seguridad más críticos en aplicaciones web. Hoy es el turno del Riesgo A5 - Pérdida de control de acceso.

Definición

Este riesgo refiere a cualquier implicación o acto a por fuera de los permisos previstos a un usuario. Es decir, que no se puede tener acceso a funciones o características más allá de las que se debería tener.

Ejemplos

- El acceso a ficheros o páginas privilegiadas cambiando parámetros de la URL del navegador en una aplicación.
- la ejecución de scripts maliciosos producto de funcionalidades de subida de archivos.

Prevención

- Se debe optar siempre como política predeterminada denegar el acceso, con excepción de recursos públicos.
- Se debe asegurar que cada usuario tenga los permisos que debe tener acorde a su rol.
- Debe deshabilitarse el listado de directorios en el servidor web y evitar que copias de seguridad de base de datos, código fuente u otros archivos sensibles puedan ser accedidos de manera pública.
- El equipo de QA y desarrolladores deben incluir pruebas de control de acceso dentro de sus pruebas automatizadas y de integración. 
- En lo posible se debe limitar la tasa de acceso a las API para minimizar la posibilidad de un ataque automatizado.
- Se debe tener un registro de errores de acceso que envíe alertas a los administradores cuando se detecten comportamientos anómalos.
- Se puede utilizar herramientas SAST (Static Application Security Testing) o DAST (Dynamic Application Security Testing) para ayudar a la detección automatizada de este tipo de vulnerabilidades.


Acerca de Darío Rivera

Author

Ingeniero de desarrollo en PlacetoPay , Medellín. Darío ha trabajado por más de 6 años en lenguajes de programación web especialmente en PHP. Creador del microframework DronePHP basado en Zend y Laravel.

Sólo aquellos que han alcanzado el éxito saben que siempre estuvo a un paso del momento en que pensaron renunciar.