Sécurité des API : comment prévenir les attaques ?

7 min
63
0
0
Publié le

Un principe de base en informatique est que vous ne pouvez pas protéger ce que vous ne connaissez pas. Or, le principe même d’une API (Application Programming Interface) est de fournir aux développeurs une interface exploitable facilement, sans qu’ils aient besoin d’en connaître le fonctionnement.

Elle permet aux programmeurs d’utiliser des fonctionnalités ou d’échanger des données entre programme et services sans avoir à gérer les processus techniques sous-jacents. 

Grâce à cette simplicité, ces interfaces de programmation sont couramment utilisées en programmation. Mais parallèlement, les API deviennent aussi des vecteurs d’attaque de plus en plus populaire. Les problèmes de sécurité des API se multiplient avec également des incertitudes sur qui est responsable de cette sécurisation. 

Une chose est sûre, pour se prémunir, les entreprises et professionnels de l’IT doivent maîtriser la sécurité des API. Voici donc un guide pour comprendre les menaces pesant sur les API et s’en protéger.

L’augmentation des problèmes de sécurité des API

Avant de voir les bonnes pratiques à mettre en œuvre pour sécuriser ses API, il est indispensable de bien comprendre quelles sont les failles et vulnérabilités qui les concernent.

L’essor du recours aux API et la multiplication de ces interfaces en entreprise les rendent de plus en plus difficiles à sécuriser. 

Les API émergentes ne sont en effet pas toujours conçues ou déployées dans un souci de sécurité, ce qui entraîne des manques d’authentification, d’autorisation voire d’exposition de données sensibles telles que des informations personnellement identifiables. 

La charge de la sécurisation de l’API passe alors du concepteur de l’interface à ses utilisateurs, mais encore faut-il que ces derniers en soient avertis… La majorité des entreprises et professionnels de l’IT ont du mal à évaluer la quantité et les besoins de sécurisation des API qu’ils exploitent. Ce manque de visibilité affecte toutes les entreprises, quelle que soit leur taille. 

Cette tendance a encore été accentuée par la crise sanitaire et l’essor du travail à distance qui ont poussé les entreprises à accélérer leur transformation numérique. 

Selon un rapport de Google intitulé « A State of the API Economy 2021 », les interfaces de programmation ont joué un rôle primordial, en particulier en tant que « colonne vertébrale des écosystèmes commerciaux numériques ». Cependant, cette intégration des API s’est souvent faite dans l’urgence sans communication ou stratégie de long terme.

Et si les entreprises ne savent pas quelles API elles utilisent, elles risquent de ne pas non plus avoir connaissance des données qu’elles peuvent extraire ni de qui y a accès… Le risque de perte ou de compromission d’informations est encore augmenté par le fait que les API sont de plus en plus de type Rest. Ces Rest API permettent aux utilisateurs, mais aussi aux cybercriminels de transmettre relativement facilement des données dans les deux sens.

Comment sécuriser ses API ?

L’OWASP (Open Web Application Security Project) a listé les risques majeurs qui pèsent sur les API. Voici en quoi ils consistent et comment s’en prémunir.

Les problèmes d’autorisations au niveau des objets

Les interfaces de programmations exposent généralement des points de terminaison qui gèrent les identifiants d’objet et offrent ainsi une surface d’attaque pour les cybercriminels.

Pour s’en prémunir, des contrôles d’autorisation au niveau de l’objet doivent être intégrés à chaque fonctionnalité qui permet d’accéder à une source de données via une entrée utilisateur.

Les mauvais paramétrages des authentifications 

Les mécanismes d’authentification des API sont souvent mal paramétrés ce qui donne la possibilité aux cybercriminels d’exploiter des failles d’implémentation pour usurper l’identité d’autres utilisateurs ou de compromettre les jetons d’authentification.

La sécurité des API passe donc ici par le contrôle des accès. Chaque programme, application ou utilisateur doit être identifié pour être autorisé à accéder aux ressources des API. Une des méthodes d’authentification la plus connue et adaptée aux API REST est OAuth.

OAuth est un protocole de « délégation d’autorisation » qui permet d’accorder à une application tierce, un accès limité sur une ressource et avec l’accord de son propriétaire. 

Concrètement, lorsqu’un utilisateur exprime son intention d’accéder à l’API, l’application demande un jeton fournissant l’identité vérifiée de l’utilisateur comme preuve.

Une fois l’autorisation authentifiée, la ressource accorde ce jeton d’accès à l’API, sans avoir à communiquer d’identifiants ou de mot de passe.

Chaque jeton aura une étendue autorisée pour chaque API et l’application n’a donc accès à la ressource que dans un périmètre défini.

Une exposition des données 

Les développeurs d’API ont tendance à exposer toutes les propriétés des objets en confiant aux utilisateurs la charge d’effectuer le filtrage des données avant de les afficher.

La bonne pratique ici est de ne pas exposer plus de données que nécessaire. Les API doivent renvoyer uniquement les informations nécessaires à l’accomplissement de leur fonction. Il est également crucial d’appliquer les contrôles d’accès aux données au niveau de l’API elle-même et d’obfusquer toutes informations sensibles qui pourraient être contenues dans les réponses.

Des manques de ressources et limitation de débit


Le plus généralement, les API n’intègrent aucune restriction sur la taille ou le nombre de ressources qui peuvent être demandées par les utilisateurs. Cela crée une vulnérabilité face aux attaques de type DoS ou de force brute.

Pour sécuriser son API il faut donc limiter son trafic en définissant un seuil au-delà duquel les requêtes sont rejetées.

 Des politiques de contrôles d’accès trop complexes 

Des politiques de contrôle d’accès intégrant différents niveaux de hiérarchies, groupes et rôles peuvent conduire à des séparations peu claires et entraîner des failles d’autorisation. Les cyberattaquants peuvent ainsi accéder aux ressources et données d’autres utilisateurs.

La bonne pratique pour se prémunir des problèmes d’autorisations est d’appliquer le principe du moindre privilège. Un utilisateur (aussi bien humain, qu’un processus, ou un programme) ne doit pas se voir accorder des droits d’accès supérieurs à ceux nécessaires pour remplir la fonction dont il a besoin.

Les attaques de masse 

La liaison des données fournies par le client (par exemple JSON) aux modèles de données, sans forcément de filtrage de propriétés basé sur des listes d’autorisation, peut entraîner des attaques de masses.

Les cyberpirates risquent de deviner les propriétés des objets ou peuvent explorer d’autres points de terminaison de l’API pour modifier les propriétés d’objets auxquels ils ne devraient pas avoir accès.

Ici, une des bonnes pratiques est de limiter ces informations en supprimant toutes celles qui ne sont pas destinées à être partagées. Les API peuvent contenir des clés et mots de passe ajoutés lors des étapes de développement. Ceux-ci doivent donc absolument être effacés avant la mise à disposition.

 De mauvaises configurations de sécurité

Les mauvaises configurations des sécurités des API regroupent généralement :

  • des configurations par défaut non personnalisées ;

  • des en-têtes HTTP inutiles ou mal paramétrés ;

  • des messages d’erreurs trop explicites ou comportant des informations sensibles ;

  • des partages de ressource Cross-Origin permissif (CORS).

La bonne pratique ici est plutôt évidente, il s’agit de faire de la sécurité des API une priorité lors de leur développement. Comme pour toutes les applications de l’entreprise, celles-ci doivent être soumises des audits et des phases de test régulières et cadrées lors de leur conception et de leur mise à jour.

Pour que les interfaces de programmation participent efficacement à la digitalisation des entreprises, la sécurité des API doit donc être au cœur de leur priorité. Les bonnes pratiques concernent tous les stades de l’interface depuis sa conception jusqu’à son paramétrage avec la prise en compte des différents utilisateurs.

Et vous en tant que prestataires ou salariés IT avez vous déjà conçu, utilisé et sécurisé des API ? N’hésitez pas à nous partager vos propres bonnes pratiques sur le forum IT !


Sources et liens utiles :

Boostez vos projets IT

Les meilleures missions et offres d’emploi sont chez Free-Work

Continuez votre lecture autour des sujets :
# Cybersécurité

Commentaire

Dans la même catégorie