Sécurité des API

Gui Alvarenga - mai 10, 2024

Qu’est-ce que la sécurité des API ?

De nombreuses entreprises offrent à leurs clients l’accès à leurs données via une API (Interface de programmation d’applications) pour leur permettre de créer des solutions personnalisées. Mais cet accès comporte des risques, ce qui fait de la sécurité des API un élément crucial pour garantir la réussite d’une entreprise.

La sécurité des API implique la mise en œuvre de mesures visant à préserver la confidentialité, l’intégrité et la disponibilité des données. Ces mesures comprennent la mise en place de mécanismes d’authentification et d’autorisation permettant aux seuls utilisateurs et applications autorisés d’accéder à l’API, et la mise en œuvre de protocoles de chiffrement et d’autres protocoles de sécurité pour protéger les données en transit et au repos.

En outre, la sécurité des API englobe la surveillance et la journalisation afin de détecter les incidents de sécurité et d’y répondre, ainsi que la réalisation de tests réguliers et d’évaluations des vulnérabilités afin d’identifier les faiblesses potentielles en matière de sécurité et d’y remédier.

Ces mesures de sécurité atténuent des risques sérieux, car les compromissions des API peuvent avoir de graves conséquences pour les individus comme pour les entreprises. Les cyberattaquants peuvent exploiter les vulnérabilités des API pour accéder à des données sensibles, telles que des informations personnelles, des données financières et des identifiants de connexion. Ces exploits peuvent entraîner des vols d’identité, des fraudes et d’autres cybercrimes. Les cyberattaquants peuvent également mener des attaques par déni de service qui empêchent l’utilisation de l’API piratée.

Les entreprises utilisant des API pour se connecter à des services tiers doivent savoir qu’une violation peut nuire à leur réputation, entraîner des pertes financières, des poursuites judiciaires, ainsi que des amendes et des sanctions réglementaires. C’est pourquoi elles doivent privilégier la sécurité des API et surveiller constamment les violations potentielles pour protéger l’entreprise et ses utilisateurs.

2024 CrowdStrike Global Threat Report: résumé

Le Global Threat Report 2024 de CrowdStrike s’appuie sur les observations des experts de l’équipe CrowdStrike spécialisée dans la lutte contre les cyberadversaires. Il passe en revue les thèmes, tendances et événements marquants du paysage des cybermenaces.

Télécharger

Sécurité des API et des applications

Les gens confondent souvent « sécurité des API » et « sécurité des applications », mais ces deux concepts sont différents. Les API ont une surface d’attaque plus importante que les applications web, car elles sont conçues pour interagir avec de nombreux types de clients. Par conséquent, cette accessibilité étendue rend les API plus vulnérables aux cybermenaces. Les méthodes d’authentification utilisées par les API diffèrent également de celles utilisées par les applications web. Par exemple, les API utilisent une authentification reposant sur des jetons, alors que les applications utilisent généralement des systèmes à deux facteurs qui envoient aux utilisateurs un code sur leur smartphone. Ces derniers doivent ensuite saisir ce code manuellement dans l’application, en plus de leur mot de passe.

L’examen des 10 principaux risques de sécurité pour les API selon l’OWASP révèle qu’ils diffèrent de ceux des applications web. La liste des 10 principaux risques pour la sécurité des applications web inclut des problèmes comme les failles dans la conception de l’interface utilisateur et l’utilisation de composants vulnérables dans l’interface utilisateur. Quant aux risques spécifiques aux API, ils se concentrent sur les défauts d’autorisation au niveau des objets ou des fonctions du système.

Normes de sécurité essentielles pour les API

Lors de la création d’une API, vous devez respecter plusieurs normes pour garantir sa sécurité. Ces normes sont principalement liées au chiffrement, à l’authentification et à l’autorisation. Certaines d’entre elles, comme le TLS (Transport Layer Security), sont si étroitement intégrées aux protocoles Internet de base que vous les utilisez en ce moment même en lisant cet article.

Examinons les cinq normes les plus importantes.

1. Chiffrement TLS

Le chiffrement TLS est un protocole qui sécurise les connexions entre clients et serveurs sur Internet. Il chiffre les données à la volée pour empêcher les intermédiaires de lire les données transférées. Cette technologie de chiffrement est largement utilisée dans le commerce électronique, les services bancaires en ligne et d’autres applications web pour protéger les informations sensibles.

2. OAuth

Protocole d’autorisation populaire, OAuth (Open Authorization) permet à une entreprise d’accorder à des applications tierces l’accès à ses API sur un site web sans partager ses identifiants. Au lieu de donner un mot de passe à l’application, OAuth génère un jeton qui autorise l’accès à un compte pendant une période spécifique.

3. SAML

SAML (Security Assertion Markup Language) est une norme basée sur XML pour les échanges de données d’authentification et d’autorisation. Couramment utilisé dans les applications internes ou interentreprises, SAML permet d’élaborer des solutions d’authentification unique qui évitent à l’utilisateur d’avoir à se souvenir de plusieurs identifiants de connexion.

4. JWT

JWT (JSON Web Token) est un format de jeton optimisé pour être représenté dans des URL, transféré via HTTP et lu avec JavaScript dans un navigateur. Les jetons représentent des demandes d’accès à des services et sont utilisés pour l’authentification et l’autorisation. Ils contiennent des informations détaillées telles que l’identifiant de l’utilisateur et le délai d’expiration. En outre, des normes comme OAuth utilisent des jetons au format JWT comme jetons d’accès.

5. Aide-mémoire de l’OWASP sur la sécurité REST

REST (Representational State Transfer) est l’un des styles architecturaux les plus courants sur Internet. L’aide-mémoire de l’OWASP sur la sécurité REST fournit des directives pour sécuriser les API REST contre les cybermenaces courantes, telles que les cyberattaques par injection, la violation de l’authentification et l’exposition de données sensibles. L’une des approches recommandées consiste à utiliser JWT, une méthode sécurisée et simplifiée de transmission des données et de gestion de l’authentification des utilisateurs.

EN SAVOIR PLUS

Découvrez les 12 risques, menaces et défis principaux en matière de sécurité du cloud à surveiller pour protéger votre environnement cloud. Problèmes de sécurité du cloud

10 problèmes de sécurité des API

Les risques de sécurité les plus courants pour les API sont liés à des problèmes d’autorisation, mais d’autres facteurs peuvent également poser des problèmes de sécurité urgents. Examinons 10 des problèmes de sécurité des API les plus courants (selon l’OWASP) et voyons comment les éviter.

1. Défaillance de l’autorisation au niveau de l’objet

Ce risque survient lorsqu’une API n’applique pas correctement l’autorisation au niveau de l’objet, ce qui permet aux cyberattaquants d’accéder à des données auxquelles ils ne devraient pas avoir accès ou de les modifier. Pour éviter ce problème, utilisez un mécanisme de contrôle d’accès centralisé pour gérer l’autorisation au niveau de l’objet. Ce mécanisme doit être en mesure d’appliquer les politiques de contrôle d’accès au niveau de l’objet et de gérer les relations complexes entre les objets.

2. Défaillance de l’authentification des utilisateurs

Ce risque survient lorsqu’une API n’authentifie pas correctement les utilisateurs, ce qui permet aux cyberattaquants de se faire passer pour des utilisateurs légitimes et d’accéder à des données sensibles. Pour atténuer les risques que présente une violation de l’authentification des utilisateurs, mettez en place l’authentification multifacteur et utilisez des mécanismes sécurisés de stockage des mots de passe. L’authentification multifacteur renforce la sécurité et nécessite plusieurs appareils pour se connecter. Les mécanismes de stockage sécurisé des mots de passe, tels que le hachage et le salage, compliquent la tâche des cyberattaquants.

3. Défaillance de l’autorisation au niveau de la propriété de l’objet

Dans les systèmes qui utilisent de grands objets, le risque est qu’un objet expose plus de données que nécessaire. Même lorsque le système utilise une autorisation au niveau de l’objet, ce dernier peut toujours avoir des propriétés qui incluent des données sensibles. La solution consiste à utiliser le chiffrement pour protéger les données sensibles et limiter la quantité de données exposées. Le chiffrement peut alors contribuer à protéger les données en transit et au repos. Le filtrage des propriétés des objets avant de les envoyer à un client peut contribuer à réduire l’impact d’une compromission de données.

4. Manque de ressources et limitation du débit

Lorsqu’une API n’alloue pas correctement les ressources ou n’applique pas des limites de débit, les cyberattaquants peuvent lancer des attaques par déni de service. Pour prévenir ces cyberattaques, mettez en œuvre des mécanismes de limitation du débit et d’allocation des ressources. La limitation du débit peut empêcher les cyberattaques de submerger l’API de demandes, et les mécanismes d’allocation des ressources permettent de s’assurer que les ressources sont allouées de manière équitable et efficace.

5. Défaillance de l’autorisation au niveau des fonctions

Ce risque survient lorsqu’une API n’exige pas d’autorisation pour chacun de ses endpoints. Cette défaillance peut permettre aux cyberattaquants d’appeler des endpoints qui ne devraient être utilisés que par un administrateur. L’utilisation d’un mécanisme de contrôle d’accès centralisé pour gérer l’autorisation au niveau des fonctions peut contribuer à atténuer ce risque. Le mécanisme de contrôle d’accès doit être en mesure d’appliquer des politiques de contrôle d’accès au niveau des fonctions et de gérer des relations complexes entre les fonctions.

6. Falsification des requêtes côté serveur

Lorsqu’une API accepte une URL d’un client pour récupérer des données d’un service tiers et ne valide pas l’URL, elle permet à un cyberattaquant de soumettre des URL malveillantes qui peuvent exposer des services internes ou de scanner l’API pour trouver des ports ouverts. L’utilisation de listes d’autorisation d’URL ou le filtrage des noms d’hôtes et des adresses IP internes peuvent contribuer à empêcher ce problème.

7. Erreurs de configuration de la sécurité

Pour sécuriser les API et empêcher les cyberattaquants d’exploiter les vulnérabilités, vous devez adopter des pratiques de codage sûres et mettre à jour régulièrement les configurations logicielles et de sécurité. L’utilisation de valeurs par défaut sécurisées, la désactivation des fonctions inutiles et la mise à jour régulière des logiciels et des configurations de sécurité ne sont que quelques-unes des bonnes pratiques pour une configuration de sécurité renforcée.

8. Absence de protection contre les cybermenaces automatisées

Les cyberattaquants utilisent l’automatisation pour détourner les flux d’activité habituels à leur avantage financier, soit en dirigeant des bots vers des programmes de parrainage payants, soit en achetant en masse des produits limités pour les revendre à profit. Bien que certaines de ces activités ne soient pas illégales, elles peuvent tout de même entraîner une perte de réputation ou des pertes financières pour l’entreprise. Pour écarter ce risque, veillez à ce que les flux d’achat prévoient des limites raisonnables par personne et à ce que les programmes de parrainage ne soient payés que lorsqu’une preuve de l’existence de la personne a été fournie. Il est également recommandé de prendre les empreintes digitales des appareils et de bloquer les adresses IP suspectes, y compris les nœuds de sortie Tor.

9. Mauvaise gestion des actifs

Lorsqu’une API ne gère pas correctement des actifs tels que les clés et les certificats, des utilisateurs non autorisés peuvent accéder à des informations sensibles. C’est une autre raison pour laquelle il est essentiel d’utiliser des pratiques de codage sécurisées et de mettre régulièrement à jour les logiciels et les configurations de sécurité. La gestion des actifs peut également inclure l’utilisation de valeurs par défaut sécurisées et la désactivation des fonctionnalités inutiles.

10. Utilisation non sécurisée d’API tierces

Berkshire Bank, en pleine expansion et focalisée sur sa transformation digitale, fait face à plusieurs défis informatiques majeurs : sécuriser ses API, contrer l’augmentation des vulnérabilités zero day, gérer les cyberrisques liés aux tiers lors du transfert des systèmes et services bancaires vers le cloud, et répondre à la sophistication et à la fréquence accrues des cyberattaques. Dans de nombreux cas, ces API tierces sont considérées comme intrinsèquement sûres. Mais ces API peuvent toujours devenir un vecteur d’attaque dans un système, et permettre aux utilisateurs malveillants d’envoyer indirectement des entrées problématiques, telles que des injections SQL ou des URL falsifiées. Il est essentiel d’assainir les entrées, non seulement celles des clients, mais aussi celles de tous les systèmes susceptibles de saisir des données dans votre API. L’utilisation de listes d’autorisation pour les noms d’hôtes et la restriction des redirections peuvent contribuer à garantir la sécurité des API tierces.

Étude de cas : Berkshire Bank

Berkshire Bank, en pleine expansion et focalisée sur sa transformation digitale, fait face à plusieurs défis informatiques majeurs : sécuriser ses API, contrer l’augmentation des vulnérabilités zero day, gérer les cyberrisques liés aux tiers lors du transfert des systèmes et services bancaires vers le cloud, et répondre à la sophistication et à la fréquence accrues des cyberattaques.

Découvrez pourquoi Berkshire Bank est « très satisfaite » de la plateforme CrowdStrike Falcon®.

Télécharger maintenant

Garantissez la sécurité de vos API

Gérer la sécurité des API peut paraître complexe, mais ce n’est pas forcément le cas. La plateforme CrowdStrike Falcon® évalue votre stratégie de sécurité des API sur plusieurs hôtes, en gardant un œil sur les configurations de vos services et en vous aidant à identifier les cybermenaces. Avec CrowdStrike Threat Graph®, l’IA à l’échelle du cloud analyse les événements des API en temps réel.

Testez immédiatement la plateforme Falcon pour améliorer la télémétrie de vos endpoints et de vos workloads grâce à des données de sécurité exploitables. Commencez dès maintenant votre essai gratuit de la plateforme Falcon.

À PROPOS DE L'AUTEUR

Guilherme (Gui) Alvarenga est responsable du marketing produits pour le portefeuille de solutions de sécurité du cloud de CrowdStrike. Il possède plus de 15 ans d’expérience dans la promotion de solutions cloud, SaaS, réseau et de Machine Learning pour des entreprises telles que Check Point, NEC et Cisco Systems. Il est titulaire d’un diplôme de publicité et marketing de l’Universidade Paulista au Brésil, et a obtenu son MBA à la San Jose State University. Il a étudié l’informatique appliquée à l’Université de Stanford et s’est spécialisé dans la sécurité du cloud et le Threat Hunting.