Pular para o conteúdo
Guide

Shadow MCP: o problema empresarial para o qual ninguém orçou

| 8 min read

Os funcionários estão conectando servidores MCP não autorizados ao Claude e ao Cursor. Uma regra de gateway, uma consulta de inventário e um modelo de política para se antecipar.

Dark network lines representing shadow traffic and MCP detection
Photo by Markus Spiske on Unsplash

Shadow IT costumava significar um gerente de marketing pagando o Dropbox. Shadow SaaS significava uma equipe de produto inscrevendo-se no Figma com um cartão de crédito pessoal. Ambos estavam contidos: as ferramentas rodavam em um navegador guia, tocou em dados que o usuário já podia ver e não conseguiu ultrapassar o limite da guia. Sombra MCP quebra essa contenção. Um funcionário alterna um servidor MCP da comunidade para Cursor ou Claude Desktop, e agora um agente pode ler chaves SSH, executar comandos shell e conversar com a produção bancos de dados por meio das credenciais de ambiente do usuário.

O Cloudflare Gateway enviou regras compatíveis com MCP em abril de 2026. Zscaler e Netskope seguiram dentro de um semana. As ferramentas foram atualizadas porque as equipes de segurança corporativa começaram a perguntar. Esta postagem cobre as quatro coisas a fazer neste trimestre: entender o modelo de ameaça, criar detecção, enviar um script de inventário, obter uma lista de permissões e publicar uma política de três páginas.

Por que Shadow MCP é pior que Shadow SaaS

Uma guia SaaS desonesta em um navegador é executada em uma sandbox. Não é possível ler a chave privada SSH do usuário. Isso não é possível gerar um shell. Não é possível abrir uma conexão TCP com o Postgres de produção. O navegador a política de mesma origem e a sandbox do SO carregam a contenção.

Um servidor MCP é executado fora do navegador. Claude Desktop e Cursor geram servidores stdio como filhos processos na máquina do usuário com as permissões do usuário. Um servidor HTTP MCP se conecta com quaisquer credenciais que o usuário cole. O agente então chama as ferramentas desse servidor como parte do seu loop normal. Do ponto de vista do sistema operacional, a chamada da ferramenta é o usuário abrindo um arquivo ou executando um comando.

Diferença concreta: um servidor comunitário GitHub MCP extraído de um pacote npm aleatório e adicionado a ~/.cursor/mcp.json pode exfiltrar qualquer coisa em ~/.ssh/, todo .env arquivo em seu diretório inicial e todo o conteúdo de qualquer repositório que o usuário fez check-out. O usuário aprovou uma vez. O agente nunca mais pergunta. Um ladino baseado em navegador ferramenta não pode fazer nada disso.

Adicione mais uma ruga: a VPN do usuário. Se o laptop estiver na VPN corporativa quando o agente for executado, o servidor MCP herda essa posição de rede. Serviços internos, bancos de dados temporários e todos os pontos de extremidade de metadados se tornam acessíveis. O servidor não precisou fazer phishing em ninguém. Apenas esperou para a VPN se conectar.

Encontrando Shadow MCP em sua rede

A detecção funciona em três camadas: o endpoint, o gateway de saída e o DNS. Você quer sinal de todos os três porque cada um detecta um modo de falha diferente.

No endpoint, observe os processos filhos gerados pelo Claude Desktop ou Cursor. Ambos os clientes invoca servidores stdio como subprocessos com nomes de processos pais conhecidos. Seu EDR (CrowdStrike, SentinelOne, Defender for Endpoint) pode alertar sobre qualquer árvore de processo enraizada em Claude.app, Cursor.app, ou claude-code. Filtrar para o aqueles que você aprovou; sinalizar todo o resto.

Na saída, filtre o tráfego HTTP. MCP sobre Streamable HTTP fornece um cabeçalho distinto (mcp-protocol-version) e um tipo de conteúdo distinto (application/json-rpc-2). Cloudflare Gateway, Zscaler e Netskope combinam em ambos. Aqui está a regra Cloudflare Zero Trust para bloquear MCP não sancionado e permitir que seu anfitriões aprovados:

No DNS, seu resolvedor vê pesquisas de hosts de servidores MCP da comunidade antes de qualquer conexão HTTPS abre. Insira a lista de permissões aprovada em seu filtro DNS (Cisco Umbrella, NextDNS, Cloudflare DNS do gateway) como os únicos destinos MCP permitidos. Qualquer outra pesquisa que corresponda a um conhecido O feed de registro do MCP recebe um bloco e um ticket.

Para servidores stdio instalados com npm, seu agente DLP de endpoint pode observar pacotes correspondentes *-mcp-*, @modelcontextprotocol/*, ou qualquer pacote declarando um mcp entrada em seu package.json bin campo. Isso pega o install evento antes que o usuário conecte o servidor ao Cursor.

Crie um inventário de MCP em uma tarde

A detecção informa quando um novo servidor aparece. O inventário informa o que já está instalado. Envie um script, execute-o por meio de seu MDM (Jamf, Intune, Kandji) e poste os resultados em um relatório ponto final. Uma tarde de trabalho, então você sabe quais máquinas possuem quais servidores.

O script lê os dois arquivos de configuração que todos os principais clientes usam. Claude Desktop mantém sua configuração em ~/Library/Application Support/Claude/claude_desktop_config.json no macOS e %APPDATA%\Claude/claude_desktop_config.json no Windows. O cursor mantém sua configuração em ~/.cursor/mcp.json. Ambos os arquivos são JSON simples com um mcpServers nomes de servidores de mapeamento de objetos para comandos, argumentos, URLs e env vars.

O hash é importante. Os arquivos de configuração mudam quando um usuário adiciona um servidor, gira uma chave ou baixa um modelo de equipe. Armazene o SHA-256 de todo o arquivo e alerte sobre qualquer alteração que você não enviou. O nomes de var env (não valores) também vão para o relatório; vendo GITHUB_PERSONAL_ACCESS_TOKEN listado em um servidor da comunidade é seu próprio sinal.

Execute o script diariamente. Alimente o resultado em seu inventário de ativos existente (Snipe-IT, ServiceNow, ou uma tabela Postgres). Crie um painel que mostre: novos servidores esta semana, servidores em mais de N máquinas e servidores cujo hash de configuração foi alterado. Essas três visualizações cobrem a maior parte do que você preciso perguntar mais tarde.

Coloque na lista de permissões os servidores em que você confia

O inventário mostra o que está instalado. Uma lista de permissões diz o que é permitido. Negação padrão, cada servidor revisado, cada aprovação expirando. Versão do arquivo no Git para que o histórico de aprovação seja auditável.

Três coisas tornam esta lista de permissões útil. Primeiro, cada entrada tem um ticket de revisão e um prazo de validade; as aprovações não duram para sempre. Segundo, os servidores stdio incluem os argumentos permitidos, então um postgres-mcp binário aprovado com --readonly não pode ser executado novamente com acesso de gravação sem uma nova revisão. Terceiro, os escopos são nomeados e explícitos; uma camada de controle posterior pode aplicá-los.

A integração de um novo servidor à lista de permissões exige duas verificações automatizadas antes da revisão humana. Primeiro, verifique a postura TLS do host do servidor. Um servidor servindo MCP sobre HTTP de texto simples, ou com certificado expirando em 10 dias ou faltando HSTS, não é candidato:

Segundo, inspecione os cabeçalhos de resposta. Você quer HSTS com uma idade máxima longa, um sensato content-type, e um mcp-protocol-version cabeçalho que corresponde ao que o server diz que suporta em seu manifesto. O desvio entre o cabeçalho e o manifesto é um sinal de alerta:

Execute ambas as verificações como parte do ticket de admissão. Se alguma delas falhar, o ticket será fechado automaticamente com o motivo da falha. O revisor vê apenas servidores que passaram no básico.

A política MCP de três páginas que toda empresa precisa

A política não precisa ser longa. Precisa responder a cinco perguntas: o que está aprovado, quem aprova novos servidores, o que cada função pode fazer, como você monitora e o que acontece quando algo dá errado. Uma tabela pequena funciona mais do que um documento de 30 páginas que ninguém lê.

Área Política Controlar
Servidores aprovados Somente servidores na lista de permissões YAML podem ser executados em dispositivos corporativos ou tocar em dados corporativos. Bloco de saída DNS +, regra de processo EDR, arquivo de lista de permissões enviado por MDM, expiração de aprovação de seis meses.
Processo de revisão A Security Platform analisa todas as novas solicitações do servidor. A Data Platform assina qualquer servidor com acesso ao banco de dados. Aprovações legais em servidores que processam dados regulamentados. Revise o modelo de ticket, TLS automatizado e verificações de cabeçalho, SLA publicado de cinco dias úteis.
Limites de escopo Os engenheiros obtêm servidores de dados somente leitura por padrão. O acesso de gravação requer um segundo aprovador. Credenciais de produção são proibidas; use teste ou um token com escopo definido. Pacotes de lista de permissões por função enviados via MDM, chaves de API com escopo definido com TTL curto, gateway de autenticação aplicando escopos.
Monitoramento Cada chamada de ferramenta por meio de um servidor aprovado vai para o log de auditoria. Tentativas não aprovadas do servidor acionam um alerta em 15 minutos. Coletor de auditoria de gateway para Kafka e SIEM, comparação diária de inventário, alertas de desvio de hash de arquivo de configuração.
Resposta a incidentes Um servidor MCP comprometido é tratado como uma integração de API comprometida. Revogue as chaves do servidor, coloque os endpoints afetados em quarentena e revise os logs de auditoria da janela de exposição. Runbook documentado, rotação de plantão, mesa trimestral que inclui um cenário MCP.
Exceções As exceções temporárias exigem a aprovação do CISO, um prazo de validade de 30 dias e um plano de acompanhamento por escrito. Modelo de ticket de exceção, entradas de lista de permissões com expiração automática, revisão semanal de exceções.
Desativação Quando um funcionário sai, suas configurações de MCP são apagadas junto com outros estados corporativos. Todas as chaves que eles possuem são trocadas dentro de 24 horas. Ação de limpeza do MDM, runbook de rotação de chaves, log de auditoria do último acesso por chave.

Principais conclusões

  • Os recursos do MCP excedem os recursos do SaaS. Um servidor MCP da comunidade lê SSH chaves, executa comandos shell e herda sua posição VPN. Trate-o como um privilegiado integração, não como uma guia do navegador.
  • A detecção precisa de três camadas. Regras de processo EDR, filtros HTTP de gateway ativados mcp-protocol-versione a lista de permissões de DNS cobre diferentes modos de falha.
  • Inventário em uma tarde. Um script Python de 60 linhas lê as duas configurações arquivos que todos os principais clientes usam, fazem hash deles e publicam em um endpoint de relatório. Execute-o diariamente através do MDM.
  • Lista de permissões de negação padrão, expirações curtas. Cada servidor tem um ticket de revisão e um prazo de seis meses. Usar /v1/ssl/check e /v1/headers/inspect como portões de entrada automáticos.
  • Uma tabela supera uma política de 30 páginas. Servidores aprovados, processo de revisão, escopo limites, monitoramento, resposta a incidentes, exceções, offboarding. Sete linhas, uma página, postada no wiki de engenharia.

Servidor MCP próprio do Botoi em api.botoi.com/mcp é um exemplo de como um servidor se parece quando estiver pronto para sua lista de permissões: TLS 1.3, HSTS, chaves de API com escopo, limites de taxa por chave e 49 ferramentas selecionadas com anotações. Você mesmo pode verificar a postura com os dois cachos acima antes de adicioná-lo ou verifique o Página de configuração do MCP e o Documentos da API para obter a lista completa de ferramentas.

FAQ

O que conta como servidor MCP para fins de inventário?
Os servidores stdio e HTTP contam. Um servidor stdio é um processo filho que Claude Desktop ou Cursor gera a partir de uma entrada de arquivo de configuração; não há presença de rede até que o agente a inicie, mas ela tem a mesma superfície de capacidade. Um servidor HTTP reside em uma URL à qual o cliente se conecta por meio de Streamable HTTP ou SSE. Seu inventário precisa cobrir ambos, o que significa ler arquivos de configuração no endpoint e observar a saída para assinaturas de tráfego MCP.
Posso bloquear totalmente o MCP em redes corporativas sem violar os agentes aprovados?
Sim. Bloqueie tudo por padrão no gateway de saída e, em seguida, coloque na lista de permissões os nomes de host específicos nos quais seus servidores MCP aprovados residem. Os servidores stdio aprovados não tocam na rede (eles se comunicam com suas APIs de apoio por meio de HTTPS normal, que você já controla). Você perde a experimentação comunitária do MCP em dispositivos corporativos, e esse é o ponto. Os desenvolvedores ainda podem usar máquinas pessoais fora da VPN para exploração.
Como o Shadow MCP difere do risco de injeção imediata?
A injeção imediata é um invasor que engana um modelo para que ele faça algo que seu operador não deseja. Shadow MCP é o próprio operador conectando em uma capacidade não revisada. Ator de ameaça diferente, controle diferente. As defesas de injeção imediata (confirmação de ferramenta, sandbox, filtragem de saída) não ajudam se a ferramenta nunca deveria estar lá. Você precisa de inventário e lista de permissões além das defesas em nível de modelo.
O bloqueio requer uma atualização de firewall de última geração?
Não. A filtragem de DNS mais a inspeção de saída da camada HTTP cobrem a maior parte. Cloudflare Gateway, Zscaler e Netskope enviam regras compatíveis com MCP a partir de abril de 2026. Para locais, você pode filtrar no cabeçalho MCP-Protocol-Version ou no tipo de conteúdo application/json-rpc-2 com qualquer proxy L7. Squid, Envoy e HAProxy cuidam disso. A parte difícil não é o filtro; está mantendo a lista de permissões.
Que trilha de auditoria o MCP me fornece imediatamente?
Quase nenhum. O protocolo define chamadas e respostas de ferramentas, mas não exige que o servidor ou cliente as registre. Claude Desktop mantém alguns registros locais; Cursor menos. Os servidores da comunidade geralmente não registram nada. Se você precisar de uma trilha de auditoria que sobreviva à revisão de incidentes, você mesmo a instrumenta no lado do servidor ou coloca um gateway na frente que grava logs estruturados. Não confie no cliente para reter as evidências.

Comece a construir com botoi

150+ endpoints de API para consultas, processamento de texto, geração de imagens e utilitários para desenvolvedores. Plano gratuito, sem cartão de crédito.