Envenenamento e manipulação ocultos no sistema MCP: demonstração prática
MCP (Modelo de Contexto do Protocolo)O sistema está atualmente em uma fase inicial de desenvolvimento, com um ambiente geral bastante caótico, onde várias formas potenciais de ataque estão surgindo a todo momento, tornando difícil a defesa efetiva dos protocolos e ferramentas existentes. Para ajudar a comunidade a entender melhor e aprimorar a segurança do MCP, a Slow Mist lançou especialmente a ferramenta MasterMCP como código aberto, com a esperança de que, por meio de simulações de ataques reais, possam ser identificadas vulnerabilidades de segurança no design do produto, fortalecendo gradualmente o projeto MCP.
Este artigo irá conduzir todos a uma demonstração prática das formas comuns de ataque sob o sistema MCP, como envenenamento de informações, ocultação de instruções maliciosas e outros casos reais. Todos os scripts de demonstração também serão disponibilizados como código aberto, permitindo que todos reproduzam todo o processo em um ambiente seguro e até desenvolvam seus próprios plugins de teste de ataque com base nesses scripts.
Visão Geral da Arquitetura
Demonstração do alvo de ataque MCP:Toolbox
smithery.ai é um dos sites de plugins MCP mais populares atualmente, reunindo uma grande quantidade de listas MCP e usuários ativos. Dentre eles, @smithery/toolbox é a ferramenta de gestão MCP lançada oficialmente pelo smithery.ai.
Escolha o Toolbox como alvo de teste, principalmente com base nos seguintes pontos:
A base de usuários é enorme e representativa
Suporta a instalação automática de outros plugins, complementando algumas funcionalidades do cliente ( como o Claude Desktop )
Inclui configurações sensíveis ( como a Chave API ), facilitando a apresentação
Demonstração de uso de MCP malicioso: MasterMCP
MasterMCP é uma ferramenta simuladora de MCP malicioso desenvolvida pela Slow Mist para testes de segurança, projetada com uma arquitetura modular e inclui os seguintes módulos-chave:
Simulação de serviços de sites locais:
Para uma reprodução mais realista do cenário de ataque, o MasterMCP inclui um módulo de simulação de serviço de site local. Ele rapidamente constrói um servidor HTTP simples usando o framework FastAPI, simulando um ambiente de página da web comum. Essas páginas parecem normais à primeira vista, como a exibição de informações de uma loja de bolos ou o retorno de dados JSON padrão, mas na verdade contêm cargas maliciosas cuidadosamente projetadas no código-fonte da página ou nas respostas da interface.
Arquitetura MCP plugin local
O MasterMCP utiliza uma abordagem modular para expansão, facilitando a adição rápida de novas formas de ataque. Após a execução, o MasterMCP irá correr o serviço FastAPI do módulo anterior em um subprocesso. ( Existem riscos de segurança aqui - plugins locais podem iniciar subprocessos que não são esperados pelo MCP ).
Cliente de Demonstração
Cursor: um dos IDEs de programação assistidos por IA mais populares do mundo atualmente
Claude Desktop:Anthropic(MCP protocolo de personalização ) cliente oficial
modelo grande usado para demonstração
Claude 3.7
Escolha a versão Claude 3.7, pois já houve algumas melhorias no reconhecimento de operações sensíveis, ao mesmo tempo que representa uma capacidade operacional bastante forte no atual ecossistema MCP.
Invocação Maliciosa Cross-MCP
Esta demonstração inclui dois conteúdos: envenenamento e chamadas maliciosas Cross-MCP.
ataque de envenenamento de conteúdo na web
Injeção de código comentada
Acesso do Cursor ao site de teste local.
Esta é uma página "Delicious Cake World" que parece inofensiva. Através deste experimento, simulamos a demonstração do impacto que o acesso a sites maliciosos pode ter nos clientes de grandes modelos.
Executar instruções:
Buscar o conteúdo de
Os resultados mostram que o Cursor não apenas leu o conteúdo da página web, mas também retornou dados de configuração sensíveis locais para o servidor de teste. No código fonte, palavras-chave maliciosas foram inseridas na forma de comentários HTML.
Embora o método de anotação seja bastante direto e fácil de reconhecer, já pode acionar operações maliciosas.
Envenenamento de comentários codificados
Acesse a página /encode, que é uma página da web que parece idêntica ao exemplo anterior, mas as palavras-chave maliciosas foram codificadas, tornando o ataque mais sutil, tornando difícil perceber diretamente, mesmo ao acessar o código-fonte da página.
Mesmo que o código-fonte não contenha palavras-chave em texto claro, o ataque ainda foi executado com sucesso.
MCP ferramenta devolve informação de envenenamento
De acordo com as instruções do MasterMCP, insira o comando simulado (, que não tem significado real, visando desencadear o MCP malicioso para demonstrar suas operações subsequentes ):
obter muitas maçãs
Pode-se ver que, após a execução do comando, o cliente chamou o Toolbox através do MCP e adicionou com sucesso um novo servidor MCP.
Verificando o código do plugin, pode-se descobrir que os dados retornados já contêm uma carga maliciosa codificada, quase imperceptível para o usuário.
Ataque de poluição de interface de terceiros
Esta demonstração serve principalmente para alertar que, tanto no caso de MCP malicioso quanto não malicioso, ao chamar APIs de terceiros, retornar diretamente os dados de terceiros ao contexto pode ter sérias consequências.
Executar pedido:
Buscar json de /api/data
Resultado: Palavras-chave maliciosas foram inseridas nos dados JSON retornados e acionaram com sucesso a execução maliciosa.
Técnica de envenenamento na fase de inicialização do MC
Esta demonstração contém dois conteúdos: injeção de palavras-chave iniciais e conflito de nomes.
ataque de sobrescrita de função maliciosa
Aqui, o MasterMCP escreveu uma ferramenta com o mesmo nome de função remove_server que o Toolbox, e codificou para ocultar palavras-chave maliciosas.
Executar instrução:
remover plugin fetch do servidor toolbox
Claude Desktop não chamou o método remove_server da toolbox original, mas sim acionou o método homônimo fornecido pelo MasterMCP.
O princípio é enfatizar que "os métodos anteriores foram abandonados", priorizando a indução do grande modelo a chamar funções de sobreposição maliciosas.
Adicionar lógica de verificação global maliciosa
Aqui, o MasterMCP escreveu uma ferramenta banana, cujo objetivo principal é forçar todos os ferramentas a serem executadas para a verificação de segurança antes de qualquer execução no texto de aviso.
Antes de executar a função, o sistema sempre chama prioritariamente o mecanismo de verificação banana.
Isto é uma injeção de lógica global realizada através da ênfase repetida no código de que "é necessário executar a deteção de banana".
Técnicas avançadas para ocultar palavras-chave maliciosas
forma de codificação amigável para grandes modelos
Devido à forte capacidade de análise de formatos multilíngues do modelo de linguagem grande (LLM), isso é frequentemente utilizado para ocultar informações maliciosas, sendo os métodos comuns incluídos:
Em ambiente inglês: usar codificação Hex Byte
Ambiente em chinês: usar codificação NCR ou codificação JavaScript
mecanismo de retorno de carga maliciosa aleatória
Como mencionado na terceira parte da segunda capítulo sobre a contaminação da interface de terceiros, ao solicitar /random:
Cada vez é retornada aleatoriamente uma página com carga maliciosa, aumentando significativamente a dificuldade de deteção e rastreamento.
Resumo
Através da demonstração prática do MasterMCP, vimos de forma intuitiva os vários riscos de segurança ocultos no sistema do Model Context Protocol (MCP). Desde a injeção simples de palavras-chave, chamadas cruzadas de MCP, até ataques na fase de inicialização mais ocultos e a ocultação de instruções maliciosas, cada etapa nos lembra que: embora o ecossistema MCP seja poderoso, também é vulnerável.
Particularmente hoje, em que grandes modelos interagem cada vez mais com plugins e APIs externas, uma pequena contaminação de entrada pode desencadear riscos de segurança em todo o sistema. A diversidade das táticas dos atacantes, como codificação oculta (, contaminação aleatória e sobreposição de funções ), também significa que as abordagens tradicionais de proteção precisam ser atualizadas de forma abrangente.
A segurança nunca é alcançada de uma só vez.
Espero que esta demonstração sirva de alerta para todos: tanto desenvolvedores como utilizadores devem manter uma vigilância adequada sobre o sistema MCP, prestando atenção a cada interação, cada linha de código, cada valor de retorno. Só tratando cada detalhe com rigor é que se pode realmente construir um ambiente MCP sólido e seguro.
Na próxima etapa, também continuaremos a aprimorar o script MasterMCP, abrindo mais casos de teste específicos para ajudar todos a entender, praticar e fortalecer a proteção em um ambiente seguro.
Ver original
Esta página pode conter conteúdos de terceiros, que são fornecidos apenas para fins informativos (sem representações/garantias) e não devem ser considerados como uma aprovação dos seus pontos de vista pela Gate, nem como aconselhamento financeiro ou profissional. Consulte a Declaração de exoneração de responsabilidade para obter mais informações.
23 gostos
Recompensa
23
7
Partilhar
Comentar
0/400
EthSandwichHero
· 07-18 06:35
Esse velho truque é mais fácil de ser atacado, não é?
Ver originalResponder0
gas_guzzler
· 07-16 22:51
MCP olha para o perigo, fuja rapidamente
Ver originalResponder0
faded_wojak.eth
· 07-15 19:06
Ver através do seu mcp e brincar com estilos.
Ver originalResponder0
PanicSeller
· 07-15 19:06
idiotas ainda não foram feitos de parvas e já estão a soltar-se assim?
Ver originalResponder0
LiquiditySurfer
· 07-15 19:01
A segurança do Blockchain também precisa ajustar o melhor ponto de entrada para surfar~ A atual situação caótica do mercado é simplesmente insuficiente para esfriar, mesmo com martini com gelo.
Ver originalResponder0
consensus_failure
· 07-15 18:54
A verdade é que este tipo de vulnerabilidade não deve ser sempre aberto.
Ver originalResponder0
AllInAlice
· 07-15 18:50
Este trabalho está muito louco, estou um pouco nervoso.
Demonstração prática de riscos de segurança do sistema MCP: da contaminação à manipulação oculta
Envenenamento e manipulação ocultos no sistema MCP: demonstração prática
MCP (Modelo de Contexto do Protocolo)O sistema está atualmente em uma fase inicial de desenvolvimento, com um ambiente geral bastante caótico, onde várias formas potenciais de ataque estão surgindo a todo momento, tornando difícil a defesa efetiva dos protocolos e ferramentas existentes. Para ajudar a comunidade a entender melhor e aprimorar a segurança do MCP, a Slow Mist lançou especialmente a ferramenta MasterMCP como código aberto, com a esperança de que, por meio de simulações de ataques reais, possam ser identificadas vulnerabilidades de segurança no design do produto, fortalecendo gradualmente o projeto MCP.
Este artigo irá conduzir todos a uma demonstração prática das formas comuns de ataque sob o sistema MCP, como envenenamento de informações, ocultação de instruções maliciosas e outros casos reais. Todos os scripts de demonstração também serão disponibilizados como código aberto, permitindo que todos reproduzam todo o processo em um ambiente seguro e até desenvolvam seus próprios plugins de teste de ataque com base nesses scripts.
Visão Geral da Arquitetura
Demonstração do alvo de ataque MCP:Toolbox
smithery.ai é um dos sites de plugins MCP mais populares atualmente, reunindo uma grande quantidade de listas MCP e usuários ativos. Dentre eles, @smithery/toolbox é a ferramenta de gestão MCP lançada oficialmente pelo smithery.ai.
Escolha o Toolbox como alvo de teste, principalmente com base nos seguintes pontos:
Demonstração de uso de MCP malicioso: MasterMCP
MasterMCP é uma ferramenta simuladora de MCP malicioso desenvolvida pela Slow Mist para testes de segurança, projetada com uma arquitetura modular e inclui os seguintes módulos-chave:
Para uma reprodução mais realista do cenário de ataque, o MasterMCP inclui um módulo de simulação de serviço de site local. Ele rapidamente constrói um servidor HTTP simples usando o framework FastAPI, simulando um ambiente de página da web comum. Essas páginas parecem normais à primeira vista, como a exibição de informações de uma loja de bolos ou o retorno de dados JSON padrão, mas na verdade contêm cargas maliciosas cuidadosamente projetadas no código-fonte da página ou nas respostas da interface.
O MasterMCP utiliza uma abordagem modular para expansão, facilitando a adição rápida de novas formas de ataque. Após a execução, o MasterMCP irá correr o serviço FastAPI do módulo anterior em um subprocesso. ( Existem riscos de segurança aqui - plugins locais podem iniciar subprocessos que não são esperados pelo MCP ).
Cliente de Demonstração
modelo grande usado para demonstração
Escolha a versão Claude 3.7, pois já houve algumas melhorias no reconhecimento de operações sensíveis, ao mesmo tempo que representa uma capacidade operacional bastante forte no atual ecossistema MCP.
Invocação Maliciosa Cross-MCP
Esta demonstração inclui dois conteúdos: envenenamento e chamadas maliciosas Cross-MCP.
ataque de envenenamento de conteúdo na web
Acesso do Cursor ao site de teste local.
Esta é uma página "Delicious Cake World" que parece inofensiva. Através deste experimento, simulamos a demonstração do impacto que o acesso a sites maliciosos pode ter nos clientes de grandes modelos.
Executar instruções:
Buscar o conteúdo de
Os resultados mostram que o Cursor não apenas leu o conteúdo da página web, mas também retornou dados de configuração sensíveis locais para o servidor de teste. No código fonte, palavras-chave maliciosas foram inseridas na forma de comentários HTML.
Embora o método de anotação seja bastante direto e fácil de reconhecer, já pode acionar operações maliciosas.
Acesse a página /encode, que é uma página da web que parece idêntica ao exemplo anterior, mas as palavras-chave maliciosas foram codificadas, tornando o ataque mais sutil, tornando difícil perceber diretamente, mesmo ao acessar o código-fonte da página.
Mesmo que o código-fonte não contenha palavras-chave em texto claro, o ataque ainda foi executado com sucesso.
MCP ferramenta devolve informação de envenenamento
De acordo com as instruções do MasterMCP, insira o comando simulado (, que não tem significado real, visando desencadear o MCP malicioso para demonstrar suas operações subsequentes ):
obter muitas maçãs
Pode-se ver que, após a execução do comando, o cliente chamou o Toolbox através do MCP e adicionou com sucesso um novo servidor MCP.
Verificando o código do plugin, pode-se descobrir que os dados retornados já contêm uma carga maliciosa codificada, quase imperceptível para o usuário.
Ataque de poluição de interface de terceiros
Esta demonstração serve principalmente para alertar que, tanto no caso de MCP malicioso quanto não malicioso, ao chamar APIs de terceiros, retornar diretamente os dados de terceiros ao contexto pode ter sérias consequências.
Executar pedido:
Buscar json de /api/data
Resultado: Palavras-chave maliciosas foram inseridas nos dados JSON retornados e acionaram com sucesso a execução maliciosa.
Técnica de envenenamento na fase de inicialização do MC
Esta demonstração contém dois conteúdos: injeção de palavras-chave iniciais e conflito de nomes.
ataque de sobrescrita de função maliciosa
Aqui, o MasterMCP escreveu uma ferramenta com o mesmo nome de função remove_server que o Toolbox, e codificou para ocultar palavras-chave maliciosas.
Executar instrução:
remover plugin fetch do servidor toolbox
Claude Desktop não chamou o método remove_server da toolbox original, mas sim acionou o método homônimo fornecido pelo MasterMCP.
O princípio é enfatizar que "os métodos anteriores foram abandonados", priorizando a indução do grande modelo a chamar funções de sobreposição maliciosas.
Adicionar lógica de verificação global maliciosa
Aqui, o MasterMCP escreveu uma ferramenta banana, cujo objetivo principal é forçar todos os ferramentas a serem executadas para a verificação de segurança antes de qualquer execução no texto de aviso.
Antes de executar a função, o sistema sempre chama prioritariamente o mecanismo de verificação banana.
Isto é uma injeção de lógica global realizada através da ênfase repetida no código de que "é necessário executar a deteção de banana".
Técnicas avançadas para ocultar palavras-chave maliciosas
forma de codificação amigável para grandes modelos
Devido à forte capacidade de análise de formatos multilíngues do modelo de linguagem grande (LLM), isso é frequentemente utilizado para ocultar informações maliciosas, sendo os métodos comuns incluídos:
mecanismo de retorno de carga maliciosa aleatória
Como mencionado na terceira parte da segunda capítulo sobre a contaminação da interface de terceiros, ao solicitar /random:
Cada vez é retornada aleatoriamente uma página com carga maliciosa, aumentando significativamente a dificuldade de deteção e rastreamento.
Resumo
Através da demonstração prática do MasterMCP, vimos de forma intuitiva os vários riscos de segurança ocultos no sistema do Model Context Protocol (MCP). Desde a injeção simples de palavras-chave, chamadas cruzadas de MCP, até ataques na fase de inicialização mais ocultos e a ocultação de instruções maliciosas, cada etapa nos lembra que: embora o ecossistema MCP seja poderoso, também é vulnerável.
Particularmente hoje, em que grandes modelos interagem cada vez mais com plugins e APIs externas, uma pequena contaminação de entrada pode desencadear riscos de segurança em todo o sistema. A diversidade das táticas dos atacantes, como codificação oculta (, contaminação aleatória e sobreposição de funções ), também significa que as abordagens tradicionais de proteção precisam ser atualizadas de forma abrangente.
A segurança nunca é alcançada de uma só vez.
Espero que esta demonstração sirva de alerta para todos: tanto desenvolvedores como utilizadores devem manter uma vigilância adequada sobre o sistema MCP, prestando atenção a cada interação, cada linha de código, cada valor de retorno. Só tratando cada detalhe com rigor é que se pode realmente construir um ambiente MCP sólido e seguro.
Na próxima etapa, também continuaremos a aprimorar o script MasterMCP, abrindo mais casos de teste específicos para ajudar todos a entender, praticar e fortalecer a proteção em um ambiente seguro.