BLOG

Sécurisation des API GraphQL avec F5 Advanced WAF

Miniature de Naor Zag
Naor Zag
Publié le 31 août 2021

État des API

Au cours des dernières années, de nombreuses organisations ont connu une transformation numérique, un processus qui s’est accéléré en raison de la pandémie de COVID-19.

Et les API jouent un rôle important dans cette transformation. Dans le cadre de leur transformation numérique, bon nombre de ces mêmes organisations déclarent désormais qu’elles sont des organisations « API-First ». Une organisation « API-First » est une organisation qui commence par concevoir une application en concevant d’abord les API. Ensuite, en utilisant les API comme base, ils commencent à concevoir le reste de l’application. L’objectif est que l’application exploite ses API fondamentales pour communiquer et récupérer des informations à partir d’autres applications.

Ces organisations développent généralement des API et les utilisent pour soutenir leurs partenariats avec des organisations externes, réduisant ainsi leur temps et leurs coûts de développement et améliorant l'interopérabilité entre les systèmes, les outils et les équipes internes.

Comme indiqué dans le rapport State of Application Strategy 2021 de F5 Labs, les API sont également les pierres angulaires de la modernisation des applications, étant utilisées pour aider à l'adaptation et à la mise à jour d'applications plus anciennes et classiques afin de prendre en charge des langages, des outils et des plateformes d'application plus récents et plus modulaires. De plus, les API, bonnes comme mauvaises, représentent désormais la grande majorité du trafic Web total.

C’est le premier tranchant de « l’épée à double tranchant » des API.

Le deuxième tranchant de l’épée « à double tranchant » concernant les API est que, selon Gartner, les abus d’API deviendront le vecteur d’attaque le plus fréquent d’ici 2022. Les attaquants se rendent compte que les API peuvent être vulnérables ou même ne pas être protégées par certaines organisations, car elles s’appuient sur un flux ouvert de données et d’informations à partager entre leur application et d’autres applications. D’autres fois, il s’agit simplement d’un oubli, mais qui permet aux attaquants de disposer d’un point d’entrée rapide et simple pour compromettre une application. Cette situation nécessite un traitement particulier, comme le support natif de tous les protocoles et technologies API utilisés par l’industrie.

API GraphQL

GraphQL est une technologie API relativement nouvelle qui a connu une croissance rapide au cours des dernières années et qui continue de gagner du terrain. Développé en interne par Facebook en 2012, désormais intégré à la Linux Foundation, GraphQL surmonte les défis importants qui existent dans les API REST. Les organisations se tournent vers GraphQL pour développer des API, par opposition à REST ou SOAP.

Ces défis incluent la sous-extraction et la sur-extraction des données, un développement front-end plus rapide sans avoir besoin de nouveaux points de terminaison d'API (GraphQL utilise un point de terminaison), d'excellentes analyses back-end à l'aide de requêtes GraphQL et un système de schéma et de type structuré.

L'année dernière, GraphQL a déjà atteint plus de 22 % d'adoption dans l'industrie1 , atteignant les innovateurs, les premiers utilisateurs et la première majorité du cycle de vie d'adoption de l'innovation.

GraphQL devrait devenir l’une des principales normes pour les API dans les années à venir.

Sécurité GraphQL

Cependant, la croissance fulgurante et l’acceptation de GraphQL ont également rapidement attiré l’attention des cyber-adversaires, dont certains ont déjà commencé à exploiter les vulnérabilités de l’écosystème GraphQL et ont commencé à développer des outils pour les attaquer.

Les techniques d’attaque sur les API utilisant GraphQL incluent les bonnes vieilles injections SQL, ainsi que les attaques nouvellement formées qui exploitent la spécification GraphQL pour révéler des données sur l’API et les utiliser à l’avantage de l’attaquant.

De plus, de nouvelles méthodes d’attaques par déni de service (DoS) ont été introduites, qui exploitent les API construites par GraphQL et épuisent rapidement les ressources du serveur.

À partir d'Advanced WAF v16.1, F5 prend désormais en charge nativement la sécurité des API GraphQL.

Tout d’abord, F5 a développé une analyse native du trafic GraphQL pour permettre l’application de signatures d’attaque WAF avancées.

D'une part, cette approche détectera les attaques aux bons endroits de la charge utile (exécuter les signatures sur les valeurs) ; et d'autre part, cette approche arrêtera les faux positifs dus aux signatures d'attaque exécutées sur les mauvaises parties des requêtes GraphQL.

Deuxièmement, F5 crée le modèle de politique GraphQL et le profil de contenu dans le cadre de la politique de sécurité des applications.

Dans ce nouveau profil de contenu, l'utilisateur peut configurer la longueur totale et la longueur de la valeur des paramètres, en les limitant en fonction de sa politique.

De plus, l'utilisateur peut configurer la profondeur de structure maximale, éliminant ainsi les requêtes GraphQL récursives pouvant conduire à une attaque DoS ; et les requêtes par lots maximales, limitant le nombre de requêtes GraphQL différentes dans une requête HTTP.

Des requêtes d'introspection peuvent également être appliquées, ce qui peut aider les attaquants à comprendre la structure de l'API et leur permettre de mieux réussir à pirater une application.

 

Structure de l'API

Profil de structure de l'API

Pour lutter contre cela, F5 a également ajouté la prise en charge de notre configuration de politique déclarative, la protection contre les attaques DoS volumétriques à l'aide de notre fonctionnalité DoS comportementale et le filtrage des réponses avec la fonctionnalité DataGuard dans F5 Advanced WAF.

Pour résumer, GraphQL offre de nouvelles façons de créer et de gérer des API, d’améliorer la modernisation des applications classiques existantes et de soutenir la transformation numérique. Mais comme toujours, de plus en plus de menaces viennent exploiter les ouvertures de toute nouvelle technologie, et vous pouvez être pris au dépourvu.

Commencez à protéger vos API GraphQL avec F5 Advanced WAF dès aujourd'hui !

Pour plus d'informations, consultez notre article DevCentral et notre leçon Lightboard sur YouTube .