Sécurité

Sécurité des APIs

Share this post:

“API security challenges have emerged as a top concern for most software engineering leaders, as unmanaged and unsecured APIs create vulnerabilities that could accelerate multimillion dollar security incident” (Gartner -Predicts 2022: APIs Demand Improved Security and Management –Dec 6, 2021.)

De nos jours, et particulièrement depuis l’avènement du Cloud, l’Internet des Objets, de l’Open Finance/Open Banking, une très grande majorité des applications informatiques que nous utilisons quotidiennement en entreprise ou pour des besoins personnels, tirent avantage de services réutilisables, accessibles au travers d’interfaces programmatiques, appelées APIs.

Nombre de ces applications mettent en jeu des données sensibles ou personnelles, régies généralement par des règlementations telles que le GDPR, et utilisent des infrastructures d’exécution et des réseaux d’échange d’information qui requièrent une protection permettant de garantir l’atteinte des objectifs de sécurité tels que :

  • L’authenticité des accès aux systèmes et données
  • La protection des infrastructures, applications, services et des données mises en jeu, contre les accès non autorisés
  • La confidentialité des échanges et l’intégrité des données
  • La disponibilité des systèmes et données
  • L’auditabilité des accès aux infrastructures, applications, services et données

Prévenir les Vulnérabilités & Anticiper les Menaces

Les objectifs de sécurité des APIs dépendent de l’environnement d’utilisation et d’opérabilité des APIs considérées. Ils doivent prendre en compte les menaces (dans l’environnement considéré), telles que :

  • L’usurpation d’identité
  • La falsification des données en transit ou au repos
  • La répudiation
  • Le déni de service
  • L’élévation de privilèges
  • L’exposition de données sensibles
  • Les attaques par force brute
  • Les attaques de phishing
  • Les attaques de type injection de code

susceptibles de violer l’atteinte des objectifs de sécurité.

Des mécanismes/contrôles de sécurité doivent être mis en place pour atteindre ces objectifs et, de bonnes pratiques de conception, de développement d’applications et d’exploitation des infrastructures sont nécessaires pour prévenir et atténuer les vulnérabilités potentielles auxquelles sont exposées les APIs.

La sécurité des APIs doit être prise en compte sur toute la chaine de conception, depuis l’Inception de celles-ci, jusqu’à leur déploiement sur les infrastructures cibles d’exécution et d’exposition, en passant par l’application de bonnes pratiques de conception et de développement telles que celles liées à la sécurisation des secrets ou des requêtes SQL, par la sécurisation des pipelines de construction des artefacts (tels que les conteneurs), la sécurisation des artefacts eux-mêmes, qui composent ces APIs, et la sécurisation des infrastructures.

Mécanismes et Contrôles de Sécurité – Principes d’Architecture

Il est important de garantir la disponibilité des APIs, en les protégeant, entre autres, contre les attaques de type déni de service (DoS, DDoS) ou SQL Injection, pour n’en citer que quelques-unes, en mettant en place, en entrée, dans la chaine d’accès aux APIs, des dispositifs (ex : WAF) permettant de s’en prémunir et de limiter/contrôler le nombre de requêtes auxquelles sont exposées les APIs, au travers de « rate limiters », par exemple. En effet, un nombre important de requêtes malveillantes ou des requêtes ayant une charge utile (payload) exagérément importante, peut rendre indisponible une API, l’empêchant de traiter les requêtes légitimes de ses vrais clients.

Une fois la légitimité de l’accès à une API vérifiée au niveau des dispositifs périmétriques de sécurité évoqués ci-dessus, un mécanisme de sécurité doit authentifier le client à l’origine de la requête et déterminer le niveau d’accès (profil) qu’il peut avoir sur les opérations exposées par l’API. Suivant la sensibilité de l’opération demandée ou des données mises en jeu, l’authentification du client peut nécessiter un ou plusieurs facteurs d’authentification (tels que : identifiant + Mot de passe, Clé numérique, Certificat…)

Les accès réussis ou non à une API doivent être tracés dans des logs d’audit, conçus pour garantir la non-répudiation des clients qui en sont à l’origine. L’emplacement du composant responsable des logs d’audit dans la chaine d’accès est crucial et doit permettre de tracer les tentatives d’accès avant même que le mécanisme de contrôle d’autorisation des requêtes correspondantes ne soit activé.

Sur la base des droits (rôle/profil) du client initiateur d’une requête sur une API, un composant de la chaine d’accès aux APIs doit vérifier les autorisations dont dispose le client et s’assurer qu’il a le droit d’accéder à l’opération demandée. Le résultat positif ou négatif de cette vérification doit également être tracé dans un journal d’audit. Seules les requêtes pour lesquelles le résultat est positif sont transmises à l’API.

Les composants de la chaine de liaison décrite ci-dessus sont mutualisés pour un ensemble d’APIs d’un domaine de sécurité donné. Différents domaines de sécurité (ex : APIs Intranet d’une entreprise vs APIs de la même entreprise mais exposées sur Internet) peuvent avoir des chaines de liaison différentes avec des composants de sécurité différents (ex : Authentification OpenID Connect/OAuth2 vs mTLS vs API Key vs SAML vs…).

En synthèse

La sécurité des APIs requiert de bien comprendre leur contexte d’opérabilité et donc les menaces auxquelles elles sont exposées, de bien identifier leurs vulnérabilités potentielles et de définir avec précision les objectifs de sécurité que l’on souhaite atteindre pour les protéger.

La sécurité des APIs doit être prise en compte sur toute la chaine de production, depuis la phase d’initialisation (Inception) d’un projet API, en passant par l’architecture de la chaine d’accès aux APIs (briques techniques et leur ordonnancement optimal), qui implémente les mécanismes de contrôle nécessaires à l’atteinte des objectifs de sécurité, jusqu’à la mise en œuvre de bonnes pratiques de conception, développement, déploiement et tests, permettant d’atténuer voire éliminer les vulnérabilités auxquelles les APIs sont exposées.

Les responsabilités détaillées (des mécanismes de contrôle) portées par les composants architecturaux de la chaîne d’accès aux APIs, leur ordonnancement, ainsi que les stratégies d’atténuation des vulnérabilités des APIs, à mettre en œuvre dans leur cycle de vie, sont des sujets candidats à des articles complémentaires, à venir, sur la « Sécurité des APIs ».

Executive IT Architect - IBM Certified IBM France Architect Profession co-Leader

More Sécurité stories
12 juin 2024

Simplifier les déclarations liées à la CSRD grâce aux nouvelles fonctionnalités d’IBM®Envizi™

IBM a le plaisir d’annoncer la prise en compte de la directive européenne (CSRD) dans le module « sustainability reporting manager » d’IBM® Envizi™. Cette considération aidera les entreprises à répondre aux exigences de reporting de la directive européenne (CSRD). La CSRD impose aux entreprises de fournir des informations et des indicateurs définis via les […]

Continue reading

12 juin 2024

Comment bien préparer la migration d’un parc applicatif dans le cloud avec IBM Consulting (2/2) ?

Dans notre article « Comment bien préparer la migration d’un parc applicatif dans le cloud avec IBM Consulting (1/2) ? », nous avons présenté les différentes étapes du pré-assessment technique qui consiste à analyser l’ensemble des applications du patrimoine applicatif. Dans cette seconde partie, nous allons détailler l’assessment technique à réaliser pour chacune des applications.   Phase […]

Continue reading

12 juin 2024

Comment bien préparer la migration d’un parc applicatif dans le cloud avec IBM Consulting (1/2) ?

Contrairement aux applications conçues et développées spécifiquement pour un environnement cloud, un parc applicatif « on premises » a généralement été bâti au fil du temps, avec des technologies datant d’époques différentes. Il est par nature plus ou moins hétérogène. Pour différentes raisons (par exemple la scalabilité horizontale et verticale de manière automatique en fonction du besoin, […]

Continue reading