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.
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)
| Regla | Detecta | Severidad |
|---|---|---|
| Inyección de Prompts | Anulaciones de instrucciones, comportamiento oculto, etiquetas <IMPORTANT>, técnicas de evasión | CRÍTICA/ALTA |
| Envenenamiento Semántico | Descripciones de herramientas semánticamente similares a ataques conocidos (embeddings ONNX) | ALTA/MEDIA |
| Exfiltración de Datos | Transferencias de datos ocultas, exfiltración de conversaciones, cargas externas | CRÍTICA/ALTA |
| Exposición de Credenciales | Claves API hardcodeadas, tokens, secretos en configuraciones | CRÍTICA/ALTA |
| Inyección de Comandos | Ejecución de shell, shells inversas, sustitución de comandos | CRÍTICA/ALTA |
| Envenenamiento de Herramientas | Unicode oculto, payloads base64, ofuscación HTML | ALTA |
| Seguridad del Transporte | Transporte HTTP sin cifrar (no HTTPS) | ALTA/MEDIA |
Reglas de Ejecución (Análisis de Tráfico en Vivo)
| Regla | Detecta | Severidad |
|---|---|---|
| Inyección ANSI | Manipulación de terminal, limpieza de pantalla, salida falsa | ALTA |
| Envenenamiento de Respuestas | Inyección de prompts en respuestas, instrucciones ocultas, comandos de exfiltración de datos | CRÍTICA/ALTA |
| Fuga de Estado | Fugas de credenciales, exposición de PII, contaminación de datos entre herramientas | ALTA |
| Tirón de Alfombra | Cambios en definiciones de herramientas, nuevas herramientas añadidas silenciosamente, escalada de privilegios | CRÍTICA |
| Sombreado de Herramientas | Ataques de homoglifos, typosquatting, colisiones de espacios de nombres | ALTA |
| Correlación entre Herramientas | Cadenas de ataque de múltiples pasos, patrones de reconocimiento→exfiltración | ALTA |
| Detección de Anomalías | Valores atípicos estadísticos, ofuscación unicode, esteganografía | MEDIA |
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:
- El cliente se conecta al proxy Glyph
- El proxy establece conexión ascendente con el servidor MCP real
- El proxy escanea las definiciones de herramientas contra la línea base (detección de tirón de alfombra)
- Llamadas de herramientas del cliente → Proxy → Reglas de seguridad → Servidor
- Respuesta del servidor → Proxy → Reglas de seguridad + saneamiento ANSI → Cliente
- 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ística | Glyph | Invariant mcp-scan | Cisco mcp-scanner | Snyk agent-scan |
|---|---|---|---|---|
| Privacidad | Totalmente local | Análisis en la nube | Local | Llamada a casa |
| Análisis ML | ONNX (local) | Propietario | API LLM requerida | Nube |
| Cuenta Requerida | No | No | No | Sí |
| Protección en Vivo | stdio + HTTP/SSE | Solo stdio | Solo stdio | Solo configuración |
| Reglas de Detección | 14 (estáticas + ejecución) | 3 | 4 | 2 |
| Validación en el Mundo Real | 5 patrones CVE | Solo sintético | Desconocido | Propietario |
| Cuarentena en Ejecución | Sí | No | No | No |
| Fijación de Configuración | Sí | No | No | No |
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ódigo | Resultado |
|---|---|
0 | Escaneo limpio — sin hallazgos |
1 | Hallazgos detectados |
2 | Hallazgos 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.