Logo Parasoft

Découvrez GoogleTest certifié TÜV avec Agentic AI pour les tests C/C++ !
Plus de détails »

Fond géométrique avec des touches de bleu et de vert
Image de couverture du livre blanc Guide sur la sécurité des API

Livre blanc

Guide de la sécurité des API

Vous vous demandez ce que contient le guide ? Commencez par consulter l’aperçu ci-dessous.

Pourquoi les API constituent un vecteur d'attaque attractif

Les adversaires d'aujourd'hui sont guidés par un objectif précis : voler des secrets commerciaux, des informations personnelles sur les consommateurs ou nuire à une entreprise par une attaque par déni de service. Découvrir des vulnérabilités zero-day et attaquer des applications personnalisées est complexe. Un vecteur d'attaque plus simple est toujours préférable, qu'il s'agisse d'attaquer un fournisseur au sein d'une chaîne d'approvisionnement aux pratiques de sécurité logicielle défaillantes, d'amener un utilisateur à divulguer des identifiants confidentiels ou d'exploiter une vulnérabilité connue dans un composant logiciel libre courant.

Les API représentent plus de 80 % du trafic web et offrent aux attaquants des techniques d'attaque similaires à celles des logiciels libres vulnérables.

  • À l'instar des logiciels libres, la plupart des organisations manquent de visibilité sur l'ensemble des API qu'elles utilisent et sur le contexte de leur utilisation. L'utilisation des API a considérablement augmenté ces dix dernières années, portée par l'adoption des microservices visant à simplifier et accélérer le développement logiciel. Selon une étude de Ping Identity, 25 % des entreprises interrogées possèdent plus de 1 000 API, tandis que 35 % en déclarent entre 400 et 1 000. Plus inquiétant encore, 51 % ignorent si leur équipe de sécurité a une visibilité complète sur les API utilisées au sein de leur organisation.
  • À l'instar du code source des logiciels libres, la documentation des API peut être accessible à un attaquant et exposer la logique et les données d'une application. Même les API privées peuvent être facilement déchiffrées si elles utilisent des méthodes non sécurisées comme les protocoles HTTP, REST textuel et SOAP.
  • Les vulnérabilités connues des logiciels libres et des API publiques couramment utilisées constituent un vecteur d'attaque tout trouvé pour les pirates. En 2019, une faille de sécurité dans l'API du framework Twitter Kit, empêchant la validation correcte du certificat SSL de api.twitter.com, a exposé des millions d'utilisateurs iOS à des attaques de type « homme du milieu ».

API défectueuses et mal conçues

Bien souvent, les problèmes à l'origine des failles de sécurité liées aux API ne sont pas dus à une intelligence ou une diligence particulière de la part de l'attaquant (et parfois même du chercheur en sécurité). En réalité, nombre de ces problèmes sont liés à une conception et une implémentation défaillantes de l'API.

Les principes fondamentaux de la sécurité logicielle sont l'authentification et l'autorisation fortes, le principe du moindre privilège et la protection des données, ainsi que la détection des abus et des utilisations malveillantes. Les récentes failles de sécurité chez Clubhouse, John Deere et Experian illustrent le non-respect des pratiques de sécurité logicielle de base, entraînant la fuite d'informations sur les utilisateurs, les clients et les consommateurs.

« Les API mal conçues peuvent perturber les entreprises et éroder la confiance des consommateurs, en particulier lorsqu'elles révèlent des problèmes de confidentialité. »

—Expert en solutions de sécurité chez Parasoft

« Des API mal conçues peuvent perturber les activités des entreprises et éroder la confiance des consommateurs, notamment lorsqu'elles révèlent des problèmes de confidentialité. Les vulnérabilités de l'API Clubhouse, qui permettent le ghosting, le trolling et l'écoute clandestine, illustrent pourquoi la sécurité doit être intégrée dès la conception et respecter les bonnes pratiques d'ingénierie logicielle, où le principe du moindre privilège est fondamental pour éliminer toute une catégorie de problèmes de sécurité », explique l'expert en solutions de sécurité chez Parasoft.

Dans chaque cas, les chercheurs en sécurité ayant identifié les vulnérabilités ont simplement utilisé l'API, conformément à sa conception, pour accéder aux informations de millions d'utilisateurs et/ou de clients, et ont même détourné les fonctionnalités prévues. Certaines API étaient accessibles à tout utilisateur sans authentification et permettaient de consulter n'importe quel utilisateur (ou tous) et de télécharger leurs noms, adresses, achats et autres informations. Il s'agissait d'erreurs évitables lors de la conception, de la mise en œuvre et des tests des API.

Les défis techniques sont importants.

Une API bien conçue nécessite la contribution des responsables produit, des architectes et des experts en sécurité afin de bien comprendre les cas d'abus et de mauvaise utilisation et d'intégrer la sécurité dès la conception. Comme l'illustrent les exemples précédents, les contrôles d'authentification sont essentiels, car le mécanisme d'authentification est accessible à tous, y compris aux adversaires de l'organisation.

Les contrôles d'authentification ne se limitent donc pas à exiger l'authentification des utilisateurs et des systèmes. Ils comprennent des mesures visant à prévenir le bourrage d'identifiants et les attaques par force brute, les mots de passe faibles et la divulgation d'informations sensibles telles que les jetons d'authentification et les clés de chiffrement faibles.

Des contrôles d'authentification forts ne constituent qu'une première étape. Comme l'ont souligné les Top 10 de la sécurité de l'API OWASPLes organisations doivent également veiller à ce que les autorisations soient appropriées tant au niveau de l'objet qu'au niveau de la fonction.

  • La validation des données d'entrée est nécessaire pour prévenir les failles d'injection.
  • Une limitation du débit est nécessaire pour restreindre le nombre de requêtes qu'un seul utilisateur peut effectuer par minute, heure ou jour.
  • Une journalisation et une surveillance adéquates sont nécessaires pour détecter plus rapidement les attaques.

La découverte des API est essentielle. Une visibilité complète sur toutes les API est indispensable. On ne peut sécuriser un système sans en connaître l'existence. Comprendre la surface d'attaque et identifier les API exposées est crucial pour les tests de sécurité. La couverture des tests et la découverte des API constituent des données importantes pour minimiser les risques liés aux attaques d'API. Comme mentionné précédemment, le passage des applications monolithiques aux microservices a considérablement augmenté le nombre d'API au sein des organisations. Cette évolution fondamentale exigera des organisations une approche plus proactive en matière de découverte des API et d'analyse de la surface d'attaque.

Principaux défis en matière de sécurité des API

API mal documentées et non documentées

Idéalement, les projets logiciels incluent une documentation détaillée destinée aux équipes internes afin de simplifier la maintenance et d'aider les nouveaux développeurs à comprendre le fonctionnement de l'application. De même, les API nécessitent une documentation pour les développeurs qui les utilisent, qu'il s'agisse de développeurs et de testeurs internes ou de tiers. En réalité, la pression exercée pour ajouter des fonctionnalités et accélérer la mise sur le marché conduit souvent à une documentation limitée.

Cela est particulièrement vrai pour les API, généralement plus simples et destinées à un usage interne. Sans documentation interne adéquate, les ingénieurs DevOps ont une connaissance imparfaite du fonctionnement d'une API. En l'absence de contrats, de définitions et de spécifications d'API, les équipes d'assurance qualité et de sécurité doivent modéliser le comportement prévu des API et deviner les cas d'utilisation et de mésusage.

Les testeurs ne sont pas formés en sécurité.

Les ressources en sécurité sont rares dans la plupart des organisations. C'est un problème national croissant. L'assurance qualité et l'ingénierie DevOps se concentrent généralement sur les tests fonctionnels, afin de garantir que les fonctionnalités décrites dans le cahier des charges fonctionnent conformément aux spécifications.

Bien que cela comprenne des cas d'utilisation comme les tests de débit et de capacité, cela peut passer à côté des tests de sécurité qui se concentrent souvent sur les cas d'abus et de mauvaise utilisation, comme l'appel d'une API avec des arguments intentionnellement erronés ou la mauvaise gestion des valeurs renvoyées par l'API.

Les interactions avec les API sont complexes.

Les équipes de sécurité et de test connaissent généralement bien les cas d'utilisation d'une interface utilisateur. Les cas d'utilisation d'une API sont plus complexes, notamment entre microservices.

Bien que les problèmes et vulnérabilités de sécurité mentionnés précédemment soient relativement simples, la multiplication rapide des microservices et des API qui en résultent complexifie la sécurité, permettant potentiellement à des attaquants sophistiqués de relier plusieurs API dans une attaque en plusieurs étapes. Les politiques de contrôle d'accès, avec leurs hiérarchies, groupes et rôles différents, peuvent dérouter les équipes de sécurité et conduire à des contrôles de sécurité insuffisants.

Tester et sécuriser les API Il est nécessaire de comprendre la logique d'une application, un sujet souvent mal connu des équipes de sécurité. Les API sont comparables à des briques Lego, modulables de multiples façons. Des attaquants peuvent les utiliser à des fins détournées, voire les exploiter pour attaquer une application. Par exemple, combien de manières existe-t-il d'accéder au panier d'achat ou aux informations de paiement stockées ?

« Les API sont étonnamment flexibles. Pouvoir tester l'ensemble des combinaisons possibles est essentiel pour garantir la sécurité de vos API. »

—Arthur Hicken, responsable de l'évangélisation chez Parasoft

Des tests complets nécessitent une visibilité programmatique sur les API et leurs interactions, les cas limites, les protocoles et la connaissance des types de données attendus. Créer des tests est possible avec des ressources suffisantes, bien sûr, mais cette compétence est très difficile à acquérir.

Graphique de complexité des tests de sécurité des API

Que peuvent vous apporter les tests de sécurité des API ?

Les outils de test de sécurité traditionnels peinent

Les outils traditionnels utilisés de manière traditionnelle ne constituent qu'une solution partielle. Outils d'analyse statique Ces outils analysent généralement le code source. Bien qu'ils identifient certains problèmes liés à l'API, leur méconnaissance des fonctionnalités prévues limite leur exhaustivité.

Les scanners d'analyse dynamique sont également utiles, mais ils ne recherchent souvent que les points d'entrée dans l'interface utilisateur et peuvent ne pas avoir connaissance des API et de leurs fonctionnalités.

Bien qu'un testeur d'intrusion expérimenté puisse identifier les failles des API, cette méthode est difficilement applicable à grande échelle et peu pratique en termes de temps et de coûts. Elle est également incompatible avec les méthodologies de développement rapide telles que l'intégration continue/déploiement continu (CI/CD) et le DevSecOps.

Ces outils ne comprennent pas les mécanismes d'authentification API et doivent connaître les protocoles tels que OAuth2 et JSON Web Tokens.

Ces outils rencontrent également des difficultés avec les types de contenu et les réponses HTTP, ce qui influe sur la détection des vulnérabilités des API. De plus, ils ne disposent d'aucun lien permettant de découvrir les API, ce qui modifie fondamentalement les tests de sécurité de ces dernières.

Adopter les meilleures pratiques pour les tests de sécurité des API

L'ajout de Test de sécurité API L'intégration au cycle de vie du développement logiciel est possible, même dans des environnements de développement rapide, lorsque les organisations fournissent aux ingénieurs DevOps les outils et le soutien appropriés.

Il est essentiel que les tests de sécurité prennent en compte les défauts de conception courants, ainsi que les erreurs d'implémentation et de configuration. Développer des logiciels plus sécurisés n'est pas un secret : plusieurs lignes directrices et normes permettent aux organisations d'identifier et d'atténuer les risques.

L'une d'entre elles, la norme OWASP ASVS (Application Security Verification Standards), est particulièrement utile lors de la conception et de la mise en œuvre d'API. ASVS se décrit comme « une liste d'exigences ou de tests de sécurité des applications pouvant être utilisés par les architectes, les développeurs, les testeurs, les professionnels de la sécurité, les fournisseurs d'outils et les utilisateurs pour définir, construire, tester et vérifier des applications sécurisées ».

Bien que l'obtention de la certification ASVS soit un objectif admirable, les organisations qui cherchent à améliorer progressivement leurs programmes de sécurité logicielle peuvent utiliser les directives ASVS de manière moins formelle.

Il faut plus qu'un simple déplacement vers la gauche.

Intégration des activités de sécurité des API Il est possible d'intervenir dès les premières étapes du cycle de vie du développement logiciel, même dans des environnements de développement rapide, lorsque les organisations fournissent à leurs équipes de développement les outils et le soutien adéquats.

Commencez au début

Il est essentiel de réaliser des tests de sécurité précoces pour prévenir et détecter les problèmes de sécurité des API, mais tout commence par une bonne conception. Concevoir une API sécurisée n'a rien de compliqué. Cela implique notamment de définir clairement les paramètres autorisés par les contrôles de sécurité, de mettre en place une limitation du débit pour prévenir les attaques par force brute et d'appliquer des mécanismes d'authentification robustes pour éviter toute utilisation abusive de l'API.

Coût de la remédiation à chaque étape du cycle de vie du développement logiciel (SDLC)

Le coût croissant des retards en matière de sécurité

Reporter les tests de sécurité à une phase tardive du cycle de vie du développement logiciel engendre des retards et une augmentation des coûts. La correction des bogues devient plus onéreuse lors de la maintenance. Cette hausse des coûts est due, en grande partie, à la difficulté de remanier le logiciel pour corriger les bogues ou modifier les bibliothèques open source, tout en préservant les caractéristiques et fonctionnalités de la conception originale.

Dans les normes ASVS, l'approche « shift left » prend en compte les fonctionnalités des API, l'authentification et l'autorisation dès la phase de conception du cycle de vie. Cela implique d'authentifier les communications entre les composants de l'application, y compris les API ; d'appliquer le principe du moindre privilège à tous les composants ; de chiffrer les appels aux API ; et de veiller à ce que les URL des API ne divulguent aucune information sensible, comme les jetons de session.

Savoir contre quoi se défendre

L'OWASP fournit des recommandations via son Top 10 des API, qui décrit le consensus sur les vulnérabilités les plus courantes et les plus critiques des API. Nombre d'entre elles concernent la gestion des identités et des accès, tandis que d'autres, comme les failles d'injection et de journalisation, sont déjà exploitées et intégrées dans la plupart des suites de tests de sécurité applicatifs.

Une approche novatrice pour des tests de sécurité API complets

Une meilleure méthode pour tester les API consiste à tirer parti des tests fonctionnels pour fournir une visibilité sur les API sous-jacentes à l'application et leurs fonctionnalités, et à augmenter la génération de tests à l'aide de l'intelligence artificielle (IA) pour construire des cas de test appropriés.

"Test d'API « Cela peut s'avérer étonnamment complexe. Cela exige une connaissance approfondie des tests, du fonctionnement des API et de leurs différentes applications possibles par rapport aux scénarios utilisateurs. L'ajout de la sécurité complexifie encore davantage la tâche, car la couche API est plus profonde et plus technique que la couche UI », explique Arthur Hicken, évangéliste en chef chez Parasoft.

« Les tests d'API peuvent être étonnamment complexes. Lorsqu'on y ajoute la sécurité… la couche API est plus profonde et plus technique que la couche UI. »

—Arthur Hicken, responsable de l'évangélisation chez Parasoft

Test SOAtest de Parasoft Smart API Test Generator exploite un plugin de navigateur qui utilise l'IA pour convertir automatiquement les tests d'interface utilisateur manuels et automatisés en tests d'API automatisés. Au lieu de simplement collecter le trafic, de l'enregistrer et de le reproduire, Le générateur de tests d'API intelligent utilise l'IA Pour découvrir des tendances significatives, appliquer des modèles de menaces et comprendre les relations entre les appels d'API, il peut générer des scénarios de tests d'API automatisés qui reproduisent les actions de vos tests d'interface utilisateur, mais de manière entièrement automatisée et facilement extensible.

Avantages du générateur de tests d'API intelligent

  • Créez des tests de sécurité d'API sans expertise en sécurité. Même dans les plus grandes organisations, les ressources en sécurité sont limitées, notamment celles spécialisées dans les tests de sécurité des API. SOAtest Smart API Test Generator lève les obstacles aux tests d'API et simplifie l'apprentissage, permettant aux utilisateurs novices de créer des suites de tests efficaces et sans script. Aucune programmation n'est requise.
  • Augmenter les connaissances de l'équipe de sécurité. Le générateur de tests d'API intelligent de SOAtest peut également être utilisé lorsque les équipes de sécurité testent des applications, étendant ainsi les cas de test générés.
  • Accélérer les cycles de test. L'automatisation du développement des tests d'API permet de consacrer moins de temps à l'analyse des cas de test, à la recherche de modèles et à la création manuelle des relations nécessaires à chaque scénario de test. En cas de modification de l'interface utilisateur, les tests d'API sans script du générateur de tests d'API intelligents sont facilement mis à jour.
  • Tests d'API évolutifs. Les tests d'API générés automatiquement et sans script, utilisant des outils visuels et une logique de flux de test, permettent aux équipes de couvrir davantage de logique applicative avec moins d'efforts, ce qui donne lieu à des scénarios de test complets de bout en bout.
  • Découvrir et tester les API non documentées. En surveillant les interactions entre l'interface utilisateur et les API sous-jacentes, le générateur de tests d'API intelligents teste non seulement les API connues et documentées par OpenAPI, mais découvre et crée également des tests pour les API non documentées qui étaient destinées à un usage interne uniquement et qui ont échappé à votre processus de gouvernance.
  • Tirez parti de l'analyse dynamique pour une couverture plus approfondie. Grâce à son intégration avec les outils d'analyse dynamique, SOAtest peut guider les tests DAST pour exposer la surface d'attaque des API et fournir une couverture de test plus approfondie que les outils DAST autonomes ne peuvent atteindre.
  • Formation contextualisée. Les solutions de sécurité Parasoft proposent des formations contextuelles spécifiques, ainsi que des formations de sécurité de haut niveau accessibles directement via la documentation. Ces formations, gratuites ou payantes, incluent des vidéos, des exercices pratiques et bien plus encore.
Équipe de développeurs

Prêt à plonger plus profondément ?

Téléchargez le livre blanc complet