Saltar a contenido

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

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