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.

PyPI License: MIT Python 3.10+ Tests GitHub

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)

RegraDetectaSeveridade
Injeção de PromptSubstituições de instrução, comportamento oculto, tags <IMPORTANT>, técnicas de evasãoCRITICAL/HIGH
Envenenamento SemânticoDescrições de ferramentas semanticamente semelhantes a ataques conhecidos (embeddings ONNX)HIGH/MEDIUM
Exfiltração de DadosTransferências ocultas de dados, exfiltração de conversas, uploads externosCRITICAL/HIGH
Exposição de CredenciaisChaves de API, tokens e segredos codificados em configuraçõesCRITICAL/HIGH
Injeção de ComandosExecução de shell, shells reversos, substituição de comandosCRITICAL/HIGH
Envenenamento de FerramentasUnicode oculto, payloads base64, ofuscação HTMLHIGH
Segurança de TransporteTransporte HTTP não criptografado (não HTTPS)HIGH/MEDIUM

Regras de Runtime (Análise de Tráfego ao Vivo)

RegraDetectaSeveridade
Injeção ANSIManipulação de terminal, limpeza de tela, saída falsaHIGH
Envenenamento de RespostaInjeção de prompt em respostas, instruções ocultas, comandos de exfiltração de dadosCRITICAL/HIGH
Vazamento de EstadoVazamentos de credenciais, exposição de PII, contaminação de dados entre ferramentasHIGH
Rug PullAlterações na definição de ferramentas, novas ferramentas adicionadas silenciosamente, escalonamento de privilégiosCRITICAL
Sombra de FerramentaAtaques de homóglifos, typosquatting, colisões de namespaceHIGH
Correlação entre FerramentasCadeias de ataque em várias etapas, padrões recon→exfilHIGH
Detecção de AnomaliasOutliers estatísticos, ofuscação unicode, esteganografiaMEDIUM

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:

  1. O cliente se conecta ao proxy Glyph
  2. O proxy estabelece conexão upstream com o servidor MCP real
  3. O proxy escaneia as definições de ferramentas em relação à linha de base (detecção de rug pull)
  4. Chamadas de ferramentas do cliente → Proxy → Regras de segurança → Servidor
  5. Resposta do servidor → Proxy → Regras de segurança + sanitização ANSI → Cliente
  6. 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

RecursoGlyphInvariant mcp-scanCisco mcp-scannerSnyk agent-scan
PrivacidadeTotalmente localAnálise em nuvemLocalPhone-home
Análise de MLONNX (local)ProprietáriaRequer API LLMNuvem
Conta NecessáriaNãoNãoNãoSim
Proteção ao Vivostdio + HTTP/SSEapenas stdioapenas stdioApenas configuração
Regras de Detecção14 (estáticas + runtime)342
Validação no Mundo Real5 padrões de CVEApenas sintéticoDesconhecidaProprietária
Quarentena de RuntimeSimNãoNãoNão
Fixação de ConfiguraçãoSimNãoNãoNã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ódigoResultado
0Escaneamento limpo — nenhuma descoberta
1Descobertas detectadas
2Descobertas 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.