logo

Noob Hacker

Flashcard A01:2021-Broken Access Control

Dernière mise à jour le 20 novembre 2023 par Eri Schön

Flashcard A01:2021-Broken Access Control
  • Qu’est-ce que le contrôle d’accès ?
  • Quels sont les 4 modèles de contrôle d’accès ?
  • Quels sont les 3 contrôles d’accès courant ?
  • Donner 1 exemple de vulnérabilité par type de contrôle d’accès
  • Quels sont les impacts principaux de cette vulnérabilité ?
  • Comment peut-on prévenir le Broken Access Control ?

Contrôle d’accès

  • Le contrôle d’accès représente les contraintes sur QUI ou QUOI est autorisé à effectuer des actions ou à accèder aux ressources. Dans le cadre d’une application le contrôle d’accès est dépendant de :
    • L’authentification
    • La gestion des sessions
    • Le contrôle d’accès

Modèles de contrôle d’accès

  • Les 4 modèles de contrôle d’accès sont :
    • DAC - Discretionary Access Control (Modèle discrétionnaire) : dans ce modèle, le propriétaire d’une ressource (comme un fichier) décide qui peut y accéder et comment (lecture, écriture, exécution).
    • MAC - Mandatory Access Control (Modèle obligatoire) : Les accès sont contrôlés par un ensemble strict de règles imposées par le système, pas par les utilisateurs individuels.
    • RBAC - Role-Based Access Control (Modèle basé sur les rôles) ****: Les permissions ne sont pas assignées directement aux utilisateurs, mais plutôt à des rôles, et les utilisateurs sont ensuite affectés à ces rôles.
    • ABAC - Attribute-Based Access Control (Modèle basé sur les attributs) : Les décisions d’accès sont prises en fonction de politiques, de règles ou de relations qui prennent en compte les attributs de l’utilisateur, de la ressource et de l’environnement.

Types de contrôle d’accès

  • Les 3 types de contrôle d’accès sont :
    • Vertical access controls (contrôle d’accès vertical) : Les contrôles d’accès verticaux sont des mécanismes qui restreignent l’accès aux fonctionnalités sensibles à des types spécifiques d’utilisateurs. Par exemple la création d’un compte ne sera accessible qu’à un administrateur.
    • Horizontal access controls (contrôle d’accès horizontal) : Les contrôles d’accès horizontaux sont des mécanismes qui restreignent l’accès aux ressources à des utilisateurs spécifiques. Par exemple la visualisation d’un solde bancaire ne sera autorisé qu’au propriétaire du compte.
    • Context-dependant access controls (contrôle d’accès ) : contrôle d’accès où les décisions d’autorisation sont prises en fonction du contexte de la demande d’accès. Par exemple le paiement ne peut se faire qu’après la création d’un panier.

Exemples

  • Des exemples de vulnérabilités :
    • Vertical access control : accès d’un utilisateur au compte d’un administrateur
    • Horizontal access control : visualisation des informations personnelles d’un utilisateur par un autre utilisateur.
    • Context-dependant access control : accèder à la fin d’un funnel sans être passé par les étapes précédentes.

Impacts

  • Les impacts incluent :
    • les fuites de données
    • la modification non autorisée de données
    • l’exécution d’actions sans autorisation.

Prévention

  • Pour prévenir les Broken Access Control :
    • Ne jamais compter uniquement sur la dissimulation pour le contrôle d’accès.
    • Sauf si une ressource est destinée à être accessible au public, refuser l’accès par défaut.
    • Dans la mesure du possible, utiliser un mécanisme unique à l’échelle de l’application pour appliquer les contrôles d’accès.
    • Au niveau du code, obliger les développeurs à déclarer l’accès autorisé pour chaque ressource et à refuser l’accès par défaut.
    • Auditer et tester minutieusement les contrôles d’accès pour vous assurer qu’ils fonctionnent comme prévu.

Resources

PortSwigger : Access control vulnerabilities and privilege escalation

Udemy : Learn Bug Bounty Hunting & Web Security Testing From Scratch

Udemy : Web Security & Bug Bounty: Learn Penetration Testing in 2023