Glyph
Scanner de segurança MCP — detecta envenenamento de ferramentas, vazamento de credenciais e transportes inseguros em configurações de agentes de IA.
Documentação
🔮 Glyph — Scanner de Segurança MCP e Proxy de Runtime
Leia as runas antes que seu agente pise nelas.
Plataforma de segurança MCP de modo duplo. Escaneie configurações estaticamente + proteja o tráfego em tempo de execução. 83% de detecção no corpus de ataques de pesquisa. 100% em CVEs do mundo real. Zero falsos positivos.
O que é
Glyph protege sua infraestrutura MCP por meio de duas abordagens complementares:
🔍 Análise Estática (glyph scan) — Escaneamento profundo de segurança dos arquivos de configuração MCP
🛡️ Proteção em Tempo de Execução (glyph proxy) — Interceptação ao vivo e sanitização do tráfego MCP
A análise estática encontra as vulnerabilidades. O runtime impede os exploits. Juntos, eles criam uma segurança MCP abrangente.
Início 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 em segundos. Nenhuma API em nuvem necessária. Nenhuma conta necessária.
Mecanismo de Detecção
14 Regras de Segurança — 7 estáticas + 7 de runtime
Regras Estáticas (Análise de Configuração)
| Regra | Detecta | Severidade |
|---|---|---|
| Injeção de Prompt | Substituições de instrução, comportamento oculto, tags <IMPORTANT>, técnicas de evasão | CRITICAL/HIGH |
| Envenenamento Semântico | Descrições de ferramentas semanticamente semelhantes a ataques conhecidos (embeddings ONNX) | HIGH/MEDIUM |
| Exfiltração de Dados | Transferências ocultas de dados, exfiltração de conversas, uploads externos | CRITICAL/HIGH |
| Exposição de Credenciais | Chaves de API, tokens e segredos codificados em configurações | CRITICAL/HIGH |
| Injeção de Comandos | Execução de shell, shells reversos, substituição de comandos | CRITICAL/HIGH |
| Envenenamento de Ferramentas | Unicode oculto, payloads base64, ofuscação HTML | HIGH |
| Segurança de Transporte | Transporte HTTP não criptografado (não HTTPS) | HIGH/MEDIUM |
Regras de Runtime (Análise de Tráfego ao Vivo)
| Regra | Detecta | Severidade |
|---|---|---|
| Injeção ANSI | Manipulação de terminal, limpeza de tela, saída falsa | HIGH |
| Envenenamento de Resposta | Injeção de prompt em respostas, instruções ocultas, comandos de exfiltração de dados | CRITICAL/HIGH |
| Vazamento de Estado | Vazamentos de credenciais, exposição de PII, contaminação de dados entre ferramentas | HIGH |
| Rug Pull | Alterações na definição de ferramentas, novas ferramentas adicionadas silenciosamente, escalonamento de privilégios | CRITICAL |
| Sombra de Ferramenta | Ataques de homóglifos, typosquatting, colisões de namespace | HIGH |
| Correlação entre Ferramentas | Cadeias de ataque em várias etapas, padrões recon→exfil | HIGH |
| Detecção de Anomalias | Outliers estatísticos, ofuscação unicode, esteganografia | MEDIUM |
Resultados Comprovados em Batalha
Validação no mundo real contra exploits reais:
✅ marmelab/mcp-vulnerability — Injeção de prompt + sequestro entre ferramentas PoC
✅ Invariant Labs GitHub MCP — Exfiltração de dados na descrição de issues
✅ Anthropic Git MCP RCE — Injeção de comandos via manipulação de configuração do git
✅ WhatsApp MCP Exfil — Backup oculto de mensagens para endpoint externo
✅ ToolHijacker Academic — Manipulação tendenciosa de seleção de ferramentas
Estatísticas de Detecção:
- 83% de taxa de detecção no corpus de ataques de pesquisa com 23 vetores
- 100% de taxa de detecção em padrões de CVE do mundo real
- 0 falsos positivos em descrições legítimas de ferramentas
- 197 casos de teste passando
Não são benchmarks sintéticos. Exploits reais que visam implantações MCP reais.
Uso
Escaneamento 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
Proteção em Tempo de Execução
# 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
Fluxo de Runtime:
- O cliente se conecta ao proxy Glyph
- O proxy estabelece conexão upstream com o servidor MCP real
- O proxy escaneia as definições de ferramentas em relação à linha de base (detecção de rug pull)
- Chamadas de ferramentas do cliente → Proxy → Regras de segurança → Servidor
- Resposta do servidor → Proxy → Regras de segurança + sanitização ANSI → Cliente
- Respostas suspeitas colocadas em quarentena para revisão
Exemplo de Saída
🔮 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)
Como Ele se Compara
| Recurso | Glyph | Invariant mcp-scan | Cisco mcp-scanner | Snyk agent-scan |
|---|---|---|---|---|
| Privacidade | Totalmente local | Análise em nuvem | Local | Phone-home |
| Análise de ML | ONNX (local) | Proprietária | Requer API LLM | Nuvem |
| Conta Necessária | Não | Não | Não | Sim |
| Proteção ao Vivo | stdio + HTTP/SSE | apenas stdio | apenas stdio | Apenas configuração |
| Regras de Detecção | 14 (estáticas + runtime) | 3 | 4 | 2 |
| Validação no Mundo Real | 5 padrões de CVE | Apenas sintético | Desconhecida | Proprietária |
| Quarentena de Runtime | Sim | Não | Não | Não |
| Fixação de Configuração | Sim | Não | Não | Não |
Arquitetura
┌─────────────┐ JSON-RPC ┌─────────────┐ JSON-RPC ┌─────────────┐
│ Client │ ←────────→ │Glyph Proxy │ ←────────→ │ MCP Server │
│ (Claude AI) │ │ │ │ (Tools) │
└─────────────┘ └─────────────┘ └─────────────┘
│
┌───────┼───────┐
│ │ │
┌───────▼──┐ ┌──▼───┐ ┌─▼─────────┐
│Static │ │Runtime│ │Quarantine │
│Engine │ │Rules │ │System │
│(7 rules) │ │(7 rules)│ │(SQLite) │
└──────────┘ └───────┘ └───────────┘
Mecanismo Estático — Analisa configurações para vulnerabilidades conhecidas
Regras de Runtime — Análise de tráfego em tempo real e detecção de ameaças
Sistema de Quarentena — Armazenamento seguro e revisão de respostas suspeitas
Análise Semântica ONNX — Detecção de intenção com ML via embeddings
Aviso de Segurança
⚠️ O escaneamento em runtime gera processos definidos nos arquivos de configuração. Uma configuração maliciosa pode conter comandos arbitrários. O escaneamento estático é seguro (apenas análise 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
Desenvolvimento
git clone https://github.com/HaseebKhalid1507/glyph.git
cd glyph
pip install -e ".[dev]"
pytest tests/ -v
Estatísticas do Projeto:
- 10.074 linhas de código
- 197 casos de teste
- 83% de taxa de detecção no corpus de pesquisa adversarial
- 14 regras de detecção (7 estáticas + 7 de runtime)
- 0 dependências externas para o escaneamento principal
Códigos de Saída
| Código | Resultado |
|---|---|
0 | Escaneamento limpo — nenhuma descoberta |
1 | Descobertas detectadas |
2 | Descobertas críticas detectadas |
Roteiro
- Extensão de Navegador — escanear configurações MCP na GUI do Claude Desktop
- Ação do GitHub — escaneamento automatizado de PRs para configurações MCP
- Saída SARIF — integração com ferramentas de segurança (SonarQube, CodeQL)
- Transporte WebSocket — suporte para servidores MCP baseados em WebSocket
- Painel Empresarial — monitoramento centralizado de segurança
Contribuindo
Encontrou um novo padrão de ataque MCP? Abra uma issue com detalhes.
Quer adicionar regras de detecção? PRs são bem-vindos.
Precisa de recursos empresariais? Vamos conversar.
Autor
Construído por Haseeb Khalid — engenheiro de segurança, construtor de agentes, leitor de runas.
Licença
MIT — escaneie livremente, proteja com confiança.