BLOG | NGINX

Prévenez les attaques d'API avec des outils essentiels et des bonnes pratiques pour la sécurité des API

NGINX-Partie-de-F5-horiz-black-type-RGB
Andrew Stiefel Miniature
André Stiefel
Publié le 18 juillet 2023

Ces dernières années, la prolifération des API a considérablement modifié la manière dont les entreprises fonctionnent. Les API permettent à différentes applications de communiquer et d'échanger des données entre elles, permettant ainsi des processus commerciaux et un développement de logiciels plus efficaces.

Cependant, l’utilisation accrue des API entraîne un risque de prolifération des API , où les API sont créées et déployées au sein d’équipes et d’architectures distribuées, souvent sans supervision ni gestion appropriées. Cela peut créer un nouvel ensemble de risques de sécurité pour les entreprises, car chaque API représente un point d’entrée potentiel permettant aux attaquants d’accéder sans autorisation à des données et systèmes sensibles.

L'essor du développement logiciel basé sur les API

L’un des principaux moteurs de la prolifération des API est la prolifération des microservices. Une architecture de microservices divise une application plus grande en applications individuelles plus petites qui communiquent entre elles via une API. Cela permet de diviser les applications complexes en parties distinctes qui peuvent être gérées par des équipes individuelles et mises à l'échelle indépendamment les unes des autres pour répondre aux demandes de trafic.

Les microservices offrent de nombreux avantages aux développeurs, notamment une flexibilité et une évolutivité accrues. Toutefois, ces avantages s’accompagnent de compromis, notamment une complexité supplémentaire. Par conséquent, de nombreuses entreprises adoptent une approche API-first pour créer des microservices . Dans cette stratégie, le processus de conception des applications et des services commence par un contrat API qui décrit le fonctionnement d'une API, jusqu'au format des requêtes et des réponses.

Intégrer la sécurité tout au long du cycle de vie de l'API

La surface d'attaque augmente à mesure que les API prolifèrent

Les avantages du développement de logiciels axés sur les API peuvent être facilement compromis par le fait de ne pas prendre au sérieux la sécurité des API, en particulier lors de la conception et du déploiement. Au niveau le plus élémentaire, plus d’API signifie plus de surface d’attaque. Bien que les API jouent un rôle essentiel dans le développement de logiciels modernes, elles deviennent simultanément plus faciles à exploiter.

En 2018, Gartner a prédit que les API deviendraient le vecteur d’attaque le plus courant pour les applications d’ici 2022. Au mieux, leur prédiction d’un tel retard était trop optimiste. Des violations d’API très médiatisées dans de grandes entreprises, affectant des millions d’utilisateurs, se produisaient déjà et ne font que devenir plus courantes :

L’ampleur et la variété de ces attaques révèlent les défis auxquels sont confrontés les responsables de la sécurité et de l’ingénierie. Certaines attaques exploitent des API qui ont été incorrectement exposées sur Internet. D’autres utilisent des clés API ou d’autres méthodes d’authentification qui ont été exposées de manière incorrecte dans les référentiels de code. Ou bien les attaquants accèdent aux environnements internes via des exploits VPN et utilisent des API internes pour exfiltrer des données.

Contrecarrer les attaques d'API nécessite une stratégie et des outils adaptés

Le moyen le plus courant de se protéger contre les menaces API est de combiner des stratégies de sécurité des applications Web traditionnelles avec des techniques de sécurité API modernes. Les stratégies traditionnelles sont souvent inefficaces face aux diverses menaces pesant sur les API d’aujourd’hui. Les techniques modernes telles que la découverte automatisée d’API et les tests de contraste d’API tentent de combler ces lacunes.

Il est essentiel pour les entreprises de se protéger à droite (mettre en œuvre des contrôles globaux et des politiques de sécurité pour protéger les applications et les API déployées) et de se déplacer vers la gauche (intégrer la sécurité dans le code pour éliminer les vulnérabilités avant que les applications et les API ne soient mises en production). Aucune des deux stratégies ne peut à elle seule assurer une sécurité complète des API. La clé pour prévenir les violations est donc une approche holistique qui couvre trois catégories de pratiques de sécurité des API :

Sécurité des API de bout en bout

En combinant la bonne stratégie avec les bons outils, les organisations peuvent mieux protéger leurs API contre les attaques et garantir la sécurité de leurs systèmes logiciels. Examinons les fonctionnalités et les outils importants que les responsables de l’ingénierie des plateformes doivent mettre en œuvre pour protéger les API tout au long de leur cycle de vie.

Qu'est-ce que la gestion de la posture de sécurité des API ?

La gestion de la posture de sécurité des API crée une visibilité sur le nombre, les types, les emplacements et les données exposés par vos API. Ces informations vous aident à comprendre les risques associés à chaque API afin que vous puissiez prendre les mesures appropriées pour la protéger.

Fonctionnalité clé :

  • Découverte automatique d'API - Découverte automatique et continue d'API pour une visibilité complète des API déployées dans un environnement
  • Caractérisation des API – Identifiez et catégorisez les API par protocole ou architecture (REST, GraphQL, SOAP, etc.) et cartographiez les flux de données sensibles pour comprendre votre exposition aux risques
  • Catalogage des API – Maintenez une liste complète des API pour encourager les équipes de développement logiciel à réutiliser les API existantes et pour aider les équipes SecOps à créer une vue complète de votre posture de sécurité

Technologies représentatives :

  • Protection des applications Web et des API (WAAP) – Exploite une position mondiale privilégiée dans l'infrastructure des API pour analyser le trafic entrant et sortant des environnements, identifier les API et créer une vue de votre exposition aux risques
  • Découverte en ligne ou basée sur un agent – Attache un agent aux passerelles API existantes, aux équilibreurs de charge ou aux contrôleurs d'entrée Kubernetes pour refléter et analyser le trafic API
  • Découverte hors bande ou sans agent – Utilise la mise en miroir du trafic ou les journaux et mesures exportés pour analyser le trafic API ; offre généralement moins de visibilité sur les API et les menaces que les autres technologies
  • Robots d'exploration de domaine – Les fournisseurs de sécurité API peuvent proposer des robots d'exploration qui sondent votre domaine à la recherche de points de terminaison API exposés qui permettent au trafic de contourner vos passerelles API et vos équilibreurs de charge où les politiques de sécurité peuvent être appliquées

Il est important de garder à l’esprit qu’aucune technologie ne peut trouver de manière fiable toutes les API de votre architecture . La plupart des techniques de découverte s’appuient sur la visibilité fournie par les équilibreurs de charge, les passerelles API et les contrôleurs d’entrée existants, et ne sont pas susceptibles de détecter les erreurs de configuration qui contournent ces composants architecturaux.

En fin de compte, la révision du code et le respect des meilleures pratiques API-first offrent une prévention à long terme plus efficace. Mais les outils de découverte d’API automatisés restent utiles pour créer rapidement une vue d’ensemble de votre posture de sécurité et pour détecter les API qui pourraient autrement rester non gérées et non sécurisées.

Qu'est-ce que les tests de sécurité des API ?

Alors que la gestion de la posture de sécurité des API concerne la sécurité à l’échelle de l’entreprise, les tests de sécurité des API concernent en grande partie les API individuelles. Dans leur forme la plus élémentaire, les tests de sécurité des API permettent d'identifier et de prévenir les vulnérabilités et les risques associés en testant l'environnement d'exécution de l'API, c'est-à-dire l'application exécutée derrière l'API. Ils permettent de garantir que les exigences de sécurité de base ont été respectées, notamment les conditions d'authentification, d'autorisation, de limitation du débit et de chiffrement.

Fonctionnalité clé :

  • Test de contrat API – Utilise la spécification OpenAPI d'une API pour vérifier qu'elle fonctionne comme prévu, en comparant les demandes des clients et les réponses du serveur. Il utilise une approche « de l’intérieur vers l’extérieur » pour découvrir si les API sont vulnérables, avant leur déploiement.
  • Tests de sécurité d'application dynamiques (DAST) – Simule des attaques contre un environnement d'exécution d'API pour trouver des vulnérabilités, en évaluant l'API de « l'extérieur vers l'intérieur » comme un utilisateur malveillant.

Technologies représentatives :

  • Logiciel de test de contrat API – Outils spécialisés pour exécuter des tests qui segmentent les requêtes et les réponses API pour vérifier que le comportement du client et du serveur est conforme au contrat API
  • Logiciel de test de sécurité des applications (AST) – Outils qui analysent et testent les applications, y compris les API, en simulant des attaques

Il existe à la fois des outils de test de contrats open source et des produits commerciaux de fournisseurs de sécurité API dédiés. Le marché des tests de sécurité des applications (AST) existe depuis des décennies et de plus en plus de fournisseurs proposent des outils d'analyse et de test dédiés aux API.

Qu'est-ce que la protection d'exécution des API ?

La protection de l’exécution des API fait référence à la sécurisation des API pendant qu’elles fonctionnent et gèrent les demandes. Il donne la priorité à l’intégration de la sécurité dans l’infrastructure de la plateforme ainsi que dans le code des API elles-mêmes. L’objectif est d’identifier et de prévenir les requêtes API malveillantes qui émergent après le déploiement.
Fonctionnalité clé :

  • Contrôle d'accès – Appliquer les politiques d'authentification (authN) et d'autorisation (authZ)
  • Sécurité du réseau – Chiffrer et protéger les communications sur le réseau
  • Protection des applications – Protégez les environnements d’exécution des API contre les requêtes et les attaques d’API malveillantes
  • Surveillance en temps réel – Visualisez, tracez et atténuez les attaques sur l'infrastructure API

Technologies représentatives :

  • Passerelle API – Applique et fait respecter les politiques de sécurité, notamment l'authentification, l'autorisation, la limitation du débit, les listes de contrôle d'accès et le cryptage
  • Pare-feu d'application Web (WAF) – Protège les API et les applications contre les attaques sophistiquées de couche 7 en surveillant et en filtrant activement le trafic en fonction des signatures d'attaque
  • Fournisseur d'identité (IdP) – Service qui stocke et vérifie l'identité de l'utilisateur et fonctionne généralement avec des fournisseurs d'authentification unique (SSO) pour authentifier les utilisateurs

Toutes les passerelles API et WAF/WAAP ne sont pas créés de la même manière. Certains services, notamment les solutions natives disponibles sur le cloud et d’autres plateformes, manquent de la visibilité et de la standardisation globales requises dans les architectures multi-cloud et hybrides.

Bonnes pratiques en matière de sécurité des API

Compte tenu de l’importance de la sécurisation des API, il est essentiel d’aborder la sécurité des API de manière organisée. Les responsables de l’ingénierie des plateformes et de la sécurité doivent travailler ensemble pour répondre aux exigences de sécurité tout au long du cycle de vie des API. Comme nous l’avons vu précédemment, cela correspond approximativement à trois domaines de pratique principaux : Gestion de la posture de sécurité des API, tests de sécurité des API et protection de l'exécution des API. En d’autres termes, vous devez vous concentrer sur la connaissance du nombre d’API dont vous disposez, sur la manière de les tester pour détecter les erreurs et sur la manière d’intégrer la sécurité dans votre code.

Liste des meilleures pratiques en matière de sécurité des API

Conclusion

Comme toute cybersécurité, la sécurité des API est un processus continu qui nécessite la collaboration de nombreuses parties prenantes, notamment les ingénieurs réseau, les responsables des opérations de sécurité, les responsables de l’ingénierie des plateformes et les ingénieurs de développement de logiciels. La bonne nouvelle est qu’il n’y a rien de bien mystérieux à savoir comment sécuriser les API.

La plupart des organisations ont déjà mis en place des mesures pour lutter contre les attaques bien connues telles que les scripts intersites, les injections, les déni de service distribués et d’autres qui peuvent cibler les API. Et bon nombre des bonnes pratiques décrites ci-dessus sont probablement assez familières aux professionnels de la sécurité chevronnés. Quel que soit le nombre d’API exploitées par votre organisation, votre objectif est d’établir des politiques de sécurité des API solides et de les gérer de manière proactive au fil du temps.

Démarrez votre essai gratuit de 30 jours de NGINX API Connectivity Stack , qui comprend F5 NGINX Management Suite API Connectivity Manager pour gérer, gouverner et sécuriser les API ; F5 NGINX Plus comme passerelle API ; et F5 NGINX App Protect WAF et DoS pour une sécurité API avancée.

Ressources supplémentaires


« Cet article de blog peut faire référence à des produits qui ne sont plus disponibles et/ou qui ne sont plus pris en charge. Pour obtenir les informations les plus récentes sur les produits et solutions F5 NGINX disponibles, explorez notre famille de produits NGINX . NGINX fait désormais partie de F5. Tous les liens NGINX.com précédents redirigeront vers un contenu NGINX similaire sur F5.com."