Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

GraphQL Injection

hacking

Définition

Le GraphQL Injection regroupe un ensemble de vulnérabilités spécifiques à l'usage de GraphQL, langage de requête d'API offrant une flexibilité structurelle nettement supérieure aux API REST traditionnelles mais introduisant de nouvelles surfaces d'attaque propres à ce paradigme, référencées dans l'OWASP API Security Top 10. L'introspection non désactivée constitue un risque fondamental : GraphQL permet nativement d'interroger le schéma complet de l'API, fonctionnalité utile en développement mais exposant en production la structure de données, les types disponibles et les mutations possibles, révélant la surface d'attaque complète sans reconnaissance préalable. L'injection via arguments non sanitisés reproduit les vulnérabilités classiques d'injection SQL ou NoSQL lorsque les arguments d'une requête GraphQL sont directement intégrés à une requête de base de données sous-jacente sans validation appropriée. Les attaques par déni de service via requêtes imbriquées exploitent la flexibilité de GraphQL, un attaquant pouvant construire une requête imbriquée ou circulaire multipliant exponentiellement la charge nécessaire à sa résolution, sans limite naturelle contrairement aux endpoints REST fixes. Les batching attacks exploitent la capacité de GraphQL à traiter plusieurs opérations en une seule requête HTTP pour contourner les mécanismes de rate limiting comptant les requêtes plutôt que les opérations. Enfin, l'IDOR via mutations survient lorsque les opérations d'écriture ne vérifient pas l'autorisation de l'utilisateur sur l'objet modifié, reproduisant la faille IDOR classique dans le contexte de GraphQL.

Description

Les injections GraphQL exploitent les spécificités de cette API : introspection exposant le schéma complet, injection via des arguments non sanitisés, déni de service par requêtes récursives imbriquées, et batching attacks contournant le rate limiting.

Exploitation

L'introspection permet à l'attaquant de cartographier tous les types et mutations disponibles. Des IDOR via mutations ou des injections dans les arguments permettent d'accéder à des données non autorisées ou d'exécuter des actions privilégiées.

Défense

  • Désactiver l'introspection en production ou la restreindre aux utilisateurs authentifiés
  • Implémenter des limites de profondeur et de complexité des requêtes pour prévenir les DoS
  • Valider et sanitiser tous les arguments comme pour des requêtes SQL classiques

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis