2 pontos por GN⁺ 2025-04-07 | 1 comentários | Compartilhar no WhatsApp
  • MCP é um protocolo padrão que conecta LLMs e ferramentas, mas não tem segurança aplicada por padrão
  • Existem várias vulnerabilidades de segurança, como injeção de comandos, envenenamento de ferramentas e adulteração de definições
  • O MCP não oferece autenticação, criptografia nem verificação de integridade, o que o torna uma estrutura difícil de confiar
  • No momento, a melhor resposta é obter visibilidade e controle com ferramentas como o ScanMCP

O que é MCP e por que isso importa

  • MCP é a sigla de Model Context Protocol, um novo padrão para a forma como LLMs como Claude, GPT e Cursor se integram a ferramentas e dados
  • Ele oferece um método de conexão padronizado, a ponto de ser chamado de "USB-C para agentes de IA"
  • Por meio do MCP, agentes de IA podem fazer o seguinte
    • Conectar-se a ferramentas com APIs padronizadas
    • Manter o estado da sessão
    • Executar comandos (com liberdade excessiva em muitos casos)
    • Compartilhar contexto entre fluxos de trabalho
  • Mas, por padrão, não há segurança aplicada
  • Há o risco de abrir canais laterais que permitem acesso ao sistema sem o conhecimento do usuário

Principais vulnerabilidades de segurança no MCP

  • Vulnerabilidade de injeção de comandos (pesquisa da Equixly)

    • Mesmo em 2025, execução remota de código (RCE) por injeção de comandos ainda está ocorrendo
    • Segundo a investigação da Equixly, mais de 43% das implementações de servidores MCP usam chamadas de shell inseguras
    • Um invasor pode incluir comandos de shell na entrada da ferramenta e executar código remoto por meio de um agente confiável
  • Envenenamento de ferramentas (Tool Poisoning, Invariant Labs)

    • Um ataque em que comandos maliciosos são ocultados dentro da descrição da ferramenta
    • Isso não é visível ao usuário, mas a IA reconhece e executa essas instruções normalmente
    • Uma ferramenta que parece fazer apenas operações matemáticas simples pode, na prática, ler chaves SSH ou arquivos de configuração sensíveis no sistema do usuário
  • Redefinição silenciosa de ferramentas (Rug Pull)

    • Uma ferramenta pode alterar sua própria definição após a instalação
    • Uma ferramenta que parecia normal no dia 1 pode se transformar, no dia 7, em uma ferramenta para coletar chaves de API para o invasor
    • Isso representa uma nova forma de problema de segurança da cadeia de suprimentos, ocorrendo dentro do LLM
  • Sombreamento de ferramentas entre servidores

    • Quando vários servidores MCP estão conectados a um único agente, um servidor malicioso pode interceptar ou sobrescrever chamadas destinadas a um servidor confiável
    • Como resultado, podem ocorrer problemas como
      • Enviar e-mails ao invasor fingindo que foram enviados ao usuário
      • Injetar lógica oculta na ferramenta
      • Exfiltrar dados codificados

Por que o MCP ainda não é seguro

  • O MCP prioriza o seguinte
    • ✅ Integração fácil
    • ✅ Interface unificada
  • Mas faltam os seguintes elementos
    • ❌ Nenhum padrão de autenticação
    • ❌ Nenhuma criptografia de contexto
    • ❌ Impossibilidade de verificar a integridade das ferramentas
  • O usuário não tem como saber com base em que descrição o agente realmente está usando uma ferramenta

Medidas de segurança que desenvolvedores e operadores de plataforma podem adotar

  • Desenvolvedores

    • Validação de entrada é obrigatória
    • Fixar (pinning) as versões dos servidores MCP e das ferramentas
    • Remover informações sensíveis das descrições das ferramentas
  • Operadores de plataforma

    • Exibir ao usuário todos os metadados das ferramentas
    • Usar hashes de integridade em atualizações de servidor
    • Aplicar segurança de sessão de forma obrigatória
  • Usuários

    • Não se conectar a servidores MCP não confiáveis
    • Monitorar logs de sessão como se fossem um ambiente de produção
    • Acompanhar atualizações suspeitas de ferramentas

Proposta de ideia do ScanMCP.com

  • O ScanMCP é proposto como um scanner e dashboard para fazer o seguinte
    • Auditar ferramentas MCP conectadas
    • Detectar riscos como RCE, envenenamento de ferramentas e vazamento de sessão
    • Comparar e visualizar as informações que o usuário vê versus o que o agente reconhece
  • Isso pode ser útil para usuários como
    • Equipes de segurança de plataformas de agentes
    • Startups de infraestrutura de IA
    • Desenvolvedores independentes que queiram criar ferramentas baseadas em confiança

Consideração final

O MCP é um protocolo poderoso, mas está sendo adotado rápido demais sem a maturidade necessária em segurança de APIs
Até que uma abordagem secure-by-default seja adotada, ferramentas como ScanMCP.com são a melhor forma de obter visibilidade e controle

  • Conclusão: o "S" de MCP não significa Security. Mas deveria significar

1 comentários

 
GN⁺ 2025-04-07
Opiniões do Hacker News
  • Este texto destaca e cita os cenários de ataque descritos na nota de segurança publicada há alguns dias pela Invariant Labs (envenenamento de ferramentas, sombreamento e rug pull de MCP). Eu sou o autor desse post no blog

    • Ao contrário do que muita gente suspeita, o problema de segurança nas chamadas de ferramentas de LLM no estilo MCP não está em isolar diferentes implementações de servidores MCP entre si
    • As implementações de servidores MCP executadas localmente devem ser verificadas pelo gerenciador de pacotes usado na instalação (servidores MCP remotos são, na prática, ainda mais difíceis de verificar)
    • O problema é uma forma especial de injeção indireta de prompt que surge quando se usa MCP em sistemas de agentes
    • Como o agente inclui as especificações de todos os servidores MCP instalados no mesmo contexto, um servidor MCP não confiável pode manipular facilmente o comportamento de outro servidor MCP (por exemplo, um que tenha acesso a um banco de dados sensível). Chamamos isso de sombreamento de ferramentas
    • Além disso, por causa da natureza dinâmica do MCP, um servidor MCP pode alterar o conjunto de ferramentas que oferece apenas para usuários específicos. Isso significa que um servidor MCP pode se tornar malicioso a qualquer momento
    • Os clientes MCP atuais, Claude e Cursor, não notificam essas mudanças, o que deixa o agente e o usuário vulneráveis
    • Quem tiver mais interesse pode ver o post de blog mais detalhado em [1]. Pesquisamos e trabalhamos com segurança de agentes na Invariant há bastante tempo
    • Também publicamos snippets de código para que todos possam experimentar, incluindo um ataque de envenenamento de ferramentas contra um servidor MCP popular do WhatsApp [2]
  • Esses ataques são, em grande parte, mais um exemplo de estar do lado errado da eclusa. Eles não atravessam limites de privilégio; apenas fazem, de um jeito estranho, algo que já era possível fazer

    • Um servidor MCP executa código no nível do usuário, então não precisa enganar a IA para ler chaves SSH. Ele simplesmente pode ler as chaves
    • O resto é basicamente a mesma reclamação que também poderia ser feita sobre outras ferramentas/ecossistemas de desenvolvimento (NPM ou extensões do VS Code)
  • O desafio é imaginar um projeto melhor que:

      1. tenha padrões de segurança adequados para que as pessoas não escrevam artigos dizendo que "o S significa segurança"
      1. permita que programas ofereçam o mesmo conjunto de capacidades que os MCPs mais úteis oferecem hoje, sem transformar funções automáticas em algo que exige confirmação manual do usuário e, em geral, sem esvaziar o propósito da ideia inteira
      1. não tranque tudo em um marketplace proprietário com gatekeepers corporativos
    • Quero ver propostas, porque até agora o que vi foi apenas um genérico e nada específico "MCP não é seguro!!!111". Fica ainda mais difícil quando as pessoas esquecem que segurança e utilidade são forças opostas
  • Bom artigo, mas fico me perguntando se isso tudo foi gerado por IA

    • A foto de perfil parece ter sido gerada por StableDiffusion, a conta foi criada hoje e não há artigos anteriores
    • Também não consegui encontrar outras referências a Elena Cross
  • O significa observabilidade. Esta semana mergulhei fundo em explorar e escrever servidores MCP

    • A maioria das implementações, inclusive a minha implementação de brinquedo, não tem auditoria nem métricas. O Claude salva a saída de log dos servidores MCP, mas isso é para depuração, não para DevOps/SecOps
    • Culturalmente, o problema descrito pelo OP é um grande problema para pessoas menos técnicas (trouxas). Nos subreddits relacionados, o pessoal está se divertindo executando programas MCP CLI nas próprias máquinas
    • Os comentários de segurança do OP são óbvios para desenvolvedores, mas esses usuários não têm noção de quão arriscado isso é
    • As pessoas estão aprendendo sobre Docker, e o Claude inclui seu uso nos exemplos. Mas a maioria simplesmente baixa um blob e executa. As pessoas estão codando e rodando servidores MCP às cegas
    • À medida que o MCP se espalhar, frameworks e ferramentas vão amadurecer para dar suporte a segurança, observabilidade etc. É como construir a web em meados dos anos 90
    • Não tem relação com o OP, mas, enquanto eu construía isso, foi muito interessante digitar algo no Claude Desktop e disparar breakpoints no VSCode
  • Exato. Eu também estava pensando a mesma coisa, embora não tenha me aprofundado quando publiquei a nota

  • Mesmo quando o software em uso não é malicioso e foi implementado com segurança, como confirmar que ele está sendo usado da forma desejada?

    • Suponha que exista um servidor MCP que possa modificar o sistema de arquivos local e outro que modifique objetos em um armazenamento em nuvem. Como o usuário pode garantir que o agente LLM faça a escolha certa?
    • Você quer oferecer muitas opções e não vigiar cada ação, mas isso provavelmente acaba criando mais problemas
  • Mais de 43% das implementações de servidores MCP testadas pela Equixly tinham chamadas de shell inseguras

    • Como é que caem nessa armadilha toda vez?
  • Tenho curiosidade sobre o que é MCP. Tentei ler a documentação várias vezes, mas não consegui entender qual problema ele resolve. Principalmente, o que há de especial em agentes de IA que não se aplicaria a agentes determinísticos que existem há décadas?

  • Eu presumia que todo o propósito do MCP era permitir que a Anthropic espionasse prompts e saídas e maximizasse seus dados de treinamento. Foi a primeira vez que percebi que isso é um middleware para todos os modelos de IA