MCP para quem decide · Capítulo 7 de 21 · 24 min
Reconhecer os ataques próprios deste protocolo
Oito padrões de ataque do protocolo, cada um ligado ao controle que barra o dano antes de a aprovação humana chegar tarde.
Este capítulo faz parte do curso gratuito MCP para quem decide.
Um servidor MCP malicioso consegue desviar o assistente da empresa antes de qualquer ferramenta ser chamada, e a política de aprovação que a maioria dos comitês assinou não enxerga esse momento. O prejuízo possível inclui chave de acesso à nuvem copiada, correspondência desviada e investigação de incidente sem registro confiável. São oito padrões documentados, e o controle mais comum cobre dois.
A política típica manda pedir autorização humana antes de executar ferramenta sensível. Isso protege contra o uso indevido de uma ferramenta e deixa passar tudo o que acontece antes da primeira chamada, que é justamente onde mora o padrão mais barato de executar. O evento que precisa de autorização é a conexão ao servidor.
Onde essa conversa costuma travar
O gerente comercial da rede de distribuição de material de construção pediu que o assistente consultasse estoque nos quatro estados sem abrir o ERP. O CTO ligou um servidor que faz isso. A diretora jurídica perguntou o que acontece se aquilo for usado contra a empresa, e ouviu que nada é executado sem alguém aprovar na tela.
Faltou uma parte nessa resposta. Ela descreve o que acontece quando uma ferramenta é chamada e omite o que já aconteceu no instante da conexão. Este capítulo percorre os oito padrões com nome e fonte, e responde três coisas para cada um: como o dano chega, qual controle efetivamente barra e por que o controle intuitivo chega depois do estrago.
- Etapa 1 de 6: 1. Cliente conecta
por configuração local ou por link
- Etapa 2 de 6: 2. Cliente pede a lista
quais ferramentas você oferece
- Etapa 3 de 6: 3. Servidor responde
nome e descrição de cada uma
- Etapa 4 de 6: 4. Descrições entram no contexto
texto de terceiro dentro do modelo
- Etapa 5 de 6: 5. Usuário digita a primeira mensagem
o modelo já leu tudo
- Etapa 6 de 6: 6. Tela de aprovação aparece
tarde demais para as etapas 3 e 4
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
Line jumping (furar a fila: agir antes da sua vez, como quem entra pela porta dos fundos) é a técnica descrita pela Trail of Bits em 21/04/2025. Ao conectar, o cliente pede a lista de ferramentas e insere as descrições recebidas no contexto do modelo. Esse texto é escrito pelo servidor e vira vetor de injeção, capaz de manipular o modelo sem que o servidor seja chamado. A consequência de política é a frase mais importante desta parte do curso: aprovar apenas ferramenta sensível não protege, porque a aprovação acontece depois do dano.
O segundo padrão mede o tamanho do primeiro
Se a descrição de uma ferramenta influencia o modelo, a pergunta seguinte é quanto. O benchmark MCPTox (bateria de testes padronizada, como o crash test de carro) usou 45 servidores reais e 353 ferramentas autênticas, gerando 1.312 casos maliciosos avaliados em vinte configurações de agente. O ataque teve sucesso em 72,8% dos casos na configuração mais suscetível, e a maior taxa de recusa ficou abaixo de 3%.
O achado que muda a conversa comercial vem em seguida. Modelos mais capazes se mostraram mais suscetíveis, porque o ataque explora justamente a capacidade de seguir instrução. Cai o argumento de venda mais comum da categoria, a promessa de mais segurança pela troca por um modelo mais forte. A defesa migra para fora do modelo: revisão dos metadados declarados e política de execução imposta no host.
MCPTox: o que a medição encontrou
45
servidores reais e ativos usados como base do benchmark
353
ferramentas autênticas, com 1.312 casos maliciosos gerados
72,8%
taxa de sucesso do ataque na configuração de agente mais suscetível
abaixo de 3%
maior taxa de recusa observada entre os agentes avaliados
o alinhamento do modelo não segura esse ataque sozinho
Fonte: MCPTox, arXiv:2508.14925, preprint de 19/08/2025.
Picotar o pedido derruba a recusa
Em julho de 2026, o ASSET Research Group divulgou a técnica GhostSplice. O servidor malicioso divide um pedido proibido em pedaços inofensivos e espalha cada pedaço por um canal em que o agente já confia: a descrição da ferramenta, o resultado dela e a mensagem de amostragem. O modelo recebe uma tarefa de rotina, como preencher um formulário de auditoria, e monta sozinho o roubo de credenciais.
Nos onze modelos testados por interface de programação, a obediência média subiu de 42% com o pedido inteiro para 82% com o pedido dividido em dois. Três modelos que recusavam sempre passaram a obedecer em todas as tentativas. A leitura para o comitê repete a do MCPTox: filtro de palavra perigosa e treino de recusa do modelo cobrem pouco, e o controle precisa morar em quem decide o que o agente pode ler e enviar.
Duas respostas à mesma pergunta do comitê sobre envenenamento de metadados
Tratar a escolha do modelo como controle de segurança
Não sustenta
- Aceitar a promessa de que o modelo mais capaz recusa a instrução maliciosa
- Registrar em ata que o risco está coberto porque o fornecedor de modelo é o líder de mercado
- Medir segurança de agente pela avaliação de qualidade do modelo
- Deixar a descrição de ferramenta fora do escopo da revisão de segurança
- Concluir que a troca de fornecedor de modelo resolve o achado do pentest
Colocar o controle onde o ataque não alcança
Sustenta
- Revisar o texto declarado por cada servidor antes de liberar a conexão
- Fixar versão do servidor e comparar a definição viva com a aprovada a cada conexão
- Impor política de execução no host, com o comando visível e alguém da casa aprovando
- Tratar a conexão como o evento que exige autorização, e registrar quem autorizou
- Exigir do fornecedor o critério que ele aplica ao texto das próprias descrições
Rug pull, ou aprovar hoje o que o servidor vai virar amanhã
Rug pull (puxar o tapete: trocar o conteúdo depois de ganhar a confiança) é alterar a definição ou o comportamento de uma ferramenta depois da aprovação. Funciona porque a maioria dos clientes valida a definição na instalação e nunca mais realerta. A versão auditada pelo comitê e a versão em execução seis semanas depois podem ser objetos diferentes sem aviso a ninguém.
Esse padrão saiu do papel em agosto de 2026. A Pillar Security relatou em 12/08/2026 a campanha Deadbugz: um servidor chamado productivity-suite, oferecido em 23 propostas de alteração de código enviadas a projetos públicos sem relação entre si, em 74 minutos no dia 10/08/2026. Nenhuma foi incorporada pelo mecanismo normal de aceite, e 19 já estavam fechadas na apuração.
Deadbugz: como o servidor ganhou a confiança antes de trocar o texto
- 10/08/2026Concluído
Distribuição em massa
Uma única conta envia 23 propostas de alteração de código a projetos públicos em 74 minutos, todas acrescentando o servidor productivity-suite à configuração.
- Chamadas 1 a 3Concluído
Comportamento exemplar
O servidor formata e resume texto como prometido. Quem revisou a instalação viu descrições inofensivas.
- A partir da 4ª chamadaConcluído
Troca dos metadados
A lista de ferramentas e os prompts passam a mandar o agente procurar chaves SSH, credenciais AWS, histórico do terminal e configuração do Kubernetes, e esconder isso do usuário.
- 12/08/2026Agora
Divulgação pela Pillar Security
A recomendação central: tratar mudança de definição de ferramenta em servidor já aprovado como evento de segurança, com nova aprovação.
Contar chamadas em vez de mudar código foi a escolha que derrubou a revisão de instalação. O gatilho é a quarta chamada, então qualquer inspeção feita só no primeiro uso aprova um servidor limpo. A lição transversal cabe numa linha: fixar a versão e comparar a definição viva com a aprovada, a cada conexão, com bloqueio quando elas divergirem. A mitigação de referência já tinha nome desde 2025, confiança no primeiro uso com alerta em mudança.
Confused deputy em proxy OAuth, o padrão que todo gateway corporativo herda
Confused deputy (procurador confuso: o intermediário usa a própria autoridade a favor de quem não deveria) exige quatro condições que aparecem juntas com frequência incômoda. O proxy usa identificador de cliente estático junto ao servidor de autorização de terceiro. Ele aceita registro dinâmico de clientes. O terceiro grava cookie de consentimento depois da primeira autorização. E não existe consentimento por cliente antes do encaminhamento.
Com as quatro presentes, o atacante registra um cliente com endereço de retorno próprio, envia um link à vítima, o cookie suprime a tela de aprovação e o código de autorização viaja para o domínio dele. Viram item de homologação: registro dos clientes aprovados pelo usuário, endereço de retorno comparado por igualdade exata, sem curinga, e cookie de estado gravado só depois da aprovação. Todo gateway que agrega vários servidores atrás de uma credencial única cai nesse padrão por construção.
Token passthrough, o argumento que convence o jurídico antes da engenharia
Token passthrough (repasse de crachá: usar a credencial emitida para um sistema em outro) ocorre quando o servidor aceita tokens do cliente sem validar que foram emitidos para ele e os repassa adiante. O texto normativo proíbe de forma literal: servidores não devem aceitar token que não tenha sido explicitamente emitido para eles.
Dos três riscos listados, o do meio interessa a quem responde por conformidade. Sem separação de audiência, o registro de acesso do sistema de origem mostra uma origem diferente da real. Investigação de incidente fica inconclusiva e resposta a requisição regulatória fica sem lastro documental. O risco é de conformidade antes de ser técnico, e essa formulação explica à área jurídica por que ela precisa opinar sobre um detalhe de autorização.
Falsificação de requisição no lado do servidor, durante a descoberta de metadados, transforma conectar servidor externo em decisão de política de egresso (regra de por onde o tráfego sai da rede). No fluxo de autorização, o cliente busca endereços que um servidor malicioso controla, e os alvos incluem rede interna, o endpoint de metadados de nuvem em 169.254.169.254 e serviços em localhost. As mitigações normativas: exigir HTTPS, bloquear faixas privadas e reservadas, validar redirecionamentos e usar proxy de saída. Sem elas, o cliente dentro do perímetro atravessa o firewall a mando de terceiro.
Escopo excessivo, e o teste de uma linha que qualquer executivo aplica
A especificação descreve o servidor que publica todos os escopos possíveis e o cliente que pede todos de uma vez, gerando um token com permissões amplas. Os riscos são quatro: raio de explosão maior, revogação traumática, auditoria que mascara a intenção de cada operação e usuário que aceita uma lista longa sem ler.
O modelo recomendado é progressivo, com conjunto mínimo inicial e elevação incremental no momento em que a operação privilegiada é tentada, mecanismo presente desde a revisão 2025-11-25 e mantido na 2026-07-28. Na demonstração do fornecedor, peça a tela de consentimento da primeira conexão. Se ela lista dezenas de permissões antes de qualquer trabalho começar, o token guardado vale mais para um atacante do que precisaria valer.
Execução local, onde a palavra local costuma ser confundida com controle
Um servidor que roda na máquina de quem trabalha executa com os privilégios de quem o chamou. A especificação reconhece a execução arbitrária de comando como risco, exige consentimento prévio com exibição do comando completo sem truncamento e recomenda isolamento com disco e rede restritos.
Uma análise publicada em 15/04/2026 sustenta que esse comportamento decorre de escolha arquitetural presente nas implementações oficiais, e a tese é corroborada pelo texto normativo. Os números divulgados junto com ela, de 150 milhões de downloads e até 200.000 instâncias vulneráveis, ficam de fora: não têm metodologia publicada e conflitam com a medição independente de 28/04/2026, tratada em "Tirar lição dos incidentes que já aconteceram".
Oito padrões, o controle que barra e por que o controle óbvio chega tarde
| Padrão | Como o dano chega | Controle que barra | Por que o controle óbvio falha |
|---|---|---|---|
| Line jumping | Descrição de ferramenta entra no contexto do modelo já na conexão | Autorização no evento de conexão, com triagem do texto declarado | Aprovar por invocação age depois que o texto já foi lido |
| Envenenamento de metadados | Instrução escondida, inteira ou picotada entre canais, desvia o agente | Revisão dos metadados e política de execução fora do modelo | Trocar por modelo mais capaz aumenta a suscetibilidade |
| Rug pull | Definição muda depois da aprovação, sem novo alerta | Versão fixada e comparação da definição viva com a aprovada a cada conexão | Revisar só na instalação aprova o servidor antes da troca |
| Confused deputy em proxy | Cliente registrado pelo atacante colhe o código de autorização | Consentimento por cliente, endereço de retorno por igualdade exata, cookie só após aprovação | Confiar no consentimento do provedor de terceiro deixa o proxy sem tela própria |
| Token passthrough | Token emitido para um destino abre outros sistemas | Audiência restrita ao servidor, verificada em homologação | Auditar apenas o fornecedor não revela o que o log da origem deixou de registrar |
| Falsificação de requisição na descoberta | Cliente interno busca endereço escolhido pelo servidor externo | HTTPS obrigatório, bloqueio de faixas privadas e reservadas, proxy de saída | Aprovação de fornecedor não decide por onde o tráfego sai |
| Escopo excessivo | Primeira conexão pede o catálogo inteiro de permissões | Escopo mínimo inicial com elevação incremental na operação privilegiada | Ler a política do fornecedor não mostra o que a tela realmente pede |
| Execução local | Servidor roda com o privilégio de quem o chamou | Consentimento com o comando completo visível e isolamento de disco e rede | Chamar de local não restringe nada em si |
A coluna da direita existe para a conversa de comitê: em sete dos oito casos o controle intuitivo age em um momento posterior ao do dano.
Se a figura ultrapassar a área visível, deslize para os lados. Pelo teclado, foque a figura e use as setas.
Verificação rápida
A política aprovada pelo comitê exige autorização humana antes de qualquer ferramenta marcada como sensível. Qual dos padrões abaixo continua passando por essa política sem tocá-la?
Endurecer os servidores MCP da casa em quatro semanas
Seis passos, cada um com dono e critério de conferência. O conjunto cobre os oito padrões deste capítulo sem compra nova, usando a gestão de frota que a TI já opera.
Passo 1: Fixar a versão de cada servidor aprovado
Dono: responsável pela plataforma de TI, na primeira semana. Cada servidor entra no catálogo interno com versão exata e com a cópia da definição de ferramentas aprovada.
Deu certo quando: Nenhuma configuração da frota aponta para versão flutuante do tipo "a mais recente".
Erro comum: Aprovar pelo nome do servidor. Nome é rótulo escolhido pelo usuário e não prende versão nenhuma.
Passo 2: Comparar a definição viva com a aprovada a cada conexão
Dono: segurança da informação, até a segunda semana. O cliente ou o gateway guarda a impressão digital da definição aprovada e bloqueia a conexão quando ela muda.
Deu certo quando: Um teste com definição alterada de propósito gera bloqueio e alerta no mesmo dia.
Erro comum: Verificar só na instalação. A campanha Deadbugz esperou três chamadas para trocar o texto.
Passo 3: Publicar a lista de origens permitidas
Dono: segurança da informação, na segunda semana. A política de frota libera servidores por comando de execução ou por endereço, e bloqueia o restante.
Deu certo quando: Tentativa de ligar servidor fora da lista falha numa estação de teste.
Erro comum: Aceitar servidor sugerido por proposta de alteração de código de terceiro sem passar pela lista.
Passo 4: Pôr aprovação humana em ferramenta que toca arquivo ou rede
Dono: gestor de cada área usuária, na terceira semana. Ferramenta que lê disco, envia dado para fora ou executa comando pede confirmação com o comando completo visível.
Deu certo quando: A amostra de dez chamadas sensíveis da semana mostra dez confirmações registradas com nome e horário.
Erro comum: Confiar na anotação "somente leitura" declarada pelo próprio servidor, que a especificação manda tratar como não confiável.
Passo 5: Separar servidor de leitura de servidor de escrita
Dono: arquitetura de sistemas, até a quarta semana. Consulta a estoque e pedido de compra ficam em servidores distintos, com credenciais distintas.
Deu certo quando: A credencial do servidor de leitura recebe recusa ao tentar gravar no ERP.
Erro comum: Um servidor único com escopo amplo, que transforma qualquer injeção em escrita.
Passo 6: Fechar a saída de rede e registrar a conexão
Dono: infraestrutura de rede, na quarta semana. Clientes saem por proxy com faixas privadas e reservadas bloqueadas, e cada nova conexão a servidor fica registrada com quem autorizou.
Deu certo quando: Pedido ao endereço 169.254.169.254 a partir de um cliente de agente é recusado e aparece no registro.
Erro comum: Tratar a política de egresso como assunto só da rede, sem incluir os clientes de agente.
No fim você tem: Ao fim de quatro semanas, cada servidor em uso tem versão fixada, definição comparada a cada conexão, origem na lista permitida e credencial separada por leitura e escrita.
Recolhido para o time técnico: o que pedir por escrito antes de liberar a conexão
Como o time verifica se o token emitido tem audiência restrita?
Desde a revisão 2025-06-18, clientes são obrigados a implementar Resource Indicators conforme a RFC 8707, e o servidor é classificado como Resource Server de OAuth. A revisão 2026-07-28 acrescentou a validação obrigatória do emissor do token. A verificação prática é decodificar o token emitido para o servidor e conferir o campo de audiência. Se ele aceita um token emitido para outro destino, o antipadrão de passthrough está presente.
Qual é a diferença operacional entre alertar na instalação e alertar na mudança?
Alertar na instalação valida a definição uma vez e guarda um hash. Alertar na mudança compara o hash a cada conexão e interrompe o fluxo quando a definição de qualquer ferramenta muda. A segunda forma barra rug pull, inclusive a variante que espera algumas chamadas antes de trocar o texto. Pergunte ao fornecedor de cliente se ele compara hashes por conexão ou apenas na primeira instalação.
Onde entra o bloqueio de faixas de rede?
Na descoberta de metadados de autorização. A especificação recomenda exigir HTTPS, bloquear faixas privadas e reservadas conforme a RFC 9728 seção 7.7, validar destinos de redirecionamento e usar proxy de saída. Isso vira regra na borda, mantida pela mesma equipe que já opera a política de egresso, e não uma configuração dentro do agente.
A política de restrição por nome de servidor resolve?
A documentação de gestão corporativa de um dos clientes mais usados avisa em texto próprio que entrada por nome de servidor não constitui controle de segurança, porque o nome é rótulo atribuído pelo usuário. A imposição precisa ser por comando de execução ou por endereço do servidor. Esse é o erro mais caro de política escrita nesta categoria.
O que mudou com o protocolo sem sessão desde 28/07/2026?
A revisão 2026-07-28 tirou o aperto de mão inicial e o cabeçalho de sessão; cada pedido carrega versão e capacidades, e o servidor se apresenta pelo método obrigatório server/discover. A classe de sequestro de sessão perde o alvo principal, e a autorização do chamador passa a ser validada a cada pedido. A página de boas práticas de segurança continua tratando o tema para implementações que ainda guardam estado.
// Política de frota implantada por MDM, GPO ou Intune.
// A ordem de avaliação é fixa: as listas de todas as fontes se fundem,
// a lista de bloqueio é checada primeiro e nada a sobrepõe.
// Imposição real usa serverCommand ou serverUrl. Nome de servidor é rótulo.
{
"allowManagedMcpServersOnly": true,
"allowedMcpServers": [
{ "serverUrl": "https://mcp.fornecedor-erp.example/v1" },
{ "serverCommand": "/opt/corp/mcp/estoque-readonly" }
],
"deniedMcpServers": [
{ "serverCommand": "npx" },
{ "serverUrl": "https://*.gratuito-sem-contrato.example/*" }
]
}Perguntas de aprovação de conexão, aplicadas antes de o servidor entrar no ambiente
Antes de conectar
0/3Autorização e credencial
0/3Rede e execução
0/3Prova de que o controle existe
0/3Anexe a lista de doze perguntas ao próximo pedido de aprovação de servidor e recuse o pedido que chegar com menos de doze respostas objetivas. Nesta semana, peça ao time técnico a relação de servidores em uso com a versão fixada de cada um; qualquer linha sem versão entra no primeiro passo do guia acima. O capítulo seguinte, "Tirar lição dos incidentes que já aconteceram", mostra quais desses padrões já custaram caro a alguém.
Seu caderno neste capítulo
Abrir o caderno completoSelecione um trecho do capítulo para destacar ou anotar. Nos vídeos e áudios, use Anotar este momento. No teclado, selecione com Shift e as setas e use Alt+Shift+D para destacar ou Alt+Shift+N para anotar.
Salvo neste navegador. Entre na sua conta para levar o caderno a outros aparelhos.
Entre na sua conta para compartilhar o que aprendeu e convidar alguém para estudar com você.
Conexões deste capítulo
Veja o que estudar antes e para onde seguir depois, explore os conceitos e compare abordagens em outros cursos. Sugestões marcadas como “sugerido pelo grafo” vêm dos assuntos em comum, não do índice do curso.
Depois, siga para
- CursoMCP com Chrome: Automação com IAsugerido pelo grafo7 capítulos de “MCP com Chrome: Automação com IA” usam conceitos apresentados em “MCP para quem decide”.
- CursoClaude Code CLI: Programação com IAsugerido pelo grafo7 capítulos de “Claude Code CLI: Programação com IA” usam conceitos apresentados em “MCP para quem decide”.
- CursoDo Agile ao Agentic Operating Modelsugerido pelo grafo4 capítulos de “Do Agile ao Agentic Operating Model” usam conceitos apresentados em “MCP para quem decide”.
- CursoSegundo cérebro com IAsugerido pelo grafo3 capítulos de “Segundo cérebro com IA” usam conceitos apresentados em “MCP para quem decide”.
Conceitos deste capítulo
O mesmo assunto em outros cursos
- MCP com Chrome: Automação com IABarrar o ataque que chega pela ferramenta que você instalouExaminar conexões de Barrar o ataque que chega pela ferramenta que você instalou
- Software e IA para executivosConferir quem publicou cada plugue que liga o agente aos sistemasExaminar conexões de Conferir quem publicou cada plugue que liga o agente aos sistemas
- Prompt Engineering para ExecutivosConter a injeção de prompt com camadas fora do modeloExaminar conexões de Conter a injeção de prompt com camadas fora do modelo
- RAG em produçãoO documento que dá ordens ao seu sistemaExaminar conexões de O documento que dá ordens ao seu sistema
Voltar ao capítulo anterior: Calcular o que a infraestrutura obriga a manter ligado
Leve uma ideia para a prática
Escolha uma atividade no painel e volte a este curso quando quiser.
Atividades e evolução ficam reunidas no painel da sua conta.
Capítulos vizinhos em MCP para quem decide
- 05Ler a data de validade de cada recurso
- 06Calcular o que a infraestrutura obriga a manter ligado
- 07Reconhecer os ataques próprios deste protocolo
- 08Tirar lição dos incidentes que já aconteceram
- 09Separar o que o padrão faz do que vendem