La multiplication des API, vecteurs privilégiés de l’ouverture des systèmes d’information et d’accélération de la transformation numérique, contribue à exposer les données à des tiers. Comment les protéger ? Une API est une interface de programmation applicative qui sert à optimiser la valeur des données et à établir des liens entre différentes entités, par exemple entre des utilisateurs et des fournisseurs, ce qui permet de bâtir une communauté, qui repose sur des écosystèmes, l’ouverture des systèmes d’information et la création de valeur par les données.
« Pour comprendre facilement de quoi l’on parle, il suffit d’imaginer qu’une application, un système ou un programme est une maison. L’API représente tout simplement la porte principale de cette maison avec des indications inscrites dessus pour pouvoir y entrer, prendre les éléments intéressants qui s’y trouvent et les ramener dans une autre maison », illustre Bertrand Masson, co-fondateur et directeur stratégie de Moskitos.
Pour ce dernier, « concrètement, ces éléments récupérés sont des fonctions ou des données qui vont servir à alimenter et enrichir une application que l’entreprise utilise dans son activité. L’exemple le plus éloquent est celui de Google Maps, qui propose à tous les développeurs une API (de façon payante désormais) permettant d’accéder à des cartes numériques du monde entier, des itinéraires et des infos trafic, afin de pouvoir les réinjecter dans une autre application comme celle d’un VTC de type Uber. » Pour Frédéric Pozzi, vice-président d’Axway, « les API sont des engrenages pour accoster un système d’information à son écosystème, pour concilier le temps long du System of Records et le temps court du System of Engagement. »
De multiples sources de création de valeur
Mehdi Medjaoui, économiste chez CA Technologies, distingue trois propositions de valeur grâce aux API :
- L’entreprise étendue, qui utilise des API pour élargir son champ d’activité, en créant de nouveaux segments et marchés ou de nouvelles offres de produits et services pour développer son portefeuille client. Il s’agit souvent de la première étape pour toute organisation commençant à explorer les opportunités offertes par les API.
- L’entreprise flexible, dont les API favorisent l’émergence : l’organisation peut ainsi fonctionner et se développer sans qu’il soit nécessaire de recruter un grand nombre de nouveaux membres.
- L’entreprise exponentielle : similaire au concept d’entreprise élastique, l’entreprise exponentielle est cependant davantage orientée client. L’intérêt d’une API réside dans sa capacité à tout gérer à l’aide d’algorithmes, sans supervision humaine. Pour les entreprises, le résultat est un coût marginal d’acquisition de nouveaux clients égal à zéro. Uber en est un excellent exemple : l’API traite les demandes de courses entre les passagers et les conducteurs, sans que personne n’ait à participer au processus.
Mais qui dit ouverture du système d’information dit risques, qu’il faut maîtriser. En effet, dans la mesure où les API, positionnées dans un système Back End, permettent l’interfaçage à des sources de données ou des applications, en principe génératrices de valeur pour les utilisateurs, la maîtrise de cet écosystème passe, en premier lieu, par une phase d’identification de ces ressources au sein de l’entreprise, mais aussi de leurs utilisateurs, en se posant deux questions :
- Quelles sont les ressources auxquelles les utilisateurs peuvent et souhaitent accéder ?
- Quelle est l’identité de chaque utilisateur (personne physique ou morale, compte applicatif…) et avec quels outils souhaite-t-il accéder aux ressources (application, portail Web, client lourd, poste de travail, appareil mobile…) ?
Organiser les droits d’accès
Plusieurs facteurs contribuent à multiplier les API, notamment la transformation numérique, les besoins de partage des données, les usages de mobilité, les exigences de l’omnicanal, le poids des écosystèmes d’applications, la nécessité du temps réel, la volonté de monétiser les données et de nouvelles offres qui sont des agrégations d’autres offres proposées par des tiers, de manière à améliorer l’expérience utilisateur… « Les API constituent une architecture enrichie du système d’information ; la mise en place d’API introduit le plus souvent de nouveaux composants redondés dans l’architecture (plateforme de management des API, solution de gouvernance, de monitoring des appels…) et sollicite ceux déjà en place et en particulier les firewalls, les Load Balancers, pour équilibrer la charge sur différentes instances », souligne Philippe Provost, RSSI membre du Cesin.
« C’est en regroupant les identifications utilisateurs/ressources dans un point central, que l’on pourra organiser une politique de gestion de droits d’accès aux ressources, pour garantir la sécurité de l’ensemble. Il devient ainsi possible de définir des autorisations à certains utilisateurs, depuis certains types d’environnements et d’outils autorisés, selon une période temporelle définie si nécessaire, pour qu’ils puissent accéder à certains types de ressources, et pas à d’autres », souligne Jérémie Devillard, co-fondateur et directeur technique chez Moskitos.
Bien qu’un nombre illimité de services puissent être mis à disposition au sein de la plateforme d’API, chacun susceptible de disposer d’une politique de sécurité différente, il n’en demeure pas moins qu’un seul sera visible par les applications consommatrices de données.
Cela va permettre d’instaurer une politique de gouvernance commune et donc de proposer :
- Une authentification unifiée (de type OpenId, SamI…) pour pouvoir récupérer, de manière homogène, les rôles et droits des utilisateurs dans l’environnement de l’entreprise.
- Une gestion des droits d’accès basée sur une catégorisation des API Back End selon leur niveau de confidentialité (avec une nomenclature de type C1 à Cn), correspondant au niveau d’accréditation nécessaire pour en faciliter l’accessibilité aux utilisateurs.
« Au sein de ces droits d’accès, il va alors être possible de définir des capacités d’accès pour les utilisateurs et leurs applications, selon des engagements de services (SLA) contractualisés selon des plans de type Gold, Silver, etc., établissant un niveau de consommation limité de la ressource recherchée. Par exemple, dans le cadre de son plan Silver, un utilisateur aura le droit d’accéder à une certaine API 50 fois par jour, uniquement en semaine de 7 heures à 20 heures », explique Jérémie Devillard.
« L’API est un moyen permettant d’exposer auprès de tiers des méthodes ou fonctions, données et/ou traitements. Ces interfaces doivent donc être conçues comme évolutives, réutilisables, versionnées et sécurisées », souligne Philippe Provost. Plus précisément, selon ce dernier, « dans la mesure où une API permet d’offrir un certain découplage entre l’implémentation technique (et ses occurrences) et le service publié utilisé par les tiers, exposer des API consiste à proposer des mécanismes à des tierces parties, via une passerelle contrôlée et sécurisée selon un modèle B2B, B2C ou B2B2C. »
De nouveaux risques pour les données
Plusieurs risques sont induits par les API :
- Les applications et les données sont par définition plus exposées.
- Un ensemble riche (et souvent hétérogène) de frameworks, librairies et produits introduit de nouvelles vulnérabilités.
- La conception des API n’intègre pas toujours suffisamment la sécurité.
- Les API et les données qu’elles véhiculent sont attractives pour les acteurs malveillants.
- L’urbanisation et la gouvernance des API ne sont pas toujours bien conçues.
- Les implications de processus externes non ou mal maîtrisés par des appels à des API en cascade, font courir des risques systémiques potentiels nouveaux.
« Le processus d’authentification de l’appelant est un facteur souvent déterminant dans la sécurisation du service et il faut également considérer que les attaques puissent aussi venir de l’intranet, les contrôles d’accès doivent donc être positionnés sur tous les niveaux de l’infrastructure, selon le concept du Zero Trust », précise Philippe Provost.
Celui-ci conseille également de réaliser « un suivi permanent et une analyse des messages échangés, pour détecter toute anomalie pouvant entraîner des exfiltrations de données ou l’injection de malware en mesure de compromettre la sécurité d’une partie de l’infrastructure. »
Pour Paolo Malinverno, analyste chez Gartner, « les attaquants ciblent ce qui a le plus de valeur, en l’occurrence les données, et les API constituent un vecteur pour y accéder. » La sécurité est d’ailleurs le premier challenge que les entreprises mettent en exergue (voir graphique ci-dessus), devant le manque de compétences et de standards API. Gartner suggère trois mesures : inventorier les API existantes (y compris celles provenant de tiers) et celles en cours d’implémentation, observer l’usage qui est ou sera fait et définir un comportement normal type, et, en fonction du contexte, adapter la politique de sécurité en incluant l’authentification, la protection des données et contre les attaques.
Sécuriser les API : les bonnes pratiques | |
Domaine | Recommandations |
Conception des API |
|
Architecture |
|
Tests |
|
Veille sécurité |
|
Contrôle d’accès aux API |
|
Source : Philippe Provost, Cesin. |