Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

API1 BOLA/IDOR

devsecops

Définition

API1 BOLA (Broken Object Level Authorization), également connu sous le nom d'IDOR (Insecure Direct Object Reference), est le risque numéro un de l'OWASP API Security Top 10 et l'une des vulnérabilités les plus exploitées dans les APIs REST modernes. Cette vulnérabilité survient quand une API expose des endpoints qui acceptent des identifiants d'objets (IDs) sans vérifier que l'utilisateur authentifié est autorisé à accéder à l'objet spécifique demandé. Un exemple classique : une API e-commerce expose GET /api/v1/orders/{orderId}. L'utilisateur Alice, authentifiée, peut accéder à sa commande via GET /api/v1/orders/1001. Sans contrôle BOLA, elle peut aussi accéder à GET /api/v1/orders/1002 (commande de Bob) simplement en incrémentant l'identifiant. L'API vérifie que la requête est authentifiée mais pas que l'objet demandé appartient à l'utilisateur authentifié. Les causes racines de BOLA sont multiples. Le manque de contrôle d'autorisation au niveau objet (les développeurs vérifient l'authentification mais oublient l'autorisation fine), l'utilisation d'identifiants séquentiels prévisibles facilitant la manipulation, la confiance excessive dans les données côté client (IDs dans les paramètres de requête ou le corps), et l'absence de tests de sécurité couvrant les scénarios d'accès croisé entre utilisateurs. La prévention de BOLA nécessite une vérification systématique d'autorisation à chaque accès à un objet : "L'utilisateur courant possède-t-il ou est-il autorisé à accéder à l'objet {id} ?". Cette vérification doit se faire côté serveur, pas côté client. Des implémentations défensives incluent : l'utilisation d'UUIDs v4 aléatoires plutôt que d'IDs séquentiels (réduit la facilité d'énumération mais ne remplace pas le contrôle d'autorisation), les Resource-Based Access Control (RBAC au niveau objet), les ORM avec scopes utilisateur automatiques (Pundit en Ruby, Attribute-Based Access Control). La détection de BOLA par les outils automatisés est limitée car elle nécessite de comprendre la sémantique de l'application (quel objet appartient à quel utilisateur). Les tests manuels (swapping IDs between two authenticated users) et les tests de sécurité spécifiques aux APIs (outils comme Portswigger, APIsecurity.io) sont plus efficaces.

Détecter BOLA : tests manuels et automatisés

La détection de BOLA nécessite des tests avec deux comptes utilisateur distincts : l'utilisateur A effectue une action créant un objet (commande, profil, document), l'utilisateur B tente d'accéder à cet objet via son ID. Si B peut lire, modifier ou supprimer l'objet de A, BOLA est confirmé. Les scanners automatiques ont une faible couverture de BOLA car ils nécessitent cette connaissance sémantique du contexte. Des outils comme OWASP ZAP avec scripts personnalisés ou Burp Suite Pro avec des macros peuvent semi-automatiser ces tests.

Remédiation : contrôle d'autorisation systématique

La remédiation de BOLA s'implémente à plusieurs niveaux : middleware d'autorisation centralisé (OPA, Casbin, Oso) vérifiant systématiquement l'appartenance de l'objet avant tout accès, scopes ORM automatiques filtrant les requêtes base de données selon l'utilisateur courant (ActiveRecord scopes, Django querysets filtrés), et tests d'autorisation automatisés dans la suite de tests de l'API. L'utilisation d'UUIDs réduit le risque d'énumération mais ne corrige pas la vulnérabilité fondamentale.

Cas réels et impact business

BOLA a été impliqué dans de nombreuses violations de données majeures : la fuite de données de Peloton (profils utilisateurs accessibles sans authentification), le bug Facebook (accès aux photos d'amis via manipulation d'ID dans l'API Graph), et T-Mobile (accès aux données de compte d'autres clients). L'impact peut être critique : vol d'identité, accès à des données financières, manipulation de commandes ou de transactions d'autres utilisateurs, avec des implications RGPD pour les notifications de violation.

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis