La sécurisation des API, une priorité ignorée

Alors que pas un service numérique ou logiciel ne sort sans intégrer une ou des API, il apparaît que la sécurité sur ce point pèche trop souvent encore, ouvrant ainsi une immense porte d'entrée aux cybercriminels. Pour s'en convaincre, le Gartner prévoit que d'ici 2022, les attaques via des API deviendront le vecteur d'attaque le plus fréquent. Explications.

Une API, Application Programming Interface, ou Interface de Programmation d’Application en français, est une interface informatique contenant des définitions et des protocoles techniques qui permettent à deux applications ou services de communiquer et d’échanger des données ensemble. C’est le nouveau standard de la collaboration entre deux programmes ou services informatiques afin de pouvoir réutiliser ces derniers. C’est toute l’approche moderne services/micro-services déjà largement intégrée, notamment dans les approches DevOps. Autant dire que dans notre monde de plus en plus interconnecté, elles sont partout. Mais comme elles sont discrètes, on a tendance à oublier qu'elles sont là et qu’il faut également penser à leur sécurisation, et pas seulement à leur intégration.

C’est la démocratisation des API et leur adoption de plus en plus répandue qui est à l’origine de la croissance exponentielle des nouveaux services numériques de ces dernières années. En effet, grâce aux API, il n’est plus nécessaire, pour concevoir un nouveau logiciel ou un nouveau service, de le développer en partant de zéro, car il suffit de se connecter à l’API d’un logiciel ou service existant pour bénéficier de son service dans un domaine précis.

Petit exemple concret : lorsqu'une société commercialise une plateforme de réservation type VTC, elle doit nécessairement intégrer une partie dédiée au paiement. Elle a alors à choisir : soit ses développeurs internes recréent entièrement un nouveau système de paiement, soit ils se connectent à un service existant via une simple API. Lorsque l’on connaît la complexité de conception d’un service de paiement, autant sur le plan technique que l’environnement législatif à respecter, il apparaît assez vite que la seconde option est de loin la plus simple, la plus rapide et la moins chère. Non seulement, cela permet d'économiser des ressources internes en temps et en hommes, d'accélérer la mise en place de services, mais en plus cela permet de bénéficier de l’expertise et services d’éditeurs tiers (tel que le spécialiste du paiement Stripe). Bénéfice supplémentaire, le service de VTC n’a plus à se soucier des évolutions techniques et législatives relatives au paiement, c'est Stripe (ou un autre) qui s'en charge, ce qui garantit à la plateforme de chauffeurs d’avoir un système de paiement toujours à la pointe. Tout cela via une simple intégration d’API.

Les API ont donc permis de libérer un potentiel d’innovation en brisant les silos de données qui existaient jusqu'alors.

La chaîne des API

L’utilisation des API est devenue tellement indispensable que, de plus en plus, des données transitent par différentes API successives, qui s'enchaînent les unes aux autres. Prenons par exemple une place de marché, qui permet à différents vendeurs plus petits de proposer leurs produits à la vente, tout en leur faisant bénéficier de son expertise de vente en ligne, en logistique, en marketing etc. Pour que l’internaute puisse connaître le descriptif, le prix et la disponibilité d’un produit proposé par un marchand tiers, ces informations vont transiter, comme dans un tunnel, via l’API de la marketplace, puis dans celle du commerçant concerné pour ensuite accéder aux informations de description, de prix et de disponibilité du produit que le consommateur souhaite consulter.

Tout cela est fluide et transparent pour l’internaute, mais en réalité cela forme une chaîne d’API dans laquelle une API en appelle une autre et ainsi de suite. Ce type de chaînes d’API se développe de plus en plus pour le plus grand bénéfice des clients comme des commerçants. C’est une bonne chose, mais cela crée un risque de sécurité majeur, car il y a de moins en moins de contrôle dans la profondeur.

Où est donc le problème ?

Si la sécurité des API est un sujet assez largement connu et traité par les organisations, la sécurité autour du contrôle d’accès aux API est loin d’avoir atteint le bon niveau de maturité. Une métaphore simple pour comprendre la différence entre la sécurisation des API et la sécurisation de l’accès aux API. C’est comme si, à une frontière entre deux pays, on avait mis une barrière pour contrôler les voitures mais personne pour contrôler les passagers, leur identité ou l’objet de leur visite dans le pays concerné ! On se retrouve donc aujourd’hui avec une sécurité qui s’est essentiellement développée sur l’API elle-même (comment une application doit se connecter à un service via une API), mais avec un contrôle très faible sur la gestion des droits d’accès une fois dans le service concerné. Or le développement des chaînes d’API décrites plus haut augmente énormément le risque dans cette configuration. 

Pour illustrer l’importance du risque, rien ne vaut un bon exemple : Cambridge Analytica. Cette entreprise britannique, utilisée semble-t-il pour la campagne des Républicains lors de la présidentielle de 2016 aux Etats-Unis, a analysé les données de dizaines de millions d’utilisateurs à leur insu. Elle est accusée d’avoir utilisé des données de 30 à 70 millions d’utilisateurs de Facebook, recueillies sans leur consentement. Mais comment ont-ils fait ? En réalité, ils ont utilisé une faille chez Facebook qui permettait à n’importe quel utilisateur ayant accès à une API précise du service Facebook de se connecter à des données de comptes d’autres utilisateurs. Il manquait clairement la couche sécuritaire de contrôle des droits d’accès. Autrement dit la couche qui gère le sujet très simple du “qu’ai-je le droit de faire ou non une fois rentré dans le service via l’API”. S’en est suivi un des plus grands scandales dans les nouvelles technologies, avec un impact sur les élections présidentielles de la première puissance économique du monde ! Tout ça pour un défaut de sécurisation du contrôle d’accès aux API. 

Ce risque n'a pas échappé aux analystes, et le Gartner estime qu’en 2022 (pas dans 10 ou 15 ans) les attaques d'API deviendront le vecteur d'attaque le plus fréquent. 

La solution est pourtant assez simple! Il suffit de mettre en place une gestion des droits d’accès au sein des API, avec des jetons d’accès à qui on délègue des droits très précis sur ce à quoi ils peuvent accéder ou non, et surtout au nom de qui ! Car derrière une requête à une API, il y a le plus souvent au bout de la chaîne une personne, une identité qu’il faut être en mesure de vérifier car c’est en son nom que la requête est faite (rappelez-vous la métaphore de la douane et du contrôle de l’identité des personnes). C’est en sécurisant correctement les droits d’accès aux API que l’on va permettre de développer de nouveaux services de confiance tant pour les entreprises que pour les consommateurs. Sinon, les organisations utilisant ces si précieuses API risquent de voir leurs noms en gros titre dans la presse, après un piratage. Il est urgent d’agir !