L'autorisation brisée au niveau de l'objet (BOLA) est une vulnérabilité de sécurité considérée comme la plus grande menace pour les interfaces de programmation d'applications (API), selon la liste des 10 principaux risques pour la sécurité des API de l'OWASP de 2023. La vulnérabilité BOLA est un défaut dans le mécanisme de contrôle d'accès d'une application Web, qui permet aux utilisateurs d'accéder à des « objets » ou de les manipuler. Ces objets peuvent prendre la forme d'enregistrements de base de données, de fichiers ou d'autres ressources au sein d'un environnement informatique. Lorsque le mécanisme de l'application n'applique pas correctement les contrôles d'accès, des utilisateurs non autorisés peuvent effectuer des actions sur des objets auxquels ils ne devraient pas avoir accès.
L'autorisation brisée au niveau de la propriété de l'objet (BOPLA) est une vulnérabilité de sécurité affectant les interfaces de programmation d'applications (API). Lorsque les contrôles d'autorisation sont insuffisants, elle peut permettre aux attaquants d'accéder à des objets sensibles ou d'en manipuler les propriétés. Cela peut entraîner la perte de données, l'exposition de données sensibles, une élévation des privilèges ou le piratage de compte. La BOPLA est classée troisième dans la liste des 10 principaux risques pour la sécurité des API de l'OWASP de 2023.
Qu'est-ce que la BOPLA ?
Les applications Web récupèrent des données et renseignent des champs sur les pages front-end en interrogeant les API pour obtenir des informations sur des objets, tels que des enregistrements de base de données ou des fichiers. Chaque objet contient généralement plusieurs points de données ou « propriétés ». Par exemple, le profil associé à un compte utilisateur peut inclure des propriétés telles que first_name, last_name, email_address, password, SSN_number et is_admin, qui indique si l'utilisateur dispose de privilèges administrateur.
Lors d'un appel d'API, les API envoient souvent plus d'informations que nécessaire dans leur réponse, en laissant le soin à l'application client d'extraire les données dont elle a besoin et de les afficher à l'utilisateur. Cette vulnérabilité entraîne deux types de risque dans un point de terminaison d'API :
Exposition excessive des données. Cela se produit lorsqu'une réponse d'API inclut plus d'informations que n'en demandait l'appel d'API, dont potentiellement des informations sensibles (password et SSN_number, dans cet exemple) auxquelles un utilisateur ou une application ne devrait pas avoir accès. Lorsqu'un site Web ou une application affiche une réponse d'API, il arrive que celle-ci contienne des données supplémentaires non visibles, mais qui peuvent être facilement extraites.
Affectation en masse. Cela se produit lorsqu'un point de terminaison d'API permet à un utilisateur non autorisé de modifier, d'ajouter ou de supprimer la valeur de la propriété d'un objet. Dans l'exemple d'enregistrement ci-dessus, lorsque la réponse de l'API révèle qu'une propriété is_admin existe sans que cela lui ait été demandé, les attaquants peuvent élever les privilèges de manière non autorisée en définissant la propriété is_admin sur TRUE. Il peut même avoir la possibilité de modifier d'autres propriétés ou d'accéder à d'autres objets auxquels il ne devrait pas avoir accès.
La BOPLA a été mentionnée pour la première fois dans la liste des 10 principaux risques pour la sécurité des API de l'OWASP de 2023. Elle a été présentée comme la combinaison des deux menaces précédemment évoquées, à savoir l'exposition excessive des données et l'affectation en masse, qui figuraient séparément dans les listes précédentes.
Quelle est la différence entre la BOPLA et la BOLA ?
La BOPLA est liée à l'autorisation brisée au niveau de l'objet (BOLA), qui est classée première de la liste des 10 principaux risques pour la sécurité des API de l'OWASP. Cependant, la BOLA désigne l'autorisation d'accéder à un objet entier, tandis que la BOPLA désigne les vulnérabilités affectant les propriétés individuelles d'un objet.
La différence entre la BOLA (autorisation brisée au niveau de l'objet) et la BOPLA est simple : la BOLA s'applique à un objet entier là où la BOPLA s'applique à une propriété interne de l'objet.
Même si une API applique une autorisation au niveau de l'objet suffisante pour empêcher les attaques BOLA, cela peut ne pas suffire contre les attaques BOPLA. Pour atténuer la vulnérabilité BOPLA, les équipes doivent adopter des autorisations plus spécifiques qui couvrent les objets ainsi que leurs caractéristiques. Elles doivent également prendre en compte les différents niveaux d'accès au sein des objets d'API, qui ont souvent des propriétés publiques et privées.
Quels sont les potentiels dégâts d'une attaque BOPLA ?
En lançant une attaque ciblant la vulnérabilité BOPLA, les pirates peuvent :
- modifier les propriétés des objets auxquels ils ne devraient pas avoir accès ;
- accéder à des données sensibles qui devraient leur être interdites ;
- élever les privilèges pour pirater des comptes.
Pourquoi les vulnérabilités BOPLA sont-elles difficiles à détecter ?
Traditionnellement, les équipes de sécurité s'appuient sur des pare-feux d'application Web et des passerelles d'API pour défendre les API contre les menaces. Cependant, les WAF et les passerelles d'API ne prennent pas en compte la logique métier et le contexte de l'API. Il est donc impossible de détecter les données sensibles envoyées via une API ou de comprendre le niveau d'exposition des ressources de données individuelles. Ces solutions de protection des API ne sont pas toujours capables de faire la distinction entre les appels légitimes et les activités malveillantes. Par exemple, un appel d'API malveillant qui envoie une demande en utilisant la méthode PUT avec des paramètres supplémentaires aura l'air d'un appel d'API normal vers un WAF ou une passerelle d'API.
Pour détecter les vulnérabilités BOPLA, les équipes de sécurité ont besoin d'une technologie capable d'identifier et de générer des rapports sur divers types de données sensibles pouvant être incluses dans les requêtes et réponses d'API. Des solutions de qualité supérieure doivent également détecter les activités anormales de pirates ayant manipulé des requêtes API avec des paramètres non autorisés. La capacité d'établir une référence et de suivre l'accès à l'API pour chaque point de terminaison et chaque utilisateur peut aider à identifier une consommation excessive, et à détecter les cas où des paramètres supplémentaires dans les appels API indiquent un comportement inhabituel. La stratégie de sécurité des API doit également être en mesure de détecter les pirates qui sondent les API pendant la phase de recherche d'une attaque, visant à comprendre la structure et la logique métier d'une API.
Comment prévenir les attaques BOPLA ?
Assurer la sécurité du code et vérifier qu'il n'y a pas de problèmes liés aux permissions des propriétés des objets devrait être une priorité absolue pour les développeurs. Cependant, les vulnérabilités BOPLA apparaissent de plus en plus dans les API tierces sur lesquelles les équipes de sécurité n'ont aucun contrôle.
Pour prévenir les attaques BOPLA, les équipes de sécurité peuvent prendre plusieurs mesures essentielles.
Former les développeurs aux bonnes pratiques de codage sécurisé. Les équipes de sécurité doivent aider les développeurs à comprendre la nécessité d'attribuer les bonnes autorisations au niveau des propriétés, tout en appliquant une stratégie d'autorisation standardisée pour tous les points de terminaison d'API. Le code sécurisé doit prendre en compte le niveau d'autorisation de l'utilisateur et les exigences d'autorisation de toutes les ressources de référence. Les politiques de sécurité doivent contrôler rigoureusement les champs modifiables via les listes d'autorisation. Les développeurs doivent également faire preuve de prudence quant à la quantité et au type de données renvoyées dans les réponses des API, et ne doivent inclure que les données nécessaires à des cas d'utilisation bien définis.
Zero Trust. La mise en œuvre du principe du moindre privilège, élément fondamental d'une approche Zero Trust en matière de sécurité, limite les utilisateurs au niveau d'accès minimal requis, ce qui contribue à prévenir les attaques BOPLA ou à limiter les dommages qu'elles peuvent causer.
Découverte. En identifiant les points de terminaison d'API vulnérables, les équipes peuvent alerter les développeurs en cas de problème et informer les fournisseurs lorsque leurs API sont vulnérables.
Surveillance. Un outil de sécurité des API peut surveiller le trafic pour détecter les attaques, y compris l'affectation en masse, qui exploitent la vulnérabilité BOPLA.
Processus d'autorisation robuste. Lors de l'exposition d'un objet au sein d'un point de terminaison d'API, les processus d'autorisation doivent s'assurer que l'utilisateur est réellement autorisé à accéder aux propriétés de l'objet. L'adoption du contrôle d'accès basé sur les rôles (RBAC) garantit que seules les personnes autorisées peuvent accéder à des propriétés spécifiques.
Audits et mises à jour. La vérification et la mise à jour continues des autorisations permettent d'assurer leur pertinence et leur précision.
Foire aux questions (FAQ)
Une interface de programmation d'application (API) est un ensemble de protocoles et de définitions qui permet à différents programmes et composants logiciels de communiquer, d'échanger des données et de partager des fonctionnalités. En définissant les modes d'interaction des applications, les API permettent à différents systèmes logiciels de demander et de partager des informations qui alimentent des fonctions importantes pour l'e-commerce, les paiements mobiles, les services cloud des réseaux sociaux et bien d'autres domaines informatiques.
L'OWASP (Open Worldwide Application Security Project) est une organisation à but non lucratif qui se consacre à l'amélioration de la sécurité des logiciels. Chaque année, l'OWASP publie une liste des 10 principaux risques pour la sécurité des applications et des API. Le rapport est compilé par une équipe d'experts en sécurité issus du monde entier.
Pourquoi les clients choisissent-ils Akamai ?
Akamai est l'entreprise de cybersécurité et de Cloud Computing qui soutient et protège l'activité en ligne. Nos solutions de sécurité leaders du marché, nos informations avancées sur les menaces et notre équipe opérationnelle internationale assurent une défense en profondeur pour protéger les données et les applications des entreprises du monde entier. Les solutions de Cloud Computing complètes d'Akamai offrent des performances de pointe à un coût abordable sur la plateforme la plus distribuée au monde. Les grandes entreprises du monde entier font confiance à Akamai pour bénéficier de la fiabilité, de l'évolutivité et de l'expertise de pointe nécessaires pour développer leur activité en toute sécurité.