BLOG | NGINX

Sécurisez vos API de streaming bidirectionnelles GraphQL et gRPC avec F5 NGINX App Protect WAF

NGINX-Partie-de-F5-horiz-black-type-RGB
Miniature de Thelen Blum
Thélen Blum
Publié le 27 avril 2023

L'économie numérique continue de se développer depuis la pandémie de COVID-19, avec 90 % des organisations développant leurs architectures d'applications modernes. Dans le rapport 2023 de F5 sur l'état de la stratégie des applications , plus de 40 % des 1 000 décideurs informatiques mondiaux interrogés décrivent leurs portefeuilles d'applications comme « modernes ». Ce pourcentage a augmenté régulièrement au cours des dernières années et devrait dépasser 50 % d’ici 2025. Cependant, l’augmentation des applications modernes et l’utilisation des microservices s’accompagnent d’une prolifération d’API et de points de terminaison d’API, augmentant de manière exponentielle le potentiel de vulnérabilités et la surface d’exposition aux attaques.

Selon Continuous API Sprawl , un rapport du F5 Office of the CTO, il y avait environ 200 millions d'API dans le monde en 2021, un nombre qui devrait approcher les 2 milliards d'ici 2030.  La complexité résultant de cette croissance rapide des API s’accompagne du défi de la gestion des applications distribuées dans des environnements hybrides et multicloud. Les personnes interrogées dans le rapport 2023 sur l'état de la stratégie des applications ont cité la complexité de la gestion de plusieurs outils et API comme leur principal défi lorsqu'elles déploient des applications dans des environnements multi-cloud. L’application de politiques de sécurité cohérentes et l’optimisation des performances des applications se classent à égalité en deuxième position.

Figure 1 : Principaux défis du déploiement d'applications dans un environnement multi-cloud (source : Rapport sur l’état de la stratégie d’application 2023.

Pourquoi la sécurité des API est essentielle à vos résultats financiers

Les API ne sont pas seulement les éléments de base des applications modernes, elles sont au cœur des activités numériques : 58 % des organisations interrogées dans le rapport F5 2023 déclarent tirer au moins la moitié de leurs revenus des services numériques. Les API permettent la communication entre l'utilisateur et l'application et entre l'application et l'accès qu'elles fournissent aux données privées des clients et aux informations internes de l'entreprise en font des cibles lucratives pour les attaquants. Les API ont été le vecteur d’attaque de choix en 2022.

La protection des API est primordiale dans une stratégie globale de sécurité des applications. Les attaques peuvent avoir des conséquences dévastatrices qui vont bien au-delà de la violation de la vie privée des consommateurs (aussi grave soit-elle), jusqu’à un niveau de gravité accru qui porte atteinte à la sécurité publique et entraîne la perte de propriété intellectuelle. Voici quelques exemples de chacun de ces types d’attaques API qui se sont produites en 2022.

  • Confidentialité des consommateurs – Twitter a subi une attaque API sur plusieurs années. En décembre 2022, des pirates ont volé les données de profil et les adresses e-mail de 200 millions d'utilisateurs de Twitter . Quatre mois plus tôt, 3 207 applications mobiles divulguant des clés et des secrets d'API Twitter valides ont été découvertes par les chercheurs de CloudSEK. Et un mois avant cela, des pirates avaient exploité une vulnérabilité de l’API pour saisir et vendre les données de 5,4 millions d’utilisateurs .
  • Sécurité publique – Une équipe de chercheurs a découvert des vulnérabilités critiques en matière de sécurité des API chez environ 20 grands constructeurs automobiles, dont Toyota, Mercedes et BMW . Avec autant de voitures aujourd’hui agissant comme des appareils intelligents, les pirates peuvent aller bien au-delà du vol de numéros d’identification des véhicules et d’informations personnelles sur les propriétaires de voitures. Ils peuvent suivre l'emplacement des voitures et contrôler le système de gestion à distance, leur permettant de déverrouiller et de démarrer la voiture ou de la désactiver complètement.
  • Propriété intellectuelle – Un employé ciblé de CircleCI , une plateforme CI/CD utilisée par plus d’un million de développeurs dans le monde pour expédier du code, a été victime d’une attaque de malware. Cet employé avait les privilèges nécessaires pour générer des jetons d'accès à la production et, par conséquent, les pirates ont pu voler les clés API et les secrets des clients. La violation est passée inaperçue pendant près de trois semaines. Incapable de déterminer si les secrets d'un client ont été volés et utilisés pour un accès non autorisé à des systèmes tiers, CircleCI ne pouvait que conseiller aux clients de faire tourner les jetons de projet et d'API personnels.

Ces attaques d’API servent d’avertissement. Lorsque les API présentent des vulnérabilités en matière de sécurité et ne sont pas protégées, les conséquences à long terme peuvent aller bien au-delà des coûts monétaires. L’importance de la sécurité des API ne peut être surestimée.

Comment F5 NGINX vous aide à sécuriser vos API

La solution NGINX API Connectivity Stack vous aide à gérer vos passerelles API et vos API dans des environnements multicloud. En déployant NGINX Plus comme passerelle API avec NGINX App Protect WAF , vous pouvez contribuer à prévenir et à atténuer les exploits d'API courants qui répondent aux trois principaux défis API identifiés dans le rapport F5 2023 State of Application Strategy (gestion de la complexité des API dans les environnements multicloud, garantie des politiques de sécurité et optimisation des performances des applications), ainsi qu'aux types d'attaques API évoqués dans la section précédente. NGINX Plus peut être utilisé de plusieurs manières, notamment comme passerelle API où vous pouvez acheminer rapidement les requêtes API, authentifier et autoriser les clients API pour sécuriser vos API et limiter le trafic pour protéger vos services basés sur API contre les surcharges.

NGINX Plus offre une protection prête à l'emploi non seulement contre les 10 principales vulnérabilités de sécurité des API OWASP . Il vérifie également les cookies malformés, JSON et XML, valide les types de fichiers autorisés et les codes d'état de réponse et détecte les techniques d'évasion utilisées pour masquer les attaques. Une passerelle API NGINX Plus assure la protection des protocoles API HTTP ou HTTP/2, notamment REST, GraphQL et gRPC.

NGINX App Protect WAF offre une sécurité d'application et d'API légère et hautes performances qui va au-delà de la protection de base contre les OWASP API Security Top 10 et OWASP (Application) Top 10 , avec une protection contre plus de 7 500 signatures avancées, signatures de bots et campagnes de menaces. Il permet une stratégie de décalage vers la gauche et une automatisation facile de la sécurité des API pour intégrer la sécurité en tant que code dans les pipelines CI/CD. Lors des tests sur les WAF AWS, Azure et Cloudflare, il a été constaté que le WAF NGINX App Protect offrait une sécurité renforcée des applications et des API tout en maintenant de meilleures performances et une latence plus faible. Pour plus de détails, consultez ce rapport GigaOm .  

NGINX App Protect WAF est intégré à la passerelle API NGINX Plus, ce qui permet de réduire d'un saut le trafic API. Moins de sauts entre les couches réduisent la latence, la complexité et les points de défaillance. Cela contraste fortement avec les solutions de gestion d’API classiques qui ne s’intègrent pas à un WAF (vous devez déployer le WAF séparément et, une fois qu’il est configuré, le trafic API doit traverser le WAF et la passerelle API séparément). L’intégration étroite de NGINX signifie des performances élevées sans compromis sur la sécurité.

GraphQL et gRPC sont en plein essor

Les développeurs d’applications et d’API recherchent constamment de nouvelles façons d’augmenter la flexibilité, la rapidité et la facilité d’utilisation et de déploiement. Selon le rapport State of the API 2022 de Postman, REST est toujours le protocole API le plus populaire utilisé aujourd'hui (89 %), mais GraphQL (28 %) et gRPC (11 %) continuent de gagner en popularité. En fin de compte, le choix du protocole API dépend fortement de l’objectif de l’application et de la meilleure solution pour votre entreprise. Chaque protocole a ses propres avantages.

Pourquoi utiliser les API GraphQL ?

Les principaux avantages de l’utilisation des API GraphQL sont les suivants :

  • Adaptabilité – Le client décide de la demande de données, du type et du format.
  • Efficacité – Il n’y a pas de sur-extraction, les requêtes sont exécutées sur un schéma créé et les données renvoyées sont exactement (et uniquement) celles qui ont été demandées. Le formatage des données dans la demande et la réponse est identique, ce qui rend les API GraphQL rapides, prévisibles et faciles à mettre à l'échelle.
  • Flexibilité – Prend en charge plus d’une douzaine de langues et de plateformes.

GitHub est un utilisateur bien connu de GraphQL. Ils sont passés à GraphQL en 2016 pour des raisons d'évolutivité et de flexibilité.

Pourquoi utiliser les API gRPC ?

Les principaux avantages de l’utilisation des API gRPC sont les suivants :

  • Performances – Le format de données léger et compact minimise les besoins en ressources et permet un codage et un décodage rapides des messages
  • Efficace – Le format de données protobufs rationalise la communication en sérialisant les données structurées
  • Fiabilité – HTTP/2 et TLS/SSL sont requis, améliorant la sécurité par défaut

La majeure partie de la puissance provient du côté client, tandis que la gestion et les calculs sont déchargés sur un serveur distant hébergeant la ressource. gRPC est adapté aux cas d'utilisation qui nécessitent régulièrement une quantité définie de données ou de traitement, comme le trafic entre les microservices ou la collecte de données dans laquelle le demandeur (comme un appareil IOT) doit conserver des ressources limitées.

Netflix est un exemple d’utilisateur bien connu des API gRPC.

Sécurisez vos API GraphQL avec NGINX App Protect WAF

NGINX App Protect WAF prend désormais en charge les API GraphQL en plus des API REST et gRPC. Il sécurise les API GraphQL en appliquant des signatures d’attaque, en éliminant les exploits malveillants et en se défendant contre les attaques. Le trafic GraphQL est analysé de manière native, ce qui permet à NGINX App Protect WAF de détecter les violations en fonction de la syntaxe et du profil GraphQL et d'appliquer des signatures d'attaque. La visibilité sur les requêtes d'introspection permet à NGINX App Protect WAF de les bloquer, ainsi que de bloquer les modèles détectés dans les réponses. Cette méthode permet de détecter les attaques et d’exécuter des signatures dans les segments appropriés d’une charge utile et, ce faisant, de réduire les faux positifs.
 
Découvrez comment NGINX App Protect WAF peut défendre vos API GraphQL contre les attaques dans cette démo.

Avantages de la sécurité de l'API GraphQL avec NGINX App Protect WAF :

  • Définir les paramètres de sécurité – Définissez, conformément à votre politique organisationnelle, la longueur totale et la valeur des paramètres dans le modèle GraphQL et le profil de contenu dans le cadre de la politique de sécurité de l'application
  • Réduisez les faux positifs – Améliorez la précision de la prévention des attaques avec des contrôles granulaires pour une meilleure détection des attaques dans une requête GraphQL
  • Réduisez les risques d'exploitation malveillante – Définissez un nombre maximal de requêtes groupées dans une seule requête HTTP pour réduire le risque d'exploitation malveillante et d'attaques
  • Éliminer les attaques DoS – Configurer la profondeur de structure maximale dans les profils de contenu pour arrêter les attaques DoS causées par des requêtes récursives
  • Limitez l’exposition aux risques de l’API – Appliquez des contraintes sur les requêtes d’introspection pour empêcher les pirates de comprendre la structure de l’API, ce qui peut conduire à une violation

API de streaming bidirectionnel gRPC sécurisées avec NGINX App Protect WAF

NGINX App Protect WAF prend désormais en charge le streaming bidirectionnel gRPC en plus des types de messages unaires, vous permettant de sécuriser les API basées sur gRPC qui utilisent des flux de messages (client, serveur ou les deux). Cela offre une sécurité complète pour les API gRPC quel que soit le type de communication.

NGINX App Protect WAF sécurise les API gRPC en appliquant votre schéma, en définissant des limites de taille, en bloquant les fichiers inconnus et en empêchant les types d'attaques DoS par épuisement des ressources. Vous pouvez importer votre fichier IDL (Interface Definition Language) dans NGINX App Protect WAF afin qu'il puisse appliquer la structure et le schéma de vos messages gRPC et rechercher les attaques aux bons endroits. Cela permet une détection précise des tentatives d'exploitation de votre application via gRPC et évite les faux positifs qui peuvent se produire lors de la recherche de sécurité aux mauvais endroits sans contexte.

Découvrez comment NGINX App Protect WAF peut défendre vos API bidirectionnelles gRPC contre les attaques dans cette démo.

Avantages de la sécurité de l'API gRPC avec NGINX App Protect WAF :

  • Protection gRPC complète – Du streaming unaire au streaming bidirectionnel, sécurité complète quel que soit le type de communication
  • Réduire les faux positifs – Amélioration de la précision grâce à l'application de la structure et du schéma des messages gRPC, pour une meilleure détection des attaques dans une requête gRPC
  • Bloquer les exploits malveillants – Contrôle que chaque champ du message gRPC possède le type correct et le contenu attendu, avec la possibilité de bloquer les champs inconnus
  • Éliminer les attaques DoS – Limiter la taille des messages pour éviter les attaques DoS de type épuisement des ressources

Les équipes SecOps et API Dev peuvent gérer et automatiser la sécurité des API

Dans le rapport State of the API 2022 de Postman, 20 % des 37 000 développeurs et professionnels des API interrogés ont déclaré que des incidents liés aux API se produisent au moins une fois par mois dans leur organisation, entraînant une perte de données, une perte de service, des abus ou un accès inapproprié. En revanche, 52 % des répondants ont subi une attaque d'API moins d'une fois par an, ce qui souligne l'importance d'intégrer la sécurité dès le début dans le cadre d'une stratégie de glissement vers la gauche pour la sécurité des API. Les API étant publiées plus fréquemment que les applications, une stratégie de déplacement vers la gauche est de plus en plus appliquée à la sécurité des API. Lorsque les organisations adoptent une culture shift-left et intègrent la sécurité en tant que code dans les pipelines CI/CD, elles intègrent la sécurité à chaque étape du développement des API, permettent aux développeurs de rester agiles et accélèrent la vitesse de déploiement.

Diagramme montrant comment se déplacer vers la gauche en utilisant la sécurité en tant que code avec NGINX App Protect WAF, Jenkins et Ansible
Figure 2 : NGINX App Protect WAF permet l'intégration de la sécurité des API dans les pipelines CI/CD pour une protection automatisée qui couvre l'ensemble du cycle de vie des API.

Un domaine clé dans lequel la protection doit être spécifique à l'API est la validation des schémas d'API, y compris les fichiers IDL gRPC et les requêtes GraphQL. Les schémas sont uniques à chaque API et changent avec chaque version d'API. Lors de l'automatisation du schéma d'API, chaque fois que vous mettez à jour une API, vous devez également mettre à jour la configuration et le code de ce fichier. Les configurations WAF peuvent être déployées de manière automatisée pour suivre les changements de version de l'API. NGINX App Protect WAF peut valider les schémas, en vérifiant que les requêtes sont conformes à ce que l'API prend en charge (méthodes, points de terminaison, paramètres, etc.). NGINX App Protect WAF permet une sécurité cohérente des applications avec des politiques déclaratives qui peuvent être créées par les équipes SecOps, avec des équipes de développement d'API capables de gérer et de déployer la sécurité des API pour un contrôle et une agilité plus granulaires. Si vous cherchez à automatiser la sécurité de vos API à grande échelle dans des environnements hybrides et multicloud, NGINX App Protect WAF peut vous aider.

Résumé

Les portefeuilles d’applications modernes continuent de croître et l’utilisation de microservices s’accompagne d’une prolifération encore plus grande d’API. La sécurité des API est complexe et difficile, en particulier pour les organisations opérant dans des environnements hybrides ou multi-cloud. Le manque de sécurité des API peut avoir des effets dévastateurs à long terme au-delà des coûts monétaires. NGINX App Protect WAF offre une sécurité API complète qui inclut la protection de vos API REST, GraphQL et gRPC et aide vos équipes SecOps et API à se déplacer vers la gauche et à automatiser la sécurité tout au long du cycle de vie de l'API et dans les environnements distribués.

Testez NGINX App Protect WAF dès aujourd'hui avec un essai gratuit de 30 jours.

Ressources supplémentaires

Blog: Sécurisez votre passerelle API avec NGINX App Protect WAF
Livre électronique: Sécurité des applications et des API modernes
Livre électronique: Maîtriser l'architecture API d'O'Reilly
Fiche de données: Protection WAF de l'application NGINX


« 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."