Glyph

Escáner de seguridad MCP: detecta envenenamiento de herramientas, fugas de credenciales y transportes inseguros en configuraciones de agentes de IA.

Documentación

🔮 Glyph — Escáner de Seguridad MCP y Proxy de Ejecución

Lee las runas antes de que tu agente pise sobre ellas.

PyPI License: MIT Python 3.10+ Tests GitHub

Plataforma de seguridad MCP de doble modo. Escanea configuraciones estáticamente + protege el tráfico en tiempo de ejecución. 83% de detección en corpus de ataques de investigación. 100% en CVEs del mundo real. Cero falsos positivos.

Qué Es

Glyph protege tu infraestructura MCP mediante dos enfoques complementarios:

🔍 Análisis Estático (glyph scan) — Escaneo de seguridad profundo de archivos de configuración MCP
🛡️ Protección en Ejecución (glyph proxy) — Intercepción en vivo y saneamiento del tráfico MCP

El análisis estático encuentra las vulnerabilidades. La protección en ejecución detiene los exploits. Juntos, crean una seguridad MCP integral.


Inicio Rápido

# Install
pip install glyph-scan

# Static scan — analyze config files
glyph scan ~/.config/claude/claude_desktop_config.json

# Runtime protection — proxy live traffic
glyph baseline create config.json  # Create security baseline
glyph proxy config.json --baseline baseline.json

Resultados en segundos. Sin API en la nube requerida. Sin necesidad de cuenta.


Motor de Detección

14 Reglas de Seguridad — 7 estáticas + 7 de ejecución

Reglas Estáticas (Análisis de Configuración)

ReglaDetectaSeveridad
Inyección de PromptsAnulaciones de instrucciones, comportamiento oculto, etiquetas <IMPORTANT>, técnicas de evasiónCRÍTICA/ALTA
Envenenamiento SemánticoDescripciones de herramientas semánticamente similares a ataques conocidos (embeddings ONNX)ALTA/MEDIA
Exfiltración de DatosTransferencias de datos ocultas, exfiltración de conversaciones, cargas externasCRÍTICA/ALTA
Exposición de CredencialesClaves API hardcodeadas, tokens, secretos en configuracionesCRÍTICA/ALTA
Inyección de ComandosEjecución de shell, shells inversas, sustitución de comandosCRÍTICA/ALTA
Envenenamiento de HerramientasUnicode oculto, payloads base64, ofuscación HTMLALTA
Seguridad del TransporteTransporte HTTP sin cifrar (no HTTPS)ALTA/MEDIA

Reglas de Ejecución (Análisis de Tráfico en Vivo)

ReglaDetectaSeveridad
Inyección ANSIManipulación de terminal, limpieza de pantalla, salida falsaALTA
Envenenamiento de RespuestasInyección de prompts en respuestas, instrucciones ocultas, comandos de exfiltración de datosCRÍTICA/ALTA
Fuga de EstadoFugas de credenciales, exposición de PII, contaminación de datos entre herramientasALTA
Tirón de AlfombraCambios en definiciones de herramientas, nuevas herramientas añadidas silenciosamente, escalada de privilegiosCRÍTICA
Sombreado de HerramientasAtaques de homoglifos, typosquatting, colisiones de espacios de nombresALTA
Correlación entre HerramientasCadenas de ataque de múltiples pasos, patrones de reconocimiento→exfiltraciónALTA
Detección de AnomalíasValores atípicos estadísticos, ofuscación unicode, esteganografíaMEDIA

Resultados Probados en Batalla

Validación en el mundo real contra exploits reales:

marmelab/mcp-vulnerability — PoC de inyección de prompts + secuestro entre herramientas
Invariant Labs GitHub MCP — Exfiltración de datos en descripciones de issues
Anthropic Git MCP RCE — Inyección de comandos mediante manipulación de configuración git
WhatsApp MCP Exfil — Copia de seguridad oculta de mensajes a endpoint externo
ToolHijacker Académico — Manipulación sesgada de selección de herramientas

Estadísticas de Detección:

  • 83% de tasa de detección en corpus de ataques de investigación de 23 vectores
  • 100% de tasa de detección en patrones CVE del mundo real
  • 0 falsos positivos en descripciones legítimas de herramientas
  • 197 casos de prueba aprobados

No son benchmarks sintéticos. Son exploits reales que atacan despliegues MCP reales.


Uso

Escaneo Estático

# Scan a single config
glyph scan ~/.config/claude/claude_desktop_config.json

# JSON output for CI/CD
glyph scan config.json --format json

# Filter by severity
glyph scan config.json --severity critical

# List all detection rules
glyph rules list

Protección en Ejecución

# 1. Create security baseline (approved tool definitions)
glyph baseline create config.json --output baseline.json

# 2. Run as security proxy
glyph proxy config.json --baseline baseline.json

# 3. Manage quarantined responses
glyph quarantine list
glyph quarantine release <id>

# 4. Analyze traffic logs
glyph traffic list
glyph traffic search "suspicious"
glyph traffic stats

Flujo de Ejecución:

  1. El cliente se conecta al proxy Glyph
  2. El proxy establece conexión ascendente con el servidor MCP real
  3. El proxy escanea las definiciones de herramientas contra la línea base (detección de tirón de alfombra)
  4. Llamadas de herramientas del cliente → Proxy → Reglas de seguridad → Servidor
  5. Respuesta del servidor → Proxy → Reglas de seguridad + saneamiento ANSI → Cliente
  6. Respuestas sospechosas puestas en cuarentena para revisión

Ejemplo de Salida

🔮 Glyph v0.3.0 — MCP Security Scanner & Runtime Proxy

Scanning: config.json (3 servers, 12 tools)

━━━ Findings ━━━

🔴 CRITICAL: Semantic poisoning detected
   Rule: semantic-poisoning (confidence: 0.94)
   Location: tool "helper" in server "utils" 
   Similarity: 94% match to known prompt injection pattern
   Fix: Review tool description for hidden instructions

🔴 CRITICAL: Data exfiltration pattern
   Rule: data-exfiltration
   Location: tool "email_sender" in server "comms"
   Pattern: Hidden BCC to external domain
   Fix: Remove hardcoded recipient addresses

🟡 HIGH: Hardcoded API key
   Rule: credential-exposure
   Location: server "openai-tools"
   Fix: Use ${OPENAI_API_KEY} environment variable

━━━ Summary ━━━
Scanned: 1 config, 3 servers, 12 tools
Findings: 2 critical, 1 high, 0 medium, 0 low
Status: FAIL (CRITICAL findings detected)

Cómo Se Compara

CaracterísticaGlyphInvariant mcp-scanCisco mcp-scannerSnyk agent-scan
PrivacidadTotalmente localAnálisis en la nubeLocalLlamada a casa
Análisis MLONNX (local)PropietarioAPI LLM requeridaNube
Cuenta RequeridaNoNoNo
Protección en Vivostdio + HTTP/SSESolo stdioSolo stdioSolo configuración
Reglas de Detección14 (estáticas + ejecución)342
Validación en el Mundo Real5 patrones CVESolo sintéticoDesconocidoPropietario
Cuarentena en EjecuciónNoNoNo
Fijación de ConfiguraciónNoNoNo

Arquitectura

┌─────────────┐  JSON-RPC   ┌─────────────┐  JSON-RPC   ┌─────────────┐
│   Client    │ ←────────→  │Glyph Proxy  │ ←────────→  │ MCP Server  │
│ (Claude AI) │             │             │             │ (Tools)     │
└─────────────┘             └─────────────┘             └─────────────┘
                                    │
                            ┌───────┼───────┐
                            │       │       │
                    ┌───────▼──┐ ┌──▼───┐ ┌─▼─────────┐
                    │Static    │ │Runtime│ │Quarantine │
                    │Engine    │ │Rules  │ │System    │
                    │(7 rules) │ │(7 rules)│ │(SQLite)  │
                    └──────────┘ └───────┘ └───────────┘

Motor Estático — Analiza configuraciones para vulnerabilidades conocidas
Reglas de Ejecución — Análisis de tráfico en tiempo real y detección de amenazas
Sistema de Cuarentena — Almacenamiento seguro y revisión de respuestas sospechosas
Análisis Semántico ONNX — Detección de intenciones impulsada por ML mediante embeddings


Aviso de Seguridad

⚠️ El escaneo en ejecución genera procesos definidos en archivos de configuración. Una configuración maliciosa puede contener comandos arbitrarios. El escaneo estático es seguro (solo análisis JSON).

# Safe: static configuration analysis  
glyph scan config.json

# Caution: live server connections (spawns processes)
glyph proxy config.json --baseline baseline.json

# Sandboxed live scanning (recommended for untrusted configs)
docker run --rm -v $(pwd):/scan glyph proxy /scan/config.json --baseline /scan/baseline.json

Desarrollo

git clone https://github.com/HaseebKhalid1507/glyph.git
cd glyph
pip install -e ".[dev]"
pytest tests/ -v

Estadísticas del Proyecto:

  • 10,074 líneas de código
  • 197 casos de prueba
  • 83% de tasa de detección en corpus de investigación adversarial
  • 14 reglas de detección (7 estáticas + 7 de ejecución)
  • 0 dependencias externas para el escaneo principal

Códigos de Salida

CódigoResultado
0Escaneo limpio — sin hallazgos
1Hallazgos detectados
2Hallazgos críticos detectados

Hoja de Ruta

  • Extensión de Navegador — escanear configuraciones MCP en la GUI de Claude Desktop
  • Acción de GitHub — escaneo automatizado de PR para configuraciones MCP
  • Salida SARIF — integración con herramientas de seguridad (SonarQube, CodeQL)
  • Transporte WebSocket — soporte para servidores MCP basados en WebSocket
  • Panel Empresarial — monitoreo de seguridad centralizado

Contribuciones

¿Encontraste un nuevo patrón de ataque MCP? Abre un issue con detalles.
¿Quieres añadir reglas de detección? Los PRs son bienvenidos.
¿Necesitas características empresariales? Hablemos.


Autor

Construido por Haseeb Khalid — ingeniero de seguridad, constructor de agentes, lector de runas.


Licencia

MIT — escanea libremente, asegura con confianza.