DevOps y monitorización

MCP conecta agentes de IA con APIs, pero GraphQL controla lo que ven

Conectar agentes de IA a sistemas internos mediante MCP es sencillo, pero asegurar el acceso a datos a nivel de campo requiere contratos deterministas como GraphQL para evitar filtraciones.

Un cubo de cristal con un conector de API dentro, rodeado de cajas cerradas.
Ilustración creada para este artículo

Traducido automáticamente del original en inglés.

El Model Context Protocol (MCP) ha simplificado el proceso de conectar agentes de inteligencia artificial con interfaces de programación de aplicaciones internas, pero introduce una brecha crítica de seguridad en cuanto a la visibilidad de los datos. Mientras las organizaciones se apresuran a integrar flujos de trabajo agénticos en sus operaciones, los ingenieros enfrentan el desafío urgente de definir exactamente qué campos de datos pueden leer o modificar estas herramientas autónomas. Sin controles estrictos, los agentes corren el riesgo de exponer información personal o financiera sensible oculta dentro de respuestas amplias de API.

Qué ocurrió

Integrar un agente de IA con un sistema interno, como una plataforma de gestión de pedidos, es ahora técnicamente simple usando servidores MCP. Sin embargo, esta facilidad de conectividad crea un dilema significativo de seguridad porque las APIs estándar a menudo devuelven conjuntos de datos extensos, incluyendo información de identificación personal, detalles de fraude y notas operativas que deberían permanecer restringidas. Un ingeniero que construya una herramienta MCP que simplemente pase todos los datos upstream crea una vulnerabilidad grave, otorgando efectivamente al agente acceso irrestricto a todo el esquema de la base de datos.

El enfoque alternativo implica filtrar las respuestas dentro de cada herramienta individual, pero este método rápidamente se vuelve inmanejable a escala. Equipos diferentes, como finanzas, soporte y gestión de inventario, requieren vistas distintas de los mismos objetos de datos. Mantener herramientas separadas y superpuestas para cada equipo conduce a la duplicación de código y aumenta las cargas de mantenimiento. Esta fragmentación dificulta garantizar políticas de seguridad consistentes en toda la organización, dejando brechas donde los datos sensibles podrían filtrarse inadvertidamente a través de endpoints menos rigurosamente mantenidos.

Detalles clave

  • MCP habilita una rápida conectividad entre agentes de IA y sistemas internos, pero no gestiona inherentemente los permisos de acceso a datos.
  • Las APIs estándar a menudo devuelven conjuntos de datos amplios que contienen campos sensibles como números de seguro social o puntuaciones internas de fraude.
  • Filtrar datos a nivel de herramienta requiere mantener docenas de herramientas similares para diferentes equipos, aumentando la complejidad.
  • GraphQL proporciona un contrato determinista a nivel de campo que especifica exactamente a qué datos puede acceder un agente.
  • Las consultas en GraphQL solicitan solo campos específicos, asegurando que la respuesta no contenga datos no autorizados independientemente de la carga útil upstream.
  • Las operaciones de escritura, o mutaciones, pueden restringirse a acciones empresariales específicas como solicitar transferencias de inventario, en lugar de permitir escrituras generales en la base de datos.

Antecedentes

GraphQL es un lenguaje de consulta para APIs que permite a los clientes solicitar exactamente los datos que necesitan, ni más ni menos. A diferencia de las APIs REST tradicionales que devuelven estructuras fijas, GraphQL permite a los desarrolladores definir esquemas precisos donde cada campo tiene reglas de acceso específicas. Esta tecnología fue diseñada originalmente para optimizar la transferencia de datos para aplicaciones móviles reduciendo el tamaño de las cargas útiles, pero su capacidad para imponer límites estrictos de datos la hace ideal para arquitecturas conscientes de la seguridad. Grandes empresas como Shopify, Netflix y Walmart han utilizado GraphQL durante más de una década para gestionar interacciones de datos complejas de forma segura.

En el contexto de los agentes de IA, un contrato a nivel de campo actúa como una capa de seguridad independiente del protocolo de transporte subyacente. Ya sea que los servicios backend utilicen REST, gRPC o SOAP, una capa GraphQL puede situarse encima para mediar el acceso. Esta configuración permite que los sistemas internos continúen funcionando con sus modelos de datos amplios existentes, mientras asegura que los agentes externos solo reciban subconjuntos permitidos de información. El entorno de ejecución impone estas reglas, bloqueando solicitudes de campos restringidos como notas internas o datos privados de clientes antes de que lleguen al agente.

Por qué importa

Para los equipos que ejecutan su propio software, la adopción de agentes de IA introduce nuevos vectores de fuga de datos que la seguridad perimetral tradicional no puede abordar. Los agentes operan de manera autónoma, componiendo operaciones en tiempo de ejecución basándose en indicaciones del usuario, lo que significa que pueden intentar acceder a campos de datos que los desarrolladores humanos no anticiparon explícitamente durante la creación inicial de la herramienta. Sin un contrato determinista, cada nueva integración de agentes se convierte en un potencial incidente de seguridad esperando ocurrir, requiriendo vigilancia constante y revisiones manuales de código para prevenir la exposición de datos operativos sensibles.

Implementar un contrato a nivel de campo reduce la sobrecarga operativa de gestionar múltiples integraciones de agentes. En lugar de construir y mantener lógica de filtrado personalizada para cada equipo y caso de uso, los ingenieros pueden definir una única fuente de verdad para el acceso a datos. Este enfoque asegura que los equipos de finanzas, soporte y logística interactúen con los mismos sistemas subyacentes, pero reciban solo los datos relevantes para sus roles específicos. Transforma la seguridad de un proceso reactivo de parcheo a una característica arquitectónica proactiva, alineándose con el principio de menor privilegio.

Qué puedes hacer

  • Audita los endpoints de API existentes para identificar campos sensibles que no deben ser accesibles por agentes de IA.
  • Implementa una capa GraphQL sobre tus servicios internos para imponer controles de acceso a nivel de campo.
  • Define mutaciones específicas para operaciones de escritura para restringir a los agentes solo a acciones empresariales aprobadas.
  • Evita pasar respuestas completas de API upstream directamente a las herramientas MCP; siempre filtra o transforma los datos primero.
  • Usa directivas de esquema para marcar campos sensibles como inalcanzables para roles o contextos específicos de agentes.
  • Prueba regularmente las interacciones de los agentes para asegurar que no puedan eludir las restricciones de nivel de campo mediante consultas complejas.

Más noticias

Todas las noticias