Aller au contenu

Insecure Access Control

Contrôle d'accès non sécurisé

Description

L'application n'applique pas de contrôle d'accès approprié, ce qui permet à un attaquant d'accéder à des données non autorisées ou d'exécuter des fonctions métier non autorisées.

Les vulnérabilités de contrôle d'accès peuvent être causées par :

  • Le référencement du contenu à l'aide de clés primaires et l'absence de validation des autorisations d'accès au contenu.
  • Une mauvaise configuration CORS autorisant un accès API non autorisé.
  • La manipulation des métadonnées, comme le rejeu (replay) ou l'altération des jetons de contrôle d'accès.

Recommandation

Le contrôle d'accès n'est efficace que s'il est appliqué dans du code côté serveur de confiance ou dans une API serverless, où l'attaquant ne peut pas modifier la vérification du contrôle d'accès ou les métadonnées.

  • À l'exception des ressources publiques, refusez par défaut.
  • Implémentez les mécanismes de contrôle d'accès une seule fois et réutilisez-les dans toute l'application, y compris en minimisant l'utilisation de CORS.
  • Les contrôles d'accès du modèle doivent imposer la propriété des enregistrements plutôt que d'accepter que l'utilisateur puisse créer, lire, mettre à jour ou supprimer n'importe quel enregistrement.
  • Les modèles de domaine doivent imposer des exigences de limites métier propres à l'application.
  • Désactivez le listing des répertoires du serveur web et assurez-vous que les métadonnées de fichiers (par ex. .git) et les fichiers de sauvegarde ne sont pas présents dans les racines web.
  • Journalisez les échecs de contrôle d'accès et alertez les administrateurs le cas échéant (par exemple, lors d'échecs répétés).
  • Limitez le débit d'accès à l'API et aux contrôleurs pour minimiser les dommages causés par les outils d'attaque automatisés.
  • Les jetons JWT doivent être invalidés sur le serveur après la déconnexion. Les développeurs et le personnel QA doivent inclure des tests unitaires et d'intégration fonctionnels pour le contrôle d'accès.

Liens

Normes

  • 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