
Top 10 de l'OWASP relatif aux risques de sécurité des API : défaillance de l'autorisation au niveau de la propriété de l'objet
La défaillance de l'autorisation au niveau de l'objet figure en troisième position sur la liste des 10 principaux risques de sécurité des API établie par l'Open Worldwide Application Security Project® (OWASP).
La mauvaise autorisation au niveau de la propriété des objets apparaît sur la liste en 2023, mais elle intègre deux éléments datant de la version de 2019, à savoir l'exposition excessive des données et l'attribution massive. L'exposition excessive des données comprend l'exposition de propriétés sensibles lors d'une opération de lecture, tandis que l'affectation massive permet aux pirates de modifier les propriétés lors d'une opération d'écriture.
Combinées, ces failles permettent aux pirates d'accéder à la propriété d'un objet sans valider au préalable les autorisations d'accès et d'apporter des modifications malveillantes.
Vecteurs d’attaque
Les pirates exploitent les points de terminaison de l'API en obtenant un accès et en lisant ou en modifiant la valeur des propriétés de l'objet auxquelles ils ne devraient pas avoir accès. Les vecteurs d'attaque se produisent parce que les propriétés des objets ne sont pas protégées de manière adéquate, ce qui nécessite une validation de l'accès aux propriétés des objets ou des propriétés qui ne sont pas filtrées pour ne renvoyer que des informations spécifiques.
Dans ce cas, le point de terminaison de l'API permet aux utilisateurs d'accéder, d'ajouter, de supprimer ou de modifier la valeur des objets sensibles auxquels les pirates ne doivent pas pouvoir accéder.
L'OWASP lui a attribué un score d'exploitabilité de trois ce qui signifie qu'elle est assez facilement exploitable par les hackers.
Failles de sécurité
L'autorisation API doit être effectuée par couches afin de fournir plusieurs protections contre les attaques. Bien que les développeurs aient généralement besoin d'une validation pour s'assurer que les utilisateurs puissent accéder à des fonctions et à des objets spécifiques, il se peut qu'ils ne vérifient pas si les utilisateurs peuvent accéder à des propriétés spécifiques au sein de l'objet.
L'OWASP attribue à la mauvaise autorisation au niveau de la propriété des objets un score de deux sur son échelle de prévalence et de détectabilité, ce qui dénote que la vulnérabilité est fréquente et qu'elle peut être détectée moyennant un effort modéré.
Impacts sur les entreprises
Lorsque des pirates peuvent modifier les propriétés d'objets sensibles, cela peut entraîner des violations, des pertes et des manipulations de données créant ainsi des risques importants pour les entreprises. L'utilisation abusive d'un contrôle à faible accès et de failles logiques peut conduire à une exposition importante y compris des données sensibles et une élévations des privilèges.
Fonctionnement de la défaillance de l'autorisation au niveau de la propriété de l'objet
Lorsque les utilisateurs font des demandes, elle renvoie les objets pertinents. En l'absence de contrôle sur les articles renvoyés, les données risquent d'être trop nombreuses. Alors que les utilisateurs validés peuvent ignorer les propriétés supplémentaires des objets, les pirates peuvent utiliser ces informations pour pirater des systèmes ou augmenter leurs privilèges.
Les développeurs supposent souvent que seuls des utilisateurs validés accèderont aux API, et ne corrigent pas les vulnérabilités, alors que les API sont accessibles directement par les pirates. Cela permet d'accéder à des données superflues ou de remplacer les variables côté serveur non prévues.
Parmi les causes les plus courantes, on peut citer la liaison automatique au niveau du cadre et l'analyse des demandes en tant qu'objets. Copier des objets est plus facile que de sélectionner des valeurs spécifiques en leur sein et peut faire gagner du temps lors du codage, mais cela peut exposer des données à des pirates.
Exemples concrets
Il existe plusieurs exemples concrets très médiatisés, notamment la violation de Twitter en juillet 2022. Les données de plus de 5 millions d'utilisateurs de Twitter étaient en vente sur un forum de hackers, et les données de 400 millions d'autres utilisateurs étaient disponibles sur le dark web. En janvier 2023, la plateforme de réseaux sociaux a été victime d'une nouvelle attaque, qui a donné lieu à une demande de ransomware pour empêcher l'exposition des données de 235 millions d'utilisateurs.
HealthEngine a écopé d'une amende de 2,9 millions de dollars après l'exposition de 59 000 dossiers de patients contenant des données à caractère personnel.
GitHub a également été piraté à l'aide d'une mauvaise autorisation au niveau de la propriété d'un objet. Un chercheur a utilisé un exploit d'attribution en masse pour ajouter une clé publique à un référentiel Ruby on Rails, obtenir des privilèges d'administrateur et valider des fichiers sur les comptes de projet.
Détection des vulnérabilités de défaillance de l'autorisation au niveau de l'objet
La détection des vulnérabilités de défaillance de l'autorisation au niveau de l'objet doit faire partie des audits de sécurité des mécanismes d'authentification. Les scanners de vulnérabilité peuvent identifier les menaces courantes de sécurité des API et des tests manuels peuvent être nécessaires pour identifier les vulnérabilités liées à la défaillance de l'authentification au niveau de l'objet.
Les développeurs doivent tester les points de terminaison API au niveau de :
- L'exposition excessive des données : le nombre de données renvoyées par les objets est-il supérieur à celui demandé ?
- L'attribution en masse : les utilisateurs peuvent-ils initialiser ou remplacer les variables côté serveur qui ne sont pas prévues par l'application ?
Prévention des vulnérabilités de l'autorisation au niveau des propriétés des objets
Lorsqu'ils exposent un objet à l'aide d'un point de terminaison de l'API, les développeurs doivent toujours ajouter des mesures de validation pour s'assurer que seuls les utilisateurs autorisés ont accès à l'objet.
Déployer des propriétés d'objet spécifiques
Évitez les méthodes génériques telles que _json() et to_string(). Fournissez plutôt des propriétés d'objet spécifiques qui doivent être renvoyées. Définissez tous les paramètres et charges utiles.
Éviter l'affectation en masse
Dans la mesure du possible, évitez l'affectation en masse en utilisant des fonctions qui lient automatiquement les données du client à des variables de code, à des objets internes ou à des propriétés d'objets. En outre, les développeurs ne doivent pas compter sur les clients pour filtrer les données et masquer les champs mais uniquement pour renvoyer les propriétés spécifiques demandées.
Utiliser la validation des réponses basée sur un schéma
En implémentant une validation de la réponse basée sur un schéma, les développeurs peuvent ajouter une couche de sécurité, définir et appliquer toutes les données renvoyées lors des requêtes API. Utilisez les propriétés en lecture seule définies sur « true » dans le schéma d'objets pour toutes les propriétés pouvant être récupérées via une API mais qui ne doivent pas autoriser la modification.
Exigences fonctionnelles minimales
Limitez la structure des données renvoyées aux niveaux minimaux requis pour répondre aux exigences métier et fonctionnelles des points de terminaison de l'API.
Appliquer les contrôles de la réponse
Appliquez des contrôles de réponse pour éviter les fuites accidentelles de données, y compris les exceptions et les réponses d'erreur.

Rapport 2025 sur les ransomwares
Principales conclusions concernant l’expérience et l’impact des ransomwares sur les organisations du monde entier
S’abonner au blog de Barracuda.
Inscrivez-vous pour recevoir des informations sur les menaces, des commentaires sur le secteur et bien plus encore.

Sécurité des vulnérabilités gérée : correction plus rapide, risques réduits, conformité simplifiée
Découvrez à quel point il peut être facile de trouver les vulnérabilités que les cybercriminels cherchent à exploiter