API1 BOLA/IDOR
devsecopsDé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
Expert en cybersécurité offensive et intelligence artificielle. Pentest, audit et développement IA sur-mesure.
Services
- Audit Infrastructure
- Audit Kubernetes
- Audit Microsoft 365
- Audit Sécurité Réseau
- Analyse de Risques
- Audit Active Directory
- Audit Application Web
- Audit Cloud (AWS/Azure/GCP)
- Audit Messagerie
- Audit API (OWASP Top 10)
- Audit DevSecOps & CI/CD
- Audit Code Source (SAST)
- Audit Postes de Travail
- Audit Sauvegarde & Résilience
- Audit OT/SCADA (IEC 62443)
- Développement IA
- Formations
Ressources
Projets & Outils
© 2026 Ayi NEDJIMI Consultants. Tous droits réservés.
Un projet cybersécurité ?
Expert dispo · Réponse 24h