Índice

Título
Título
Índice
Índice
Índice
Título
Título
Título

Filosofia

O Protocolo de Contexto do Modelo (MCP): arquitetura, riscos de segurança e melhores práticas

capa-protocolo-contexto-modelo-mcp-seguranca (https://unsplash.com/photos/a-picture-of-a-red-and-orange-background-KaCZHQ7fEyQ)
capa-protocolo-contexto-modelo-mcp-seguranca (https://unsplash.com/photos/a-picture-of-a-red-and-orange-background-KaCZHQ7fEyQ)
capa-protocolo-contexto-modelo-mcp-seguranca (https://unsplash.com/photos/a-picture-of-a-red-and-orange-background-KaCZHQ7fEyQ)
capa-protocolo-contexto-modelo-mcp-seguranca (https://unsplash.com/photos/a-picture-of-a-red-and-orange-background-KaCZHQ7fEyQ)
Felipe Ruiz

Redator e editor de conteúdo

Atualizado

14 de nov. de 2025

9 min

O Protocolo de Contexto do Modelo (MCP) está rapidamente se tornando um elemento fundamental na arquitetura de sistemas de IA avançados, especialmente para aplicações de IA agentivas que precisam acessar fontes de dados externas, ferramentas e fluxos de trabalho de forma dinâmica. Desenvolvido e publicado como código aberto no final de 2024 pela Anthropic, o objetivo do MCP é resolver o problema do isolamento da IA fornecendo um padrão universal e aberto que conecta grandes modelos de linguagem (LLMs) aos principais sistemas de negócios e desenvolvimento onde os dados relevantes residem.

No entanto, esta potente camada de abstração também introduz novos riscos de segurança significativos ao criar vias dinâmicas entre os agentes de IA e a infraestrutura de TI central. Portanto, proteger o MCP é crucial para organizações que buscam aproveitar o poder da automação impulsionada pela IA.

Compreendendo o MCP

O MCP é um padrão de código aberto que facilita a comunicação segura e bidirecional entre aplicações de IA (os clientes) e sistemas externos (os servidores). Sua função é similar à de um conector universal ou uma "porta USB-C para IA", substituindo a necessidade de integrações rígidas e personalizadas para cada nova fonte de dados ou ferramenta.

Da fragmentação à padronização

Antes do MCP, conectar um LLM a sistemas díspares (p. ex., um repositório do Google Drive, um canal do Slack ou um banco de dados PostgreSQL) exigia a criação de integrações de API separadas e ad hoc para cada um. Essa abordagem fragmentada dificultava a escalabilidade e a manutenção. O MCP aborda esse desafio fornecendo uma especificação unificada, permitindo que os desenvolvedores construam sobre um protocolo único e padronizado. Essa padronização reduz dramaticamente as barreiras de integração, permitindo que modelos de IA mantenham contexto enriquecido ao longo de múltiplas interações e realizem ações conscientes do contexto em favor do usuário.

Arquitetura central: modelo cliente-servidor

O MCP se rege por uma arquitetura cliente-servidor simples e clara:

diagrama mpc pt
Diagrama da arquitetura do MCP ilustrando três fluxos diferentes.
  • Host MCP: Esta é a aplicação ou ambiente com o qual o usuário interage (p. ex., um IDE alimentado por IA, um chatbot empresarial personalizado ou um aplicativo de desktop como Claude Desktop). O host (anfitrião) gerencia a experiência do usuário e executa o modelo de IA.

  • Cliente MCP: Este é um componente instanciado pela aplicação host que gere a conexão dedicada e a comunicação um a um com um servidor MCP. Ele atua como o intermediário que traduz a intenção da IA em solicitações a nível de protocolo para o servidor e retransmite os resultados de volta.

  • Servidor MCP: Este é um serviço externo—geralmente um processo local ou uma API remota—que expõe capacidades específicas (ferramentas, recursos e prompts) para a aplicação de IA através do protocolo MCP. Os servidores podem ser construídos para se conectar a sistemas de arquivos e bases de dados, assim como serviços na nuvem e plataformas de controle de versões como GitHub e GitLab, entre outras coisas.

As três primitivas: ferramentas, recursos e prompts

O núcleo do MCP é a camada de dados, definida por três primitivas fundamentais que os servidores MCP podem expor para os clientes:

Primitiva

Descrição

Mecanismo de controle

Exemplos de funcionalidade

Ferramentas

Funções executáveis que a aplicação de IA pode invocar para realizar ações com entradas e saídas definidas.

Controlado pelo modelo (a IA decide quando e como invocá-las com base na solicitação do usuário).

Buscar voos; enviar mensagens; modificar um arquivo; executar uma consulta em um banco de dados.

Recursos

Fontes de dados passivas que fornecem informações contextuais somente para leitura.

Controlado pela aplicação (o cliente decide quais informações recuperar e como apresentá-las como contexto para o modelo).

Recuperar conteúdo de documentos; acessar esquemas de bases de dados; ler documentação de API; obter entradas de calendário.

Prompts

Templates estruturados e reutilizáveis que orientam ou estruturam interações com o LLM. Podem fazer referência a ferramentas e recursos disponíveis.

Controlado pelo usuário (exige invocação explícita, muitas vezes através de comandos de barra inclinada ou botões dedicados).

Template "/deliver-vulnerability-report"; prompt de sistema "Resuma minhas reuniões".

Riscos de segurança do MCP

A capacidade de integração que torna o MCP tão poderoso também é sua principal preocupação de segurança. Ao criar caminhos diretos e dinâmicos entre modelos de IA (o novo plano de controle) e sistemas empresariais sensíveis, o MCP elimina efetivamente as fronteiras de segurança tradicionais que dependem do isolamento de sistemas. Um único servidor MCP comprometido pode levar a uma violação de múltiplos sistemas de alto valor.

Riscos de cadeia de suprimentos e integridade

Devido a que qualquer pessoa pode desenvolver e distribuir servidores MCP, e muitos operam com privilégios elevados, eles se tornam alvos de alto valor para ataques à cadeia de suprimentos.

  • Servidores maliciosos ou envenenados: Os atacantes podem distribuir servidores falsos através de repositórios públicos, como GitHub ou PyPI, com nomes que são enganosamente semelhantes aos legítimos (ou seja, colisão de nomes ou typosquatting). Uma vez instalados, estes servidores podem conter backdoors, exfiltrar dados ou executar código arbitrário com os mesmos privilégios que o usuário ou a aplicação anfitriã (host).

  • Suplantamento do instalador/código: A instalação de um servidor MCP local muitas vezes implica a execução de scripts, o que representa uma oportunidade para que os atacantes injetem malware ou instaladores manipulados.

  • Dependências não verificadas: Os servidores MCP são essencialmente pacotes de software que dependem de bibliotecas upstream. Um comprometimento em uma dessas dependências pode introduzir vulnerabilidades na base de código do servidor (injecção de código ou backdoors).

Falhas de autorização e autenticação

O MCP utiliza as convenções de OAuth para a autorização, mas os erros de implementação podem levar a vulnerabilidades críticas de identidade e acesso.

  • Ataques de confusão de deputado (sequestro de tokens): Esta é uma vulnerabilidade de fluxo de OAuth específica que afeta servidores proxy do MCP (servidores que atuam como um gateway para uma API de terceiros). Um atacante pode explorar a combinação de IDs de cliente estáticos e registro de cliente dinâmico para enganar um usuário a conceder um código de autorização que é então redirecionado para o servidor do atacante, o que permite roubar tokens de acesso e suplantar o usuário.

  • Token passthrough (anti-padrão): Esta é uma prática explicitamente proibida em que um servidor MCP aceita e passa um token de acesso do cliente MCP diretamente para a API downstream sem validar se o token foi emitido especificamente para o servidor MCP. Isto elude controles de segurança essenciais, como a limitação de taxa e a validação da audiência, e dificulta a auditoria.

  • Escopos excessivamente privilegiados e vazamento de credenciais: Os servidores MCP frequentemente solicitam alcances de permissão amplos (p. ex., acesso completo de leitura/escrita ao Gmail e Google Drive) por conveniência. Essa centralização de múltiplos tokens altamente sensíveis (p. ex., chaves API, tokens OAuth) implica que um compromisso de um único servidor pode resultar em um enorme raio de explosão através do ecossistema conectado e na fuga de informações confidenciais.

Manipulação de ferramentas e agentes

Estes ataques aproveitam a dependência da IA nas primitivas (ferramentas, recursos e prompts) para alcançar fins maliciosos, muitas vezes ao explorar a lógica interna do agente.

  • Injeção de prompts e envenenamento de ferramenta: Instruções maliciosas podem ser ocultadas na entrada do usuário, na descrição/docstring da ferramenta ou no conteúdo de um recurso. O LLM então interpreta esses comandos ocultos como instruções legítimas, levando-o a realizar ações não autorizadas, tais como:

    • Exfiltrar dados sensíveis (p. ex., enviar chaves SSH através de uma ferramenta legítima "send_email")

    • Modificar registros de bases de dados

    • Escrever código inseguro

  • Vazamento de contexto: Como o agente de IA compartilha partes da conversa, estado e dados de recursos com ferramentas conectadas para manter o contexto, um servidor não confiável ou malicioso poderia acessar informação sensível destinada a outra ferramenta ou somente ao usuário.

  • Ataques de sombreamento entre servidores: Em um ambiente com múltiplos servidores MCP conectados, um servidor malicioso pode registrar ferramentas com nomes que são idênticos ou muito similares aos de ferramentas em um servidor legítimo e confiável (p. ex., dois comandos "delete" diferentes). O modelo de IA pode invocar erroneamente a ferramenta maliciosa, resultando em ações não autorizadas e até perda de dados.

Riscos de execução local e isolamento (servidores MCP locais)

Os servidores MCP locais, os quais se executam na máquina do usuário (frequentemente com os mesmos privilégios que o usuário ou a aplicação cliente), introduzem riscos significativos a nível de sistema.

  • Execução de código arbitrário e escape de sandbox: Se um atacante pode injetar instruções maliciosas no comando de um servidor local, ele poderá executar qualquer comando na máquina host. Se o servidor não estiver devidamente isolado (sandboxed; p. ex., em um contêiner ou um entorno restringido), um comprometimento exitoso pode conduzir a um escape do sandbox e a um movimento lateral através da máquina anfitriã e até mesmo da rede interna.

  • DNS rebinding: Um atacante pode acessar um servidor local inseguro rodando em "localhost" através de JavaScript comprometido, levando à exfiltração de dados ou ações não autorizadas.

Melhores práticas de segurança para o MCP

Proteger o MCP requer uma mudança das defesas tradicionais centradas na rede para uma abordagem de controle centrada em identidade e consciente do contexto. As seguintes melhores práticas, extraídas dos padrões da comunidade e das pesquisas de segurança, são cruciais para mitigar os riscos do MCP.

Verificação de servidores e segurança da cadeia de suprimentos

Trate cada servidor MCP e suas dependências como software privilegiado que pode acessar seus sistemas mais críticos.

  • Estabelecer um registro de confiança: Mantenha um inventário interno de servidores MCP aprovados e suas versões verificadas. Permita instalação apenas a partir desta lista pré-aprovada.

  • Verificação e checagem de segurança: Implemente revisões rigorosas de segurança, análise estática (SAST) e análise de composição de software (SCA) para todo o código dos servidores e suas dependências antes do deployment.

  • Verificação criptográfica: Exija o uso de pacotes assinados e checagens de integridade (checksums/assinaturas) para garantir que o código que está sendo executado é a versão oficial e não adulterada.

  • Fixar versões: Configure os clientes MCP para fixar as versões das ferramentas e evitar mudanças inesperadas no comportamento ou regressões de segurança derivadas de atualizações automáticas. Rastreie o servidor upstream para patches e verifique-os antes da implantação.

Autenticação e princípio de mínimo privilégio

Imponha controles rigorosos sobre quem pode se conectar a um servidor e quais ações o modelo pode realizar em seu nome.

  • Escopo rigoroso de tokens: Faça cumprir o princípio de mínimo privilégio para todas as chaves API e tokens OAuth utilizados pelos servidores MCP. Emita tokens de curta duração e com alcance mínimo. Cada servidor deve ter somente as permissões necessárias para sua funcionalidade pretendida (p. ex., um servidor de leitura de arquivos não deve ter permissões de escrita no banco de dados).

  • Proibir o passthrough de tokens: Seus servidores MCP não devem aceitar ou passar tokens que não foram explicitamente emitidos para seus próprios serviços (validando a audiência do token).

  • Mitigar ataques de confusão de deputado: Seus servidores proxy MCP devem implementar consentimento por cliente e controles de segurança adequados:

    • Manter um registro dos valores "client_id" aprovados por usuário

    • Implementar proteção CSRF (cross-site request forgery) na página de consentimento a nível de MCP

    • Prevenir clickjacking desautorizando iframing

  • Evitar autenticação baseada em sessões: Seus servidores MCP não devem usar IDs de sessão para autenticação. Todas as solicitações entrantes que implementem autorização devem ser verificadas contra um token válido e vinculado ao usuário.

Validação de entradas e guardrails de ferramentas

Implemente barreiras sólidas para prevenir a manipulação do modelo e proteger o sistema host.

  • Validar rigorosamente entradas: Todos os parâmetros passados para as ferramentas MCP devem ser validados contra seu esquema (caracteres permitidos, longitude, formato). Se uma ferramenta executa comandos do sistema, utilize APIs seguras ou comandos parametrizados em lugar da concatenação de shell para evitar injecções de comandos.

  • Sanitizar saídas e descrições: Saneie as descrições e saídas das ferramentas antes de passá-las de novo ao contexto do LLM. Remova ou codifique qualquer marcação ou caracteres complexos que o agente de IA possa interpretar como instruções maliciosas.

  • Isolar o contexto: Implemente o isolamento de contexto para que cada servidor/ferramenta só receba a mínima informação necessária para sua operação, evitando que os dados sensíveis se filtrem a um componente não confiável.

  • Human-in-the-loop (consentimento): Requeira confirmação explícita do usuário para qualquer ação de alto risco ou destrutiva (p. ex., executar um comando, modificar dados ou enviar uma comunicação externa). A interface de usuário do cliente deveria mostrar claramente a ferramenta, a ação e os parâmetros antes de solicitar a aprovação.

Segurança ambiental e operacional

Assegure que a infraestrutura que executa seus componentes MCP esteja endurecida e monitorada.

  • Sandboxing e isolamento: Execute todos os seus servidores MCP locais e suas ferramentas em um entorno isolado (sandboxed) com privilégios mínimos por padrão. Utilize contêineres, chroot ou sandboxes a nível do sistema operacional para conter qualquer dano em caso de compromisso.

  • Usar mTLS para a segurança do transporte: Implemente TLS mútuo (mTLS) para todas as comunicações entre o cliente e o servidor MCP (se executando remotamente) para assegurar que ambas as partes estejam autenticadas e que o tráfego esteja cifrado, prevenindo espionagem ou suplantamento.

  • Política de "falhar fechado": Se um servidor MCP ou uma dependência necessária, como um serviço de identidade, deixa de estar disponível, o sistema deve "falhar fechado" (parar de funcionar) ao invés de "falhar aberto" (continuar operando com os controles de segurança desativados).

  • Registro e monitoramento abrangentes: Habilite o registro detalhado de cada interação com seu MCP—qual ferramenta foi invocada, por quem, com quais parâmetros e qual foi o resultado. Integre estes registros com um sistema SIEM (gestão de eventos e informação de segurança) para identificar padrões suspeitos, como múltiplas tentativas falhadas de selecionar ferramentas ou recuperação excessiva de dados.

Exemplo de implementação do MCP na Fluid Attacks

Na Fluid Attacks, o Protocolo de Contexto do Modelo é fundamental para o componente Interacts, que funciona como um potente agente de IA oferecido aos clientes para gestão de vulnerabilidades e análise de segurança. O Interacts é um servidor MCP construído usando Pydantic AI (um framework que enfatiza a entrada/saída previsível e validada) para fornecer acesso seguro e estruturado a dados dentro da plataforma Fluid Attacks.

Visão geral da arquitetura

O diagrama de arquitetura fornecido ilustra como a Fluid Attacks aproveita o MCP para integrar capacidades de IA de forma segura:

Fluid Attacks Interacts
  1. Solicitação do cliente: Um usuário autenticado insere uma pergunta no chat do AI Agent do Cliente (componente "views").

  2. Roteamento da solicitação: A solicitação é enviada ao backend de Integrates (a plataforma de gestão de vulnerabilidades), que verifica a autenticação e encaminha a solicitação para o componente Interacts (servidor MCP) no endpoint "/streaming".

  3. Contexto e processamento de IA:

    • O Interacts consulta o Amazon ElastiCache para obter o histórico de conversações relevante e manter a continuidade.

    • A pergunta é enviada para avaliação a um componente Bedrock (Input Evaluator) e depois a outro (Agent LLM), que gera a resposta de IA com base na pergunta do usuário e no histórico da conversações.

  4. Segurança e registro: A resposta passa novamente pelos Guardrails para validação final. Os rastros da conversação são enviados a LangSmith para monitoramento e depuração. Qualquer erro é registrado no BugSnag.

  5. Entrega da resposta: A resposta validada é enviada de volta do Interacts para o Integrates e finalmente exibida ao usuário via o Cliente (views).

  6. Atualização do histórico: O histórico de conversações atualizado é voltado a armazenar no Amazon ElastiCache.

Características chave de segurança e capacidade

O servidor MCP da Fluid Attacks está desenhado com segurança e um alcance mínimo em mente:

Característica

Descrição e implicações de segurança

Pydantic AI

Utiliza um framework de agentes baseado em Python e seguro em quanto a tipos (type-safe), que promove entradas e saídas previsíveis e validadas, o que ajuda a reduzir o risco de comportamentos inesperados ou falhas de injeção relacionadas com os tipos de dados.

Uso de Guardrails do Amazon Bedrock

Uma defesa de múltiplas camadas que avalia de forma proativa as entradas dos usuários e as saídas do modelo em busca de conteúdo não seguro, ataques de prompts e infrações de políticas, proporcionando uma verificação crucial antes da invocação de ferramentas.

Token de API necessário

Todas as interações requerem um token API válido, o que impõe uma autenticação sólida e vincula as ações do agente de IA a uma identidade de usuário autenticada específica.

Capacidades somente de leitura

O servidor tem somente capacidades de leitura (p. ex., recuperar dados de vulnerabilidades, organizações e análises) e não pode modificar nem criar nada na plataforma. Isto aplica o princípio de mínimo privilégio e limita drasticamente o rádio de ação de qualquer compromisso.

Funções suportadas

As ferramentas se limitam estritamente a funções básicas como gestão de vulnerabilidades (obtenção e análise), informação sobre a organização, análises e integração de GraphQL (execução de consultas).

Ao implementar essas medidas de segurança, além de testar continuamente todo seu software com SAST, SCA, revisão de código seguro e outras técnicas de teste de segurança, a Fluid Attacks minimiza os riscos inerentes ao framework MCP enquanto maximiza a utilidade de um assistente de IA ágil para o benefício de seus clientes.

Conclusão

O Protocolo de Contexto do Modelo representa uma evolução pivotal na IA, transformando LLMs isolados em agentes dinâmicos e conscientes do contexto, capazes de operar em ambientes empresariais complexos. Embora esta transição acelere a automação e a eficiência dos fluxos de trabalho, ela simultaneamente eleva a necessidade de um modelo de segurança proativo e centrado na identidade que vá além das defesas de perímetro tradicionais. Adotar as melhores práticas recomendadas, desde a estrita verificação da cadeia de suprimentos até os controles human-in-the-loop, é primordial para assegurar o plano de controle da IA agêntica e aproveitar de maneira segura todo o potencial do MCP.

Se você precisa de ajuda com avaliação de segurança e mitigação de riscos em seus entornos e produtos potencializados por IA, não duvide em entrar em contato conosco.

Comece agora com a solução de segurança de IA da Fluid Attacks

Tags:

cibersegurança

machine-learning

risco

software

nuvem

Assine nossa newsletter

Mantenha-se atualizado sobre nossos próximos eventos e os últimos posts do blog, advisories e outros recursos interessantes.

Comece seu teste gratuito de 21 dias

Descubra os benefícios de nossa solução de Hacking Contínuo, da qual empresas de todos os tamanhos já desfrutam.

Comece seu teste gratuito de 21 dias

Descubra os benefícios de nossa solução de Hacking Contínuo, da qual empresas de todos os tamanhos já desfrutam.

Comece seu teste gratuito de 21 dias

Descubra os benefícios de nossa solução de Hacking Contínuo, da qual empresas de todos os tamanhos já desfrutam.

Comece seu teste gratuito de 21 dias

Descubra os benefícios de nossa solução de Hacking Contínuo, da qual empresas de todos os tamanhos já desfrutam.

As soluções da Fluid Attacks permitem que as organizações identifiquem, priorizem e corrijam vulnerabilidades em seus softwares ao longo do SDLC. Com o apoio de IA, ferramentas automatizadas e pentesters, a Fluid Attacks acelera a mitigação da exposição ao risco das empresas e fortalece sua postura de cibersegurança.

Consulta IA sobre Fluid Attacks

Assine nossa newsletter

Mantenha-se atualizado sobre nossos próximos eventos e os últimos posts do blog, advisories e outros recursos interessantes.

As soluções da Fluid Attacks permitem que as organizações identifiquem, priorizem e corrijam vulnerabilidades em seus softwares ao longo do SDLC. Com o apoio de IA, ferramentas automatizadas e pentesters, a Fluid Attacks acelera a mitigação da exposição ao risco das empresas e fortalece sua postura de cibersegurança.

Assine nossa newsletter

Mantenha-se atualizado sobre nossos próximos eventos e os últimos posts do blog, advisories e outros recursos interessantes.

Mantenha-se atualizado sobre nossos próximos eventos e os últimos posts do blog, advisories e outros recursos interessantes.

As soluções da Fluid Attacks permitem que as organizações identifiquem, priorizem e corrijam vulnerabilidades em seus softwares ao longo do SDLC. Com o apoio de IA, ferramentas automatizadas e pentesters, a Fluid Attacks acelera a mitigação da exposição ao risco das empresas e fortalece sua postura de cibersegurança.

Assine nossa newsletter

Mantenha-se atualizado sobre nossos próximos eventos e os últimos posts do blog, advisories e outros recursos interessantes.

Mantenha-se atualizado sobre nossos próximos eventos e os últimos posts do blog, advisories e outros recursos interessantes.