O Model Context Protocol (MCP), desenvolvido pela Anthropic, é um protocolo avançado que define como conectar Large Language Models (LLMs) a ferramentas externas. Ele ganhou destaque rapidamente por ser fácil de usar e por trazer benefícios ao uso da IA. Neste artigo, abordaremos alguns dos possíveis riscos de segurança relacionados ao MCP e como mitigá-los.

Como o MCP funciona

O MCP não conecta LLMs diretamente a ferramentas. O cliente MCP acessa o LLM, e o servidor MCP acessa as ferramentas. Um cliente MCP tem acesso a um ou mais servidores MCP. Os usuários podem conectar vários servidores a um único cliente MCP.

MCP works

Veja como ocorre uma troca típica entre o cliente e o servidor MCP:

  1. O usuário solicita uma tarefa ao cliente MCP.
    1. O cliente MCP possui informações sobre quais ferramentas cada servidor MCP implementa ou tem acesso.
  2. O cliente MCP envia a solicitação do usuário com as informações dos servidores MCP para um LLM, que responde indicando a ferramenta apropriada e os parâmetros a serem usados.
  3. O cliente MCP envia as informações sobre as ferramentas e os parâmetros para o servidor MCP.
  4. Após concluir a tarefa, o servidor MCP envia a resposta ao cliente MCP, que a encaminha ao LLM. Em seguida, o LLM gera a resposta final para o usuário.
  5. O cliente MCP exibe a resposta para o usuário.
MCP client

É possível executar os servidores MCP tanto local quanto remotamente, e os riscos de segurança mudam conforme o modo de execução.

Chamamos de "servidores MCP locais" aqueles executados em um host sob nosso controle. Os servidores MCP locais realizam normalmente as tarefas solicitadas executando comandos do sistema operacional ou códigos personalizados localmente.

Chamamos de "servidores MCP remotos" aqueles que são executados somente remotamente por terceiros. Podemos acessar servidores MCP remotos, mas eles não são executados em um host sob nosso controle. Embora os servidores MCP remotos tenham acesso aos dados dos usuários e apresentem certos riscos de segurança, muitos riscos comuns são evitados, pois eles não são executados localmente.

Controles e riscos de segurança

Confira a seguir uma visão geral de alguns riscos de segurança do MCP e das medidas para mitigação recomendadas.

Autenticação e autorização

Quando um servidor MCP executa uma ação a partir de uma solicitação do usuário, existe o risco de um problema conhecido como "confused deputy". O ideal é que o servidor MCP execute a ação em nome do usuário e com a permissão dele. No entanto, isso não é garantido e depende da implementação do servidor MCP. Se não for implementado corretamente, um usuário pode acabar acessando recursos que não deveriam estar disponíveis para ele, mas que estão acessíveis ao servidor MCP, violando o Princípio do Menor Privilégio (PoLP).

O MCP usa OAuth para definir a autorização, mas a comunidade identificou que a especificação atual inclui detalhes de implementação que entram em conflito com as práticas empresariais modernas. A comunidade vem se esforçando para corrigir essa discrepância e melhorar a especificação.

Riscos da cadeia de suprimentos

Como os servidores MCP são compostos de código executável, os usuários devem usar somente os servidores em que confiam. E, ao desenvolver servidores MCP, é preciso tomar cuidado para os usuários poderem confiar no software. Para os usuários terem mais segurança quanto à integridade, os componentes do MCP devem ser assinados pelo desenvolvedor.

Além disso, os componentes do MCP devem ser desenvolvidos em pipelines que implementem práticas recomendadas de segurança, como testes de segurança de aplicações estáticas (SAST). É necessário analisar as descobertas, descartar falsos positivos e corrigir vulnerabilidades de segurança conhecidas. Os pipelines devem executar a análise de composição de software (SCA) para identificar e corrigir vulnerabilidades conhecidas nas dependências usadas pelos servidores MCP.

Se um servidor MCP for oferecido como um serviço na nuvem, ele também deve implementar verificação criptográfica para os clientes autenticarem o servidor.

Assim como em outros softwares, a invasão e alteração do código-fonte de componentes do MCP pode comprometer a segurança dos usuários. Para reduzir esse risco, os desenvolvedores e usuários de software devem verificar a integridade das dependências usadas e escaneá-las em busca de malware.

Execução de comando não autorizado

Os servidores MCP locais podem executar qualquer código. Dependendo de como o servidor MCP é implementado e de como cliente MCP envia as informações para ele, a execução de comandos pode ser vulnerável a ataques de injeção. Antes de usar dados como argumentos em funções que executam comandos, sempre verifique e faça uma limpeza adequada dos dados.

Veja a seguir um exemplo de servidor MCP vulnerável a injeção de comandos:

def dispatch_user_alert(self, notification_info: Dict[str, Any], summary_msg: str) -> bool:
"""Sends system alert to user desktop"""
notify_config = self.user_prefs["alert_settings"]

try:
     alert_title = f"{notification_info['title']} - {notification_info['severity']}"
     if sys.platform == "linux":
         subprocess.call(["notify-send", alert_title])
     return True

Fonte do código: https://equixly.com/blog/2025/03/29/mcp-server-new-security-nightmare/ 

Também é recomendável usar servidores MCP locais em um sandbox, para que eles só possam executar e acessar somente o que for permitido.

Injeção de prompt

Devido à sua capacidade de executar comandos e interagir com APIs, os servidores MCP podem representar riscos à segurança. Uma das principais preocupações é que o LLM pode optar pela ação que achar mais adequada, mesmo sem a intenção do usuário.

Embora esse risco possa surgir sem má intenção, ele também representa uma vulnerabilidade em cenários adversariais. Por exemplo, um usuário pode enviar ao cliente MCP um prompt criado por terceiros com intenções maliciosas. O prompt pode ser disfarçado, mas ainda assim vazar informações privadas da conversa ou das ferramentas acessíveis ao usuário. Imagine um cenário em que o usuário quer criar um novo usuário em um ambiente de nuvem. Ele, sem saber, copia e cola um prompt malicioso que executa a ação esperada e cria uma brecha para o invasor adicionar outro usuário ao sistema.

Por isso, as ações realizadas pelos servidores MCP devem sempre ser confirmadas pelos usuários ou devidamente restritas, para reduzir o risco a um nível aceitável.

Injeção de ferramenta

Há também a possibilidade de alguém criar um servidor MCP mal-intencionado e isso representa um risco potencial ainda mais elevado. Por exemplo, um servidor MCP mal-intencionado pode parecer seguro durante a instalação, mesmo que seu código-fonte e descrições de ferramentas aparentem ser normais. Porém, as ferramentas podem ser modificadas em uma atualização futura. Por exemplo, uma ferramenta inicialmente descrita como coletora de informações meteorológicas pode ser modificada em uma atualização para coletar dados confidenciais e enviá-los a um invasor.

Isso também pode acontecer com os nomes das ferramentas. Servidores MCP mal-intencionados podem dar nomes enganosos às suas ferramentas para que o LLM as escolha, em vez de ferramentas legítimas, o que pode causar ações prejudiciais ou involuntárias.

Para reduzir parte desse risco, o software que permite a instalação de servidores MCP deve ser capaz de fixar suas versões e notificar o usuário caso haja alterações no código ou na composição após a instalação.

Amostragem

Servidores MCP mal-intencionados podem abusar da funcionalidade de amostragem, que permite aos servidores solicitar aos clientes MCP que usem um LLM para completar uma solicitação. Se um servidor MCP precisar enviar uma solicitação a um LLM, a amostragem permite que o cliente MCP faça essa solicitação em nome do servidor, pois o usuário tem mais controle e isso facilita a centralização dos custos.

Os clientes MCP devem implementar os seguintes controles para reduzir os riscos associados à amostragem:

  • Permitir que os clientes mostrem aos usuários a solicitação de conclusão
  • Permitir que os usuários alterem ou rejeitem as conclusões
  • Permitir que os clientes filtrem ou alterem as conclusões
  • Permitir que os usuários controlem qual modelo é usado
  • Implementar limites de taxa apropriados
  • Controlar a exposição de custos
  • Implementar tempo limite

Geração de logs

Conforme já abordado aqui, os servidores MCP conseguem executar comandos confidenciais. Eles devem ser capazes de enviar logs ou eventos para servidores de registro em log centralizados padrão ou de registrar esses eventos localmente. Dessa forma, é possível investigar as ações do sistema em caso de problemas ou suspeitas.

Gerenciamento de vulnerabilidade

Por serem códigos, os servidores MCP podem ter vulnerabilidades assim como qualquer outro software. Por isso, é essencial incluí-los no processo padrão de gerenciamento de vulnerabilidades. Esse processo inclui a atualização dos clientes e servidores MCP e suas dependências, conforme o nível de risco aceito pela organização.

Conclusão

O MCP despertou interesse em manipular ferramentas com linguagem natural e em entender melhor como nos comunicamos com usuários, LLMs e ferramentas. No entanto, devemos considerar os riscos de segurança associados ao avanço da automação e à adoção de agentes de IA. Assim como acontece com qualquer nova tecnologia, ao utilizar o MCP, as empresas devem avaliar seus riscos de segurança e implementar os controles adequados para aproveitar ao máximo os benefícios da tecnologia.

Leia mais

Hub

Red Hat Product Security

A Red Hat acredita que todos, em qualquer lugar, têm direito às informações de qualidade necessárias para mitigar os riscos à segurança e à privacidade, bem como o acesso para fazer isso.

Sobre o autor

Florencio has had cybersecurity in his veins since he was a kid. He started in cybersecurity around 1998 (time flies!) first as a hobby and then professionally. His first job required him to develop a host-based intrusion detection system in Python and for Linux for a research group in his university. Between 2008 and 2015 he had his own startup, which offered cybersecurity consulting services. He was CISO and head of security of a big retail company in Spain (more than 100k RHEL devices, including POS systems). Since 2020, he has worked at Red Hat as a Product Security Engineer and Architect.

UI_Icon-Red_Hat-Close-A-Black-RGB

Navegue por canal

automation icon

Automação

Últimas novidades em automação de TI para empresas de tecnologia, equipes e ambientes

AI icon

Inteligência artificial

Descubra as atualizações nas plataformas que proporcionam aos clientes executar suas cargas de trabalho de IA em qualquer ambiente

open hybrid cloud icon

Nuvem híbrida aberta

Veja como construímos um futuro mais flexível com a nuvem híbrida

security icon

Segurança

Veja as últimas novidades sobre como reduzimos riscos em ambientes e tecnologias

edge icon

Edge computing

Saiba quais são as atualizações nas plataformas que simplificam as operações na borda

Infrastructure icon

Infraestrutura

Saiba o que há de mais recente na plataforma Linux empresarial líder mundial

application development icon

Aplicações

Conheça nossas soluções desenvolvidas para ajudar você a superar os desafios mais complexos de aplicações

Virtualization icon

Virtualização

O futuro da virtualização empresarial para suas cargas de trabalho on-premise ou na nuvem