Publication : 20 novembre 2023
Contributeurs : Chrystal China, Michael Goodwin
La sécurité des API fait référence aux pratiques et procédures qui protègent les interfaces de programmation des applications (API) contre les abus, les attaques de bots malveillants et d'autres menaces pour la cybersécurité. Il s'agit d'un sous-ensemble de la sécurité web, mais qui se concentre spécifiquement sur les API, qui sont de plus en plus essentielles à la gestion informatique des entreprises.1
Les API sont devenues les éléments constitutifs de la transformation numérique, permettant aux entreprises d'offrir des services aux développeurs et partenaires externes. Étant donné que les API orchestrent la communication et l'échange de données entre les applications, elles peuvent faciliter des expériences utilisateur plus connectées, étendre la portée globale de l'entreprise et favoriser une innovation technologique qui repousse les limites. Les API optimisent également l'intégration des services afin que les entreprises puissent s'adapter rapidement à l'évolution du marché et aux demandes des clients.
Mais la prolifération des API s'accompagne souvent de problèmes de sécurité.
Les API se situent entre les ressources informatiques d'une organisation et les développeurs de logiciels tiers, ou entre les ressources informatiques et les individus, et fournissent des données et des informations aux terminaux. Les terminaux étant exposés au monde extérieur, ils peuvent faire des API une cible lucrative pour divers types d'attaques.
Gartner nomme IBM parmi les leaders de son Magic Quadrant dans la catégorie API Management.
L'évolution de la gestion et de la sécurité des API est intrinsèquement liée à l'évolution des API elles-mêmes. Les premières API étaient principalement axées sur la communication inter-processus au sein d'un système unique. La sécurité (ou l'absence de sécurité) était donc moins préoccupante, car la communication était limitée à une seule machine.
Cependant, avec l'avènement de l'internet des objets (IoT) et des architectures de microservices natives du cloud, les API se sont développées pour permettre une communication transparente et un routage des appels entre les applications et dans les environnements DevOps. Une API moderne et de haute qualité, par exemple, representational state transfer (REST) et simple object access protocol (SOAP), orchestrera l'intégration des applications, spécifiera les formats de données et dictera les types d'appels, les procédures et les conventions.
Les API Web (GraphQL, REST API et SOAP API, en particulier) ont changé la donne en élargissant leurs fonctionnalités pour inclure des capacités d'intégration de grande envergure à travers une myriade de réseaux complexes.
Mais comme les technologies avancées dépendent fortement des terminaux API pour leur fonctionnalité, les entreprises et les équipes de sécurité doivent mettre en œuvre des mesures de sécurité robustes pour protéger les données et les services web et, en fin de compte, tirer le meilleur parti des ressources informatiques.
S'ils ne sont pas correctement sécurisés, les terminaux API peuvent permettre à des pirates d'obtenir un accès non autorisé à des données sensibles, de perturber les opérations de service, ou les deux, avec des conséquences potentiellement dévastatrices.En voici les exemples les plus courants :
Dans une économie numérique dynamique, les API sont essentielles à la réactivité des entreprises, mais leur nature ouverte peut présenter des risques importants pour la sécurité des données. Les violations de la sécurité des API ont entraîné des fuites massives de données, même pour de grandes entreprises réputées comme John Deere, Experian et Peloton.2
Et dans un environnement technologique aussi mondialisé, les violations de la sécurité menacent tous les grands fournisseurs de services, quel que soit leur secteur d'activité ou leur emplacement géographique. Par exemple, en 2022, une attaque API contre la société de télécommunications australienne Optus a révélé les noms, les numéros de téléphone, les détails du passeport et les informations relatives au permis de conduire de près de 10 millions de clients.3
Ces incidents soulignent l'importance de la protection des API et ont accéléré le développement de stratégies et d'outils complets de sécurité des API.
La mise en œuvre de protocoles de sécurité rigoureux pour les API protège les données, les applications et les services que les terminaux d'API exposent, tout en garantissant leur disponibilité pour les utilisateurs légitimes. La sécurité des API ne se limite pas à la protection des terminaux. Elle privilégie également la sécurité des interactions réseau telles que les transmissions de données, les demandes des utilisateurs et les communications inter-applications tout au long du cycle de vie de l'API.
Voici quelques-unes des solutions de sécurité API les plus courantes pour renforcer les infrastructures informatiques :
L'authentification est le processus de vérification de l'identité d'un utilisateur, d'un système ou d'un processus. Dans le contexte des API, elle fait référence à l'utilisation de protocoles d'authentification des utilisateurs tels que OAuth 2.0, les clés API et les spécifications JWT pour s'assurer qu'un demandeur est bien celui qu'il prétend être.
L'autorisation, quant à elle, est le processus de vérification de l'accès d'un utilisateur authentifié. Une fois l'utilisateur authentifié, les contrôles d'accès basés sur les rôles doivent limiter l'accès de l'utilisateur aux ressources dont il a besoin ou qu'il demande.
Avec le chiffrement, le texte brut et d'autres types de données sont convertis d'une forme lisible en une version codée qui ne peut être décodée que par une entité disposant d'une clé de déchiffrement. En utilisant des technologies de chiffrement telles que la sécurité de la couche de transport (TLS), la connexion SSL et les protocoles de chiffrement TLS, les équipes peuvent s'assurer que le trafic de l'API ne sera pas intercepté ou modifié par des acteurs malveillants ou des utilisateurs non autorisés.
Les protocoles de validation des entrées protègent les API contre les données malveillantes, telles que les attaques par injection SQL et les scripts intersites, en s'assurant que les entrées répondent à certains critères (longueur, type, format, plage, etc.) avant d'être traitées. L'utilisation de pare-feu d'applications web (WAF) et la validation de schémas XML ou JSON peuvent aider les équipes de sécurité à automatiser les processus de validation, en analysant de manière préventive les requêtes entrantes et en bloquant le trafic malveillant avant qu'il ne soit transmis au serveur.
La limitation du débit sécurise les ressources de l'API contre les attaques par force brute et les attaques DoS en limitant le nombre d'appels qu'un utilisateur ou une adresse IP peut effectuer dans un laps de temps donné. Elle garantit que toutes les demandes d'API sont traitées rapidement et qu'aucun utilisateur ne peut submerger le système de demandes nuisibles.
À l'instar de la limitation du débit, la régulation restreint le nombre d'appels API reçus par un système. Cependant, au lieu d'opérer au niveau de l'utilisateur/client, elle agit au niveau du serveur/réseau. Elle limite et contingente la bande passante du système dorsal de l'API en limitant l'API à un certain nombre d'appels, de messages, ou les deux, par seconde.
Les en-têtes de sécurité peuvent être particulièrement efficaces pour prévenir les attaques par détournement de clics. L'en-tête « content-security-policy », par exemple, indique au navigateur les ressources qu'il peut demander au serveur. L'en-tête « x-content-type-option » empêche les navigateurs d'essayer de modifier les types de contenu MIME-sniff, et l'en-tête « strict-transport-security » impose des connexions sécurisées (HTTP sur SSL/TLS) au serveur.
L'installation d'API Gateways est l'un des moyens les plus simples de restreindre l'accès aux API et d'ajouter un niveau supplémentaire de sécurité au réseau, en particulier dans le cas d'API ouvertes. Un API Gateway agit comme un point d'entrée unique pour toutes les demandes d'API qu'un système reçoit, en normalisant les interactions API et en offrant des fonctions de sécurité telles que la mise en cache, l'analyse, la composition d'API, la limitation de débit, le chiffrement, l'enregistrement et le contrôle d'accès.
La tenue de journaux d'audit complets et à jour ainsi que leur révision fréquente permettent aux entreprises de suivre l'accès aux données et leur utilisation, et d'enregistrer chaque demande d'API. Compte tenu de la complexité des écosystèmes d'API, le suivi de l'activité des API peut nécessiter beaucoup de travail, mais les procédures d'audit et d'enregistrement peuvent faire gagner du temps aux équipes qui doivent revenir sur leurs pas à la suite d'une violation de données ou d'un manquement aux règles de conformité.
La gestion proactive des erreurs dans les environnements API peut empêcher les cybercriminels de révéler des informations sensibles sur les processus API. Idéalement, toute erreur de l'API renvoie des codes d'état HTTP qui indiquent de manière générale la nature de l'erreur, fournissant ainsi un contexte suffisant pour que les équipes puissent comprendre et résoudre le problème sans risquer une exposition excessive des données.
Comme pour toute application logicielle ou tout système, une surveillance et une maintenance vigilantes en temps réel sont essentielles pour maintenir la sécurité des API. Surveillez toute activité inhabituelle sur le réseau et mettez à jour les API avec les derniers correctifs de sécurité, les corrections de bogues et les nouvelles fonctionnalités.
Les organisations devraient également adopter des normes de sécurité opportunes telles que les recommandations de sécurité des API de l'Open Web Application Security Project (OWASP). La liste OWASP des 10 meilleures solutions de sécurité pour les API, par exemple, offre un cadre permettant de comprendre et d'atténuer les menaces les plus critiques et les plus courantes en matière de sécurité des API, telles que l'authentification erronée, l'affectation de masse et la falsification des requêtes côté serveur.
Chaque nouvelle version d'un logiciel API est accompagnée de mises à jour de sécurité et de corrections de bogues qui comblent les lacunes de sécurité des versions antérieures. Mais sans pratiques de versions adéquates, les utilisateurs peuvent accidentellement (ou intentionnellement) déployer une version obsolète de l'API et mettre en danger des données sensibles. Des pratiques attentives en matière de version et de documentation permettent aux entreprises d'accélérer le développement des API et d'éliminer progressivement les anciennes versions sans perturber les services, en poussant les utilisateurs vers des itérations plus récentes et plus sûres.
Par exemple, si une équipe découvre une violation de la sécurité dans la version 1 d'une API, elle peut la corriger dans la deuxième. Grâce à la gestion des versions, les équipes chargées de la sécurité peuvent encourager les utilisateurs à passer de la version 1 à la version 2 à leur rythme, tout en indiquant clairement dans la documentation relative à la version que la version 1 présente une faille de sécurité connue.
Les tests de sécurité exigent que les développeurs soumettent des requêtes standard à l'aide d'un client API afin d'évaluer la qualité et l'exactitude des réponses du système. La réalisation de tests de sécurité réguliers pour identifier et combler les lacunes de sécurité aide les équipes à corriger les vulnérabilités de l'API avant que les auteurs d'attaques n'aient la possibilité de les exploiter.
IBM API Connect est une solution de gestion complète du cycle de vie des API qui permet de créer, de gérer et de sécuriser les API de manière cohérente, de les rendre plus accessibles et de les monétiser, contribuant ainsi à alimenter la transformation numérique des API hébergées localement et dans différents clouds.
IBM API Connect offre une gamme de fonctionnalités vous permettant de sécuriser, de contrôler et d’arbitrer l’accès à vos API par l’authentification et l’autorisation (utilise les protocoles OAuth, OpenID Connect et des services tiers). Déployez vos API n’importe où, d’une zone DMZ à un emplacement partagé avec vos applications cloud natives et vos microservices, en protégeant l’accès au moment de l’exécution, où que vous soyez.
Renforcez la sécurité des API dans toute votre entreprise grâce à des fonctionnalités avancées basées sur l'IA. IBM, l’un des leaders de la gestion des API et des passerelles d’applications, s’associe à Noname Security, un leader de la sécurité des API, pour offrir des fonctionnalités avancées de sécurité des API. Cette solution conjointe vous aidera à atteindre de nouveaux niveaux de confiance en matière de sécurité.
Maximisez la valeur des API pour stimuler votre activité numérique avec une solution complète de gestion des API.
Ces tutoriels fournissent des instructions pratiques qui aident les développeurs à apprendre à utiliser les technologies dans leurs projets.
Venez pour trouver des réponses. Restez pour bénéficier de meilleures pratiques. Tout ce qui manque, c'est vous.
1 Research Brief: The Urgency of Addressing API Security in an Application Security Program (lien externe à ibm.com), Enterprise Strategy Group, 16 octobre 2023.
2 On the Radar: Wib secures APIs throughout their full lifecycles (lien externe à ibm.com), Omdia, 1er septembre 2023.
3 The next big API security breach looms: here’s how to prepare (lien externe à ibm.com), SC Magazine, 19 octobre 2023.