Insecure Access Control
Control de acceso inseguro
Descripción
La aplicación no aplica un control de acceso adecuado, permitiendo que un atacante acceda a datos no autorizados o realice funciones empresariales no autorizadas.
Las vulnerabilidades de control de acceso pueden deberse a:
- Referenciar contenido usando claves primarias y la falta de validación de los permisos de acceso al contenido.
- Una mala configuración de CORS que permite el acceso no autorizado a la API.
- Manipulación de metadatos, como la repetición (replay) o alteración de los tokens de control de acceso.
Recomendación
El control de acceso solo es efectivo si se aplica en código confiable del lado del servidor o en una API serverless, donde el atacante no pueda modificar la comprobación de control de acceso ni los metadatos.
- Excepto para los recursos públicos, deniegue por defecto.
- Implemente los mecanismos de control de acceso una vez y reutilícelos en toda la aplicación, lo que incluye minimizar el uso de CORS.
- Los controles de acceso del modelo deben exigir la propiedad de los registros en lugar de aceptar que el usuario pueda crear, leer, actualizar o eliminar cualquier registro.
- Los modelos de dominio deben hacer cumplir los requisitos de los límites de negocio únicos de la aplicación.
- Desactive el listado de directorios del servidor web y asegúrese de que los metadatos de archivos (por ejemplo, .git) y los archivos de copia de seguridad no estén presentes dentro de las raíces web.
- Registre los fallos de control de acceso y avise a los administradores cuando sea apropiado (por ejemplo, ante fallos repetidos).
- Limite la tasa de acceso a la API y a los controladores para minimizar los daños de las herramientas de ataque automatizadas.
- Los tokens JWT deben ser invalidados en el servidor después del cierre de sesión. Los desarrolladores y el personal de QA deben incluir pruebas unitarias y de integración funcionales para el control de acceso.
Enlaces
- Prevent of Insecure Direct Object reference (OWASP)
- CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')
- CWE-284: Improper Access Control
- CWE-285: Improper Authorization
- CWE-639: Authorization Bypass Through User-Controlled Key
Estándares
- CWE_TOP_25:
- CWE_276
- OWASP_ASVS_L1:
- V4_1_5
- OWASP_ASVS_L2:
- V4_1_5
- V1_4_4
- V1_10_1
- OWASP_ASVS_L3:
- V4_1_5
- V1_4_4
- V1_10_1
- PCI_STANDARDS:
- REQ_2_2
- REQ_6_2
- REQ_6_3
- REQ_6_4
- REQ_7_3
- REQ_11_3
- SOC2_CONTROLS:
- CC_2_1
- CC_4_1
- CC_6_1
- CC_7_1
- CC_7_2
- CC_7_4
- CC_7_5