natali_mis - stock.adobe.com
10 outils de test de la sécurité des API pour réduire les risques
Pour sécuriser correctement les API, il faut les tester tout au long de leur cycle de vie. Découvrez les 10 principaux outils de test de sécurité des API pour des tests de sécurité automatisés et continus.
Les API sont au cœur de l'architecture des applications modernes. En raison de leur importance et de leur capacité à fournir un accès aux données et aux ressources, elles sont souvent la cible d'attaquants.
Le marché de la sécurité des API se compose à la fois de services de protection en ligne en mode cloud et de ceux qui peuvent être intégrés dans les environnements de développement et d'exécution. Des outils de sécurité des API performants devraient permettre de détecter les mauvaises configurations de l'intégration des API, l'exposition des données sensibles, les vulnérabilités, la mauvaise gestion des références et des jetons d'authentification et d'autorisation, et bien d'autres choses encore. De nombreux outils ou services peuvent également servir de mesure de prévention contre les requêtes et interactions malveillantes avec les API.
Les outils de test de la sécurité des API présentés ci-dessous sont classés par ordre alphabétique plutôt que par ordre de priorité, car les différents cas d'utilisation requièrent des fonctionnalités différentes. Un outil particulier peut être le meilleur choix pour une organisation, mais pas pour une autre, en fonction de leurs besoins respectifs. La plupart de ces outils de test de la sécurité des API proposent des versions ou des périodes d'essai gratuites, mais les utilisateurs professionnels auront probablement besoin d'options ou de licences payantes. Cela dit, il vaut la peine de tester tout outil avant de s'engager pour voir comment il fonctionne pour les développeurs et les équipes de sécurité sur le terrain.
Quels que soient les outils de test de la sécurité des API choisis par les entreprises, le cycle de vie d'une API implique de nombreuses équipes différentes et connaît naturellement une itération rapide. Il est donc important de déterminer qui a la responsabilité globale des tests et de la maintenance de la sécurité de l'API sur une base continue.
Apache JMeter
Apache JMeter est une application Java open source conçue à l'origine comme un testeur de charge d'application web. Elle a étendu ses capacités pour tester le comportement fonctionnel et mesurer les performances sur des ressources statiques et dynamiques à partir de n'importe quel système d'exploitation Windows, Linux ou macOS.
Apache JMeter ne nécessite pas de compétences en programmation. Il peut gérer de nombreux types d'applications, de serveurs et de protocoles, et prend en charge le chaînage des requêtes. Les tests peuvent utiliser des fichiers CSV pour générer de lourdes charges de trafic réaliste qui mettent les API sous pression. Une intégration entre JMeter et Jenkins permet aux administrateurs d'intégrer les tests d'API dans les pipelines d'intégration continue/de livraison continue (CI/CD) et d'utiliser JMeter pour la surveillance des API.
Notez toutefois que JMeter n'a pas la capacité d'exécuter dynamiquement des scripts et d'autres fonctions du navigateur, ce qui en fait une option limitée pour des tests approfondis.
Apigee API Management
Destinée aux entreprises réalisant des projets complexes et de grande envergure, Apigee API Management, qui fait partie de Google Cloud, prend en charge la conception, l'élaboration, le test, le déploiement et la surveillance des API en permettant aux développeurs de suivre le trafic, les taux d'erreur et les temps de réponse. Les utilisateurs exposent leurs API sur Apigee par l'intermédiaire de proxys d'API, qui agissent comme des façades managées pour les services dorsaux. Ces proxies découplent les API orientées vers les applications des services back-end, de sorte que les applications peuvent continuer à appeler les API sans interruption, malgré toute modification du code back-end.
Les clients d'Apigee peuvent choisir entre les options SaaS et hybride. Dans la version SaaS hébergée, Apigee assure la maintenance de l'environnement. La version hybride se compose d'un plan d'administration exécuté dans le Cloud d'Apigee et d'un plan d'exécution installé sur site ou chez un fournisseur Cloud. Le modèle hybride limite le trafic API et les données à l'entreprise, mais il peut nécessiter une configuration et une personnalisation importantes.
Les trois formules d'abonnement sont Standard, Enterprise et Enterprise Plus, et aucune ne limite le nombre d'API individuelles ou d'utilisateurs. Les niveaux supérieurs offrent toutefois un plus grand nombre d'appels d'API. Les entreprises peuvent également opter pour le modèle de paiement à l'utilisation d'Apigee, qui est basé sur le nombre d'appels d'API, les environnements déployables utilisés par heure et le nombre de déploiements de proxy. Les prix d'Apigee sont disponibles sur demande.
Assertible
Assertible fournit des tests et une surveillance simples et puissants des API avec des assertions clés en main pour les tests spécifiques à un domaine, y compris la validation du schéma JSON et les contrôles d'intégrité des données JSONPath. Il s'intègre aux outils de développement et de communication courants, notamment GitHub, Slack, PagerDuty et Zapier, ainsi qu'aux services et plateformes CI/CD. Il est possible d'enchaîner plusieurs requêtes HTTP pour tester des scénarios plus complexes via des étapes de configuration, qui permettent de capturer des variables de test à partir d'une requête HTTP.
Alors que la mise à jour des tests prend généralement beaucoup de temps, Assertible peut synchroniser automatiquement tous les changements dans les spécifications de l'API - tels que les mises à jour des réponses, des paramètres et des en-têtes - avec les tests d'API. Les développeurs n'ont donc plus à mettre à jour manuellement leurs tests après avoir ajouté de nouveaux paramètres ou modifié la réponse d'une API. Assertible comprend une fonction appelée "variables chiffrées" qui améliore la sécurité en stockant de manière sécurisée les jetons, les mots de passe et autres champs de données sensibles pour les tests d'API.
Les clients peuvent choisir parmi quatre formules, y compris une formule personnelle gratuite. Les forfaits payants vont de 25 à 100 dollars par mois et offrent des augmentations progressives du nombre de tests, de la fréquence des tests et des membres de l'équipe pris en charge.
Insomnia
Insomnia, qui fait partie de Kong, est un client API open source permettant de créer, d'organiser, de partager et d'exécuter des requêtes REST, SOAP (Simple Object Access Protocol), GraphQL et gRPC à partir d'une application Mac, Linux ou Windows. Il comprend un éditeur de spécifications intégré qui permet aux utilisateurs de prévisualiser instantanément les modifications sans changer d'application ou de vue, et il peut générer du code dans plus de 12 langues différentes.
Insomnia prend en charge la définition et la ségrégation des variables d'environnement en vue de leur réutilisation dans des requêtes globales ou au sein d'un environnement public ou privé. Les utilisateurs peuvent créer des flux de tests d'API personnalisés, y compris des requêtes enchaînées, avec les scripts de la suite de tests d'Insomnia. L'éditeur de code d'Insomnia est relativement simple, mais il nécessite quelques compétences en codage. Inso, le CLI de l'application, permet aux utilisateurs d'intégrer les tests d'API automatisés d'Insomnia dans leurs pipelines CI/CD via GitHub, GitLab Jenkins, Vercel et d'autres plateformes.
Il existe une licence gratuite pour les utilisateurs uniques. Kong propose des niveaux payants : Individual à 5 $ par utilisateur et par mois, Team à 12 $ par utilisateur et par mois et Enterprise à 45 $ par utilisateur et par mois pour des fonctionnalités supplémentaires, telles qu'un nombre illimité de collaborateurs et d'organisations, la prise en charge native de Git et bien plus encore.
Karate
Karate est un framework open source qui combine les tests automatisés d'API, les tests de performance et le mocking en un seul framework. Bien qu'il soit implémenté en Java, il n'exige pas des utilisateurs qu'ils aient des compétences avancées en programmation. Karate utilise une approche de développement axée sur le comportement et la syntaxe Gherkin (Given-When-Then) pour coder les scripts de test. Les définitions de test peuvent également servir de documentation fonctionnelle pour l'API elle-même. Karate peut être intégré aux outils CI/CD.
Les assertions JSON et XML sont intégrées et les tests peuvent être exécutés en parallèle pour améliorer les performances et la vitesse. Les administrateurs peuvent tester les flux de travail des utilisateurs finaux à l'aide de séquences d'appels API. En outre, les tests peuvent être doublés de tests de performance grâce à l'ajout de Gatling, qui vérifie si les réponses du serveur sont conformes aux attentes en cas de charge. Les scripts de test de l'API peuvent également être utilisés pour automatiser les tests de l'interface utilisateur, et le débogueur de Karate peut revenir en arrière et rejouer une étape pendant l'édition. Karate dispose d'une documentation complète, d'un large éventail d'exemples de tests et d'une communauté d'utilisateurs active.
En tant que programme open source, Karate est gratuit pour les utilisateurs. Les organisations peuvent opter pour l'un de ses niveaux payants - Plus à 100 $ par an et par utilisateur, Pro à 640 $ par an et par utilisateur ou Ultimate à 1 400 $ par an et par utilisateur - pour des fonctionnalités supplémentaires, notamment l'appel d'API HTTP, la prise en charge de la syntaxe et du débogage, et bien plus encore.
Studio Katalon
Katalon Studio est un outil populaire d'automatisation des tests pour les API, ainsi que pour les applications web, mobiles et de bureau. Il fonctionne sous Windows, Linux et macOS. Katalon Studio prend en charge les requêtes SOAP et REST et offre de multiples fonctionnalités de paramétrage et de commandes, avec un support pour de multiples sources de données pour les tests basés sur les données.
Les scripts de test sont écrits dans le langage Apache Groovy, mais une interface à double éditeur permet aux utilisateurs de passer du mode script au mode manuel. Le mode manuel permet aux personnes ayant des compétences limitées en programmation de générer des tests via une interface de type "glisser-déposer". Katalon Studio dispose d'un assistant de démarrage rapide et d'un outil d'enregistrement et de lecture. Les utilisateurs peuvent également enchaîner les tests.
Katalon Studio est gratuit, tout comme bon nombre de ses plugins. La version Premium est proposée à partir de 175 dollars par utilisateur et par mois et comprend des fonctionnalités étendues, des plugins privés et un service d'assistance. Le module complémentaire Runtime Engine, au prix de 140 dollars par session et par mois, permet l'intégration CI/CD et permet aux utilisateurs de planifier et d'exécuter des tests en parallèle. Une version Ultimate offre des capacités d'analyse et d'IA supplémentaires ; les prix sont disponibles sur demande.
Postman
Postman est une plateforme largement utilisée pour construire et tester des API. Elle compte plus de 30 millions d'utilisateurs dans 500 000 organisations. À l'origine, il s'agissait d'un plugin Chrome, mais il est désormais disponible en tant que plateforme SaaS ou en tant qu'application Windows, Linux et macOS.
Dans les collections Postman, les équipes peuvent organiser, regrouper, réutiliser et partager des demandes d'API et des exemples, ce qui permet la collaboration, les tests automatisés et le chaînage des demandes. En attachant des moniteurs aux collections, les utilisateurs peuvent programmer des tests d'API automatisés pour qu'ils s'exécutent toutes les cinq minutes, en signalant les problèmes potentiels par le biais d'alertes.
Postman propose un certain nombre de tutoriels vidéo et une documentation solide. Il bénéficie également d'un support communautaire particulièrement robuste, de nombreux utilisateurs publiant des API, des collections et des espaces de travail pour aider les autres à se former et à se développer.
Quatre plans différents sont disponibles, à commencer par une version gratuite pour un maximum de trois utilisateurs et une version de base pour 14 dollars par utilisateur et par mois. Les versions payantes Professional et Enterprise (respectivement 29 et 49 dollars par utilisateur et par mois) comprennent des espaces de travail privés où les utilisateurs peuvent stocker des artefacts d'API et où les autres membres de l'équipe peuvent y accéder, ainsi que des fonctionnalités de mocking, de gestion des identités et des accès, et des fonctions améliorées de reporting et d'analyse.
Sauce Labs Platform for Test
Sauce Labs Platform for Test, anciennement Sauce Labs API Testing and Monitoring, est une plateforme complète pour les tests de services Web et d'API REST, la surveillance, les rapports d'erreurs et le débogage. Conçue dès le départ pour les workflows DevTest compressés, Sauce Labs Platform for Test permet aux administrateurs de générer automatiquement des tests à partir de charges utiles ou de fichiers de spécification, puis de les éditer dans un environnement de développement intégré ou dans un simple compositeur de tests par glisser-déposer. Les tests fonctionnels peuvent être réutilisés dans le compositeur de tests pour créer efficacement des tests de flux API dynamiques, axés sur les données et de bout en bout, avec de nombreuses options pour augmenter l'observabilité et valider des scénarios du monde réel.
Les utilisateurs ont également la possibilité de réutiliser les tests d'API en tant que moniteurs, qu'ils peuvent déployer dans n'importe quel environnement, y compris la production, grâce à l'intégration avec un pipeline CI/CD ou l'auto-programmateur intégré de Sauce. Exécutés en arrière-plan, les moniteurs fonctionnels peuvent fournir des alertes et des rapports détaillés pour accélérer le débogage. En unifiant tous les tests et moniteurs d'API sur une plateforme centralisée, la direction dispose d'une version unique de la santé de l'API, ainsi que d'une visibilité sur les tests en cours.
Platform for Test est disponible en trois modèles, qui intègrent tous un nombre illimité d'utilisateurs et de minutes de test. Live Testing commence à 49 $ par mois, Virtual Cloud commence à 199 $ par mois et Real Device Cloud commence à 249 $ par mois. Une assistance aux entreprises est également proposée.
SoapUI et ReadyAPI
SoapUI, créé en 2006 par SmartBear, a été le premier outil open source de test des API SOAP et REST. Il est disponible sous forme d'application pour Windows, Linux et macOS. Autoproclamé couteau suisse des tests fonctionnels et de régression automatisés, SoapUI permet aux utilisateurs de créer et d'exécuter des tests fonctionnels, des plus simples aux plus complexes, par simple glisser-déposer. Les scripts générés peuvent être réutilisés et prennent en charge le chaînage des requêtes.
Une version pro payante appelée ReadyAPI offre des fonctionnalités supplémentaires, notamment des tests de performance basés sur les données, la virtualisation des services, le mocking et l'intégration des pipelines CI/CD, avec la prise en charge de GraphQL, Java Message Service et Java Database Connectivity. Elle se décline en trois modules : API Test Module à partir de 900 dollars par licence et par an ; API Performance Module à 6 455 dollars par licence et par an ; et API Virtualization Module à 1 215 dollars par licence et par an. Les clients ont également la possibilité d'acheter les trois modules sous la forme d'une offre groupée pour un coût personnalisé réduit.
Swagger
Swagger, maintenu par SmartBear, est une suite d'outils open source faciles à utiliser pour concevoir, construire, tester et documenter des API. La spécification Swagger, qui constitue la base de la suite d'outils, est devenue la spécification OpenAPI en 2016.
La suite comprend Swagger Editor, qui visualise une spécification d'API et permet une interaction et un retour d'information en temps réel de la part de l'utilisateur. Swagger Codegen génère des stubs de serveur dans plus de 20 langues différentes et des SDK de client dans plus de 40 langues différentes afin que les développeurs finaux puissent facilement intégrer les API en direct. Swagger UI permet à quiconque de visualiser et d'interagir avec les ressources d'une API sans avoir accès à sa logique de mise en œuvre. D'autres outils de la suite permettent d'obtenir des réponses fictives pour les méthodes non implémentées et de publier un projet API complet sur n'importe quelle plateforme Node.js.
L'utilisation de Swagger est gratuite. La plateforme SwaggerHub, qui intègre la suite Swagger avec des fonctionnalités supplémentaires, est disponible en version Team ou Enterprise. Le plan Team, à 84 $ par mois pour trois concepteurs, comprend des intégrations supplémentaires, des domaines réutilisables et des capacités de collaboration. Le plan Entreprise, disponible sur site ou en option SaaS, comprend une assistance prioritaire et la normalisation des API. La tarification Entreprise est disponible sur demande.