Les API sont au coeur des systèmes d’information d’aujourd’hui. Elles permettent d’interconnecter les applications, les services, les données. Mais elles sont autant de portes d’entrée qu’il faut pouvoir sécuriser d’autant qu’elles ont aussi un rôle actif à jouer dans la protection des SI…

Par Fabrice Hugues, Directeur innovation et solutions, Software AG

À l’origine, les entreprises utilisent des API pour connecter des services et transférer des données. On parle d’API « défaillantes » lorsque ces dernières ont été piratées par des cybercriminels ou ne sont tout simplement pas suffisamment protégées.

L’attaque de Panera Bread survenue en 2018 en est un bon exemple : la chaîne de café américaine avait laissé un terminal API non authentifié exposé sur son site web, permettant à quiconque de consulter les informations confidentielles de sa clientèle (date de naissance, numéros de carte de crédit, restrictions alimentaires, etc.).
Au final, ce sont les données de plus de 37 millions d’utilisateurs qui ont été divulguées sur une durée de huit mois, à cause d’une faille dans une API qui ne nécessitait pas d’authentification.

À l’heure actuelle, les entreprises multiplient les innovations et l’automatisation de leurs processus, augmentant ainsi le risque de cyberattaque lié à ces nouvelles portes d’entrée dans leurs systèmes informatiques.
Prenons le cas de l’IoT et de l’industrie 4.0 : les architectures des SI modernes s’appuient sur des API aussi bien pour des usages internes qu’externes, les nouveaux modes de communication et la digitalisation des échanges forçant les usines à sortir de leur autarcie pour communiquer avec l’extérieur.

Cependant, toutes les données ne se valent pas et ne nécessitent pas le même niveau de protection. La stratégie de sécurisation des API dépend surtout du type de données transférées. À partir du moment où une application tierce se connecte à une API, il faut connaître la manière dont cette application redistribue les informations dans le cloud ou ailleurs. Au-delà de l’utilisation de tokens et de protocoles sécurisés, il s’agit de prendre en compte à la fois l’architecture et le design du système, mais également le développement du code des API et des applications exposant ces dernières.

Bien masquer l’architecture technique

Il est important d’assurer une séparation entre la partie exposition et la partie intégration. Par exemple, les consommateurs ne doivent jamais connaître l’URL réelle du producteur et il est même souhaitable de mettre en place des ruptures de protocoles entre les différentes couches, de façon à gérer les menaces en amont des applications et de valider les DDoS (Denial of Service), la taille des requêtes, la validation des consommateurs et les listes blanches ou noires d’adresses IP.

Assurer le contrôle au niveau des données

Un contrôle au niveau des données consiste d’abord à valider que les requêtes sont bien associées au bon profil d’utilisateurs, car souvent la sécurité se limite à une autorisation d’appel de l’API sans validation sur le contenu fonctionnel de l’appel. Par exemple, pour une API délivrant les détails confidentiels d’un client, il s’agit de sécuriser d’une part l’accès technique à cette API, et d’autre part de valider que seules les personnes ayant la responsabilité de ces clients puissent visualiser les données. On retrouve souvent ce cas de figure lorsque l’on souhaite exposer une application initialement conçue pour un usage interne. Le désir d’aller vite et la pression du quotidien prennent parfois le dessus sur la nécessité de valider la requête.

Accompagner l’explosion des micro-services

L’explosion des micro-services multiplie les points d’échanges dans le système d’information. Il est donc nécessaire de disposer de solutions modulaires capables de supporter ces architectures distribuées à l’aide de passerelles (gateways), dont la gestion des règles de sécurité est centralisée. Cela permet d’appliquer les mêmes règles à un ensemble d’API sans intervention manuelle et donc de limiter les risques.

Sécuriser les nouveaux points d’entrée

Un autre problème important concerne la sécurisation des nouveaux points d’entrée dans le SI avec les objets connectés, car ces derniers ne possèdent pas tous la capacité de stocker les clés et les certificats pour assurer une connexion sécurisée avec les outils d’administration IoT. Or, il est fondamental de savoir qui est responsable de l’ouverture de la connexion entre l’objet et la plateforme IoT, et de prendre des mesures pour éviter le DoS et l’usurpation d’identité soit au niveau du dispositif, soit au niveau de la plateforme IoT.

Au niveau du dispositif, il est important que ce soit l’objet lui-même qui initie les connexions. Il faut donc mettre en place des mécanismes d’abonnement, où le dispositif s’abonne à des flux d’information. Enfin, pour éviter les attaques sur la plateforme IoT, la mise en place de moteurs d’analyse en temps réel est la solution la plus efficace. Les principales plateformes d’IoT embarquent des modules de streaming analytics qui permettent d’évaluer tous les comportements anormaux et de réagir au plus vite.