DevOps et supervision

MCP connecte les agents IA aux API, mais GraphQL contrôle ce qu'ils voient

Connecter des agents IA à des systèmes internes via MCP est simple, mais sécuriser l'accès aux données au niveau des champs nécessite des contrats déterministes comme GraphQL pour éviter les fuites.

Un cube en verre contenant un connecteur API, entouré de boîtes verrouillées.
Illustration créée pour cet article

Traduit automatiquement depuis l’original en anglais.

Le Model Context Protocol (MCP) a simplifié le processus de connexion des agents d'intelligence artificielle aux interfaces de programmation d'applications (API) internes, mais il introduit une faille de sécurité critique concernant la visibilité des données. Alors que les organisations se précipitent pour intégrer des flux de travail agentiques dans leurs opérations, les ingénieurs sont confrontés au défi urgent de définir exactement quels champs de données ces outils autonomes peuvent lire ou modifier. Sans contrôles stricts, les agents risquent d'exposer des informations personnelles ou financières sensibles cachées dans des réponses API larges.

Ce qui s'est passé

Intégrer un agent IA avec un système interne, tel qu'une plateforme de gestion des commandes, est désormais techniquement simple grâce aux serveurs MCP. Cependant, cette facilité de connectivité crée un dilemme de sécurité important car les API standard renvoient souvent des ensembles de données étendus, incluant des informations personnellement identifiables, des détails sur la fraude et des notes opérationnelles qui devraient rester restreints. Un ingénieur construisant un outil MCP qui transmet simplement toutes les données en amont crée une vulnérabilité sévère, accordant effectivement à l'agent un accès illimité à l'ensemble du schéma de base de données.

L'approche alternative consiste à filtrer les réponses au sein de chaque outil individuel, mais cette méthode devient rapidement ingérable à grande échelle. Différentes équipes, telles que la finance, le support et la gestion des stocks, nécessitent des vues distinctes des mêmes objets de données. Maintenir des outils séparés et chevauchants pour chaque équipe entraîne une duplication de code et une augmentation de la charge de maintenance. Cette fragmentation rend difficile la garantie de politiques de sécurité cohérentes à travers l'organisation, laissant des brèches où des données sensibles pourraient fuiter involontairement via des endpoints moins rigoureusement maintenus.

Détails clés

  • MCP permet une connectivité rapide entre les agents IA et les systèmes internes, mais ne gère pas intrinsèquement les permissions d'accès aux données.
  • Les API standard renvoient souvent des ensembles de données larges contenant des champs sensibles tels que les numéros de sécurité sociale ou les scores internes de fraude.
  • Le filtrage des données au niveau de l'outil nécessite la maintenance de dizaines d'outils similaires pour différentes équipes, augmentant la complexité.
  • GraphQL fournit un contrat déterministe au niveau des champs qui spécifie exactement quelles données un agent peut accéder.
  • Les requêtes GraphQL demandent uniquement des champs spécifiques, garantissant que la réponse ne contient aucune donnée non autorisée, indépendamment de la charge utile en amont.
  • Les opérations d'écriture, ou mutations, peuvent être limitées à des actions commerciales spécifiques comme la demande de transferts de stock plutôt que d'autoriser des écritures générales en base de données.

Contexte

GraphQL est un langage de requête pour les API qui permet aux clients de demander exactement les données dont ils ont besoin, ni plus ni moins. Contrairement aux API REST traditionnelles qui renvoient des structures fixes, GraphQL permet aux développeurs de définir des schémas précis où chaque champ possède des règles d'accès spécifiques. Cette technologie a été conçue à l'origine pour optimiser le transfert de données pour les applications mobiles en réduisant la taille des charges utiles, mais sa capacité à imposer des limites strictes de données la rend idéale pour les architectures soucieuses de la sécurité. Des entreprises majeures comme Shopify, Netflix et Walmart utilisent GraphQL depuis plus d'une décennie pour gérer des interactions de données complexes de manière sécurisée.

Dans le contexte des agents IA, un contrat au niveau des champs agit comme une couche de sécurité indépendante du protocole de transport sous-jacent. Que les services backend utilisent REST, gRPC ou SOAP, une couche GraphQL peut se situer au-dessus pour médier l'accès. Cette configuration permet aux systèmes internes de continuer à fonctionner avec leurs modèles de données larges existants tout en garantissant que les agents externes ne reçoivent que des sous-ensembles d'informations autorisés. L'environnement d'exécution applique ces règles, bloquant les demandes de champs restreints comme les notes internes ou les données privées des clients avant qu'elles n'atteignent l'agent.

Pourquoi c'est important

Pour les équipes développant leur propre logiciel, l'adoption d'agents IA introduit de nouveaux vecteurs de fuite de données que la sécurité périmétrique traditionnelle ne peut pas adresser. Les agents fonctionnent de manière autonome, composant des opérations à l'exécution en fonction des invites utilisateur, ce qui signifie qu'ils peuvent tenter d'accéder à des champs de données que les développeurs humains n'avaient pas explicitement anticipés lors de la création initiale des outils. Sans un contrat déterministe, chaque nouvelle intégration d'agent devient un incident de sécurité potentiel attendant de se produire, nécessitant une vigilance constante et des revues de code manuelles pour prévenir l'exposition de données opérationnelles sensibles.

La mise en œuvre d'un contrat au niveau des champs réduit la charge opérationnelle liée à la gestion de multiples intégrations d'agents. Au lieu de construire et maintenir une logique de filtrage personnalisée pour chaque équipe et cas d'utilisation, les ingénieurs peuvent définir une source unique de vérité pour l'accès aux données. Cette approche garantit que les équipes de finance, de support et de logistique interagissent toutes avec les mêmes systèmes sous-jacents mais ne reçoivent que les données pertinentes pour leurs rôles spécifiques. Elle transforme la sécurité d'un processus réactif de correction en une caractéristique architecturale proactive, alignée sur le principe du moindre privilège.

Ce que vous pouvez faire

  • Auditez les endpoints API existants pour identifier les champs sensibles qui ne doivent pas être accessibles aux agents IA.
  • Implémentez une couche GraphQL au-dessus de vos services internes pour imposer des contrôles d'accès au niveau des champs.
  • Définissez des mutations spécifiques pour les opérations d'écriture afin de limiter les agents aux actions commerciales approuvées uniquement.
  • Évitez de transmettre directement les réponses complètes des API en amont aux outils MCP ; filtrez ou transformez toujours les données d'abord.
  • Utilisez des directives de schéma pour marquer les champs sensibles comme inaccessibles pour des rôles ou contextes d'agents spécifiques.
  • Testez régulièrement les interactions des agents pour vous assurer qu'ils ne peuvent pas contourner les restrictions au niveau des champs via des requêtes complexes.

Autres actualités

Toutes les actualités