Quatre ans après sa première publication, la liste l’Open Web Application Security Project 2023 sur les risques sur la sécurité des API a été mise à jour « pour tenir compte des changements rapides dans le domaine technologique ». La liste de cette année, soutenue par la communauté OWASP et divers contributeurs, vise à informer les développeurs et les utilisateurs finaux sur les défis de sécurité auxquels font face les Interfaces de Programmation d’Applications (API).

Les API servent de fondement à l’innovation dans notre ère actuelle dominée par les applications. Elles sont intégrées dans une large gamme d’applications, qu’elles soient destinées aux clients, aux partenaires ou internes. Cependant, les caractéristiques qui rendent les API si précieuses les rendent également vulnérables. Elles exposent la logique de l’application et des données sensibles, telles que les Informations d’identification, ce qui en fait une cible attrayante pour les cyberattaquants. Des API sécurisées sont cruciales pour permettre une innovation rapide sans risquer les données des utilisateurs ou l’intégrité du système.  

Trois des cinq risques majeurs sont liés aux autorisations

Selon les conclusions de l’OSWAP, les autorisations restent le plus grand défi en matière de sécurité des API. Trois des cinq risques les plus importants sont liés à l’autorisation (contrôle d’accès). Les applications modernes basées sur les API deviennent de plus en plus complexes, avec des milliers de points d’extrémité d’API et d’innombrables paramètres. Si l’on y ajoute les hiérarchies d’utilisateurs, on obtient des comportements imprévisibles qui peuvent nuire non seulement au système, mais aussi à la réputation de l’entreprise. Selon le Top 10 de l’OWASP, voici les principaux risques de sécurité pour les API.  

1. Autorisation au niveau de l’objet défaillante

Les API exposent souvent des points de terminaison qui gèrent des identifiants d’objet, créant ainsi une large surface d’attaque pour le contrôle d’accès au niveau de l’objet, ou BOLA (Broken Object Level Authorization). Il est important de prendre en compte les vérifications d’autorisation au niveau de l’objet dans chaque fonction qui accède à une source de données en utilisant un ID provenant de l’utilisateur.  

2. Authentification défaillante

L’authentification est un composant critique de la sécurité des API. Si les mécanismes d’authentification sont mal implémentés ou vulnérables à des attaques telles que la force brute, le détournement de session ou les attaques basées sur des jetons, cela peut conduire à un accès non autorisé aux API et aux données sensibles.  

3. Autorisation défaillante au niveau des propriétés de l’objet

Similaire à l’autorisation défaillante au niveau de l’objet, le type BOPLA (Broken Object Property Level Authorization) se concentre sur le contrôle d’accès au niveau de la propriété. Les API devraient s’assurer que les utilisateurs ont les droits d’accès appropriés aux propriétés individuelles des objets.  

4. Consommation illimitée de ressources

Les API qui permettent une consommation illimitée de ressources peuvent être vulnérables aux attaques par Déni de Service (DoS). Il est important de mettre en œuvre des limites de taux et d’autres mécanismes pour prévenir les abus et assurer une répartition équitable des ressources.  

5. Autorisation défaillante au niveau des fonctions

Les API devraient appliquer des contrôles d’autorisation appropriés au niveau de la fonction pour éviter l’accès non autorisé aux opérations ou données sensibles.  

6. Falsification de requêtes côté serveur (SSRF)

Le SSRF (Server Side Request Forgery) est une attaque dans laquelle un agresseur peut amener le serveur à effectuer des requêtes vers des ressources internes ou externes au nom du serveur lui-même. Cela peut entraîner une exposition de données, des actions non autorisées ou d’autres attaques.  

7. Mauvaise configuration de sécurité

Des paramètres de sécurité mal configurés peuvent rendre les API vulnérables aux attaques. Cela inclut les mots de passe par défaut ou faibles, les services ou fonctionnalités inutiles, mais activés, et d’autres configurations erronées qui peuvent être exploitées par les attaquants.  

8. Absence de protection contre les menaces automatisées

Les API peuvent être les cibles d’attaques automatisées exécutées par des bots, des scrapers ou la création automatisée de comptes. Il est important de mettre en place des mesures comme les Captchas, les limites de taux et la détection d’anomalies pour atténuer ces menaces.  

9. Gestion inadéquate des actifs

Les API devraient avoir une gestion d’inventaire appropriée, y compris la documentation, le versioning et le suivi des versions d’API déployées. Cela aide à atténuer des problèmes tels que les versions d’API obsolètes et les points de terminaison de débogage exposés.  

10. Consommation risquée des API

Les développeurs ont souvent plus confiance dans les données reçues des API tierces que dans les données entrées par les utilisateurs, ce qui conduit à des normes de sécurité plus faibles. Les attaquants peuvent cibler les services tiers intégrés pour compromettre les API plutôt que d’attaquer directement l’API cible.