Vulnerabilidades de segurança e demonstração de ataques no sistema MCP
MCP (Model Context Protocol) O sistema ainda está em estágios iniciais de desenvolvimento, o ambiente geral é relativamente caótico, e várias formas potenciais de ataque estão surgindo constantemente, tornando difícil para os protocolos e ferramentas existentes oferecerem uma defesa eficaz. Para ajudar a comunidade a entender melhor e melhorar a segurança do MCP, uma equipe de segurança abriu o código-fonte da ferramenta MasterMCP, com a esperança de que, através de simulações de ataques reais, ajudem os desenvolvedores a identificar prontamente as vulnerabilidades de segurança no design do produto, reforçando assim gradualmente o projeto MCP.
Este artigo irá demonstrar, através de operações práticas, várias formas comuns de ataque sob o sistema MCP, incluindo envenenamento de informações, instruções maliciosas ocultas e outros casos reais. Todos os scripts utilizados nas demonstrações também serão disponibilizados como código aberto, permitindo que os desenvolvedores 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 de ataque alvo MC:Toolbox
Toolbox é uma ferramenta popular de gestão de MCP, com uma base de utilizadores considerável. A escolha do Toolbox como alvo de teste baseia-se principalmente nos seguintes pontos:
A base de usuários é grande e representativa
Suporta a instalação automática de outros plugins, complementando algumas funcionalidades do cliente.
Inclui configurações sensíveis como a API Key, facilitando a demonstração
Demonstração de uso do MCP malicioso: MasterMCP
MasterMCP é uma ferramenta de simulação de MCP malicioso desenvolvida para testes de segurança, projetada com uma arquitetura de plugins, que inclui os seguintes módulos-chave:
Simulação de serviços de sites locais:
Através do framework FastAPI, é possível montar rapidamente um servidor HTTP simples, simulando um ambiente web comum. Essas páginas parecem normais à primeira vista, mas na verdade escondem cargas maliciosas cuidadosamente projetadas no código-fonte da página ou nas respostas da API.
Arquitetura MCP plugin local
Utiliza um método de plugin para expansão, facilitando a adição rápida de novas formas de ataque no futuro. Após a execução, o MasterMCP irá executar o serviço FastAPI do módulo anterior em um subprocesso.
Cliente de Demonstração
Cursor: Uma das IDEs de programação assistida por IA mais populares do mundo.
Claude Desktop: Cliente oficial da Anthropic
modelo grande usado para demonstração
Claude 3.7
Invocação Maliciosa Cross-MCP
Esta demonstração contém dois conteúdos: envenenamento de informações e chamadas maliciosas Cross-MCP.
ataque de envenenamento de conteúdo da web
Envenenamento do tipo comentário
O Cursor acede ao site de teste local, que parece ser uma página "Delicious Cake World" inofensiva. Após executar o comando, o Cursor não só leu o conteúdo da página, como também enviou dados de configuração sensíveis locais de volta ao servidor de teste. No código-fonte, as palavras-chave maliciosas estão inseridas na forma de comentários HTML.
Injeção de comentários codificados
Visite a página /encode, esta página parece semelhante ao exemplo anterior, mas as palavras-chave maliciosas foram codificadas, tornando a injeção mais oculta. Mesmo ao acessar o código-fonte da página, é difícil perceber diretamente, mas o ataque ainda é executado com sucesso.
MCP ferramenta de retorno de informação envenenada
Após inserir o comando simulado de acordo com as instruções da palavra-chave do MasterMCP, o cliente fez uma chamada cruzada ao MCP e adicionou com sucesso um novo servidor MCP através do Toolbox. Ao verificar o código do plugin, pode-se observar que os dados retornados já continham uma carga maliciosa codificada, tornando quase impossível para o usuário detectar qualquer anomalia.
ataque de poluição de interface de terceiros
Esta demonstração serve principalmente para alertar que, quer se trate de MCP malicioso ou não, ao chamar APIs de terceiros, se os dados de terceiros forem retornados diretamente ao contexto, isso pode ter consequências graves. Palavras-chave maliciosas podem ser inseridas nos dados JSON retornados e acionadas com sucesso para uma execução maliciosa.
Técnica de envenenamento na fase de inicialização do MCP
Esta demonstração contém duas partes: injeção de palavras-chave iniciais e conflitos de nomes.
ataque de sobreposição de funções maliciosas
MasterMCP escreveu uma função remove_server com o mesmo nome que Toolbox, e codificou palavras-chave maliciosas ocultas. Após a execução do comando, o Claude Desktop não chamou o método original toolbox remove_server, mas sim acionou o método de mesmo nome fornecido por MasterMCP. O princípio é enfatizar que "o método original foi descontinuado", induzindo prioritariamente o grande modelo a chamar a função maliciosamente sobreposta.
Adicionar lógica de verificação global maliciosa
O MasterMCP escreveu uma ferramenta chamada banana, cuja função principal é forçar que todas as ferramentas executem essa ferramenta para uma verificação de segurança antes de serem executadas. Antes de cada execução de função, o sistema chamará prioritariamente o mecanismo de verificação banana. Isso é realizado através da injeção lógica global, enfatizando repetidamente no código que "deve-se executar a verificação banana".
Dicas Avançadas para Ocultar Palavras-Chave Maliciosas
forma de codificação amigável para grandes modelos
Devido à forte capacidade de análise dos modelos de linguagem de grande escala em formatos multilíngues, isso tem sido utilizado para esconder informações maliciosas, sendo os métodos comuns incluem:
Em ambiente inglês: usar codificação Hex Byte
Em ambiente chinês: usar codificação NCR ou codificação JavaScript
mecanismo de retorno de carga maliciosa aleatória
Quando a solicitação /random é feita, retorna sempre uma página com carga maliciosa de forma aleatória, 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 MCP. Desde a simples injeção de palavras-chave, chamadas entre MCPs, até ataques mais ocultos na fase de inicialização e ocultação de instruções maliciosas, cada etapa nos lembra: embora o ecossistema MCP seja poderoso, também é vulnerável.
Uma pequena contaminação de entrada pode desencadear riscos de segurança em todo o sistema. E a diversidade dos métodos dos atacantes, como a codificação oculta (, contaminação aleatória e sobreposição de funções ), também significa que as abordagens tradicionais de proteção precisam de uma atualização abrangente.
A segurança nunca é alcançada de uma só vez. Tanto os desenvolvedores quanto os usuários devem manter uma vigilância adequada sobre o sistema MCP, prestando atenção a cada interação, cada linha de código e cada valor de retorno. Somente ao tratar cada detalhe com rigor é que se pode realmente construir um ambiente MCP sólido e seguro.
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.
Demonstração prática de riscos de segurança e ataques no ecossistema MCP: da poluição de informações à ocultação de comandos maliciosos
Vulnerabilidades de segurança e demonstração de ataques no sistema MCP
MCP (Model Context Protocol) O sistema ainda está em estágios iniciais de desenvolvimento, o ambiente geral é relativamente caótico, e várias formas potenciais de ataque estão surgindo constantemente, tornando difícil para os protocolos e ferramentas existentes oferecerem uma defesa eficaz. Para ajudar a comunidade a entender melhor e melhorar a segurança do MCP, uma equipe de segurança abriu o código-fonte da ferramenta MasterMCP, com a esperança de que, através de simulações de ataques reais, ajudem os desenvolvedores a identificar prontamente as vulnerabilidades de segurança no design do produto, reforçando assim gradualmente o projeto MCP.
Este artigo irá demonstrar, através de operações práticas, várias formas comuns de ataque sob o sistema MCP, incluindo envenenamento de informações, instruções maliciosas ocultas e outros casos reais. Todos os scripts utilizados nas demonstrações também serão disponibilizados como código aberto, permitindo que os desenvolvedores 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 de ataque alvo MC:Toolbox
Toolbox é uma ferramenta popular de gestão de MCP, com uma base de utilizadores considerável. A escolha do Toolbox como alvo de teste baseia-se principalmente nos seguintes pontos:
Demonstração de uso do MCP malicioso: MasterMCP
MasterMCP é uma ferramenta de simulação de MCP malicioso desenvolvida para testes de segurança, projetada com uma arquitetura de plugins, que inclui os seguintes módulos-chave:
Simulação de serviços de sites locais:
Através do framework FastAPI, é possível montar rapidamente um servidor HTTP simples, simulando um ambiente web comum. Essas páginas parecem normais à primeira vista, mas na verdade escondem cargas maliciosas cuidadosamente projetadas no código-fonte da página ou nas respostas da API.
Arquitetura MCP plugin local
Utiliza um método de plugin para expansão, facilitando a adição rápida de novas formas de ataque no futuro. Após a execução, o MasterMCP irá executar o serviço FastAPI do módulo anterior em um subprocesso.
Cliente de Demonstração
modelo grande usado para demonstração
Invocação Maliciosa Cross-MCP
Esta demonstração contém dois conteúdos: envenenamento de informações e chamadas maliciosas Cross-MCP.
ataque de envenenamento de conteúdo da web
O Cursor acede ao site de teste local, que parece ser uma página "Delicious Cake World" inofensiva. Após executar o comando, o Cursor não só leu o conteúdo da página, como também enviou dados de configuração sensíveis locais de volta ao servidor de teste. No código-fonte, as palavras-chave maliciosas estão inseridas na forma de comentários HTML.
Visite a página /encode, esta página parece semelhante ao exemplo anterior, mas as palavras-chave maliciosas foram codificadas, tornando a injeção mais oculta. Mesmo ao acessar o código-fonte da página, é difícil perceber diretamente, mas o ataque ainda é executado com sucesso.
MCP ferramenta de retorno de informação envenenada
Após inserir o comando simulado de acordo com as instruções da palavra-chave do MasterMCP, o cliente fez uma chamada cruzada ao MCP e adicionou com sucesso um novo servidor MCP através do Toolbox. Ao verificar o código do plugin, pode-se observar que os dados retornados já continham uma carga maliciosa codificada, tornando quase impossível para o usuário detectar qualquer anomalia.
ataque de poluição de interface de terceiros
Esta demonstração serve principalmente para alertar que, quer se trate de MCP malicioso ou não, ao chamar APIs de terceiros, se os dados de terceiros forem retornados diretamente ao contexto, isso pode ter consequências graves. Palavras-chave maliciosas podem ser inseridas nos dados JSON retornados e acionadas com sucesso para uma execução maliciosa.
Técnica de envenenamento na fase de inicialização do MCP
Esta demonstração contém duas partes: injeção de palavras-chave iniciais e conflitos de nomes.
ataque de sobreposição de funções maliciosas
MasterMCP escreveu uma função remove_server com o mesmo nome que Toolbox, e codificou palavras-chave maliciosas ocultas. Após a execução do comando, o Claude Desktop não chamou o método original toolbox remove_server, mas sim acionou o método de mesmo nome fornecido por MasterMCP. O princípio é enfatizar que "o método original foi descontinuado", induzindo prioritariamente o grande modelo a chamar a função maliciosamente sobreposta.
Adicionar lógica de verificação global maliciosa
O MasterMCP escreveu uma ferramenta chamada banana, cuja função principal é forçar que todas as ferramentas executem essa ferramenta para uma verificação de segurança antes de serem executadas. Antes de cada execução de função, o sistema chamará prioritariamente o mecanismo de verificação banana. Isso é realizado através da injeção lógica global, enfatizando repetidamente no código que "deve-se executar a verificação banana".
Dicas Avançadas para Ocultar Palavras-Chave Maliciosas
forma de codificação amigável para grandes modelos
Devido à forte capacidade de análise dos modelos de linguagem de grande escala em formatos multilíngues, isso tem sido utilizado para esconder informações maliciosas, sendo os métodos comuns incluem:
mecanismo de retorno de carga maliciosa aleatória
Quando a solicitação /random é feita, retorna sempre uma página com carga maliciosa de forma aleatória, 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 MCP. Desde a simples injeção de palavras-chave, chamadas entre MCPs, até ataques mais ocultos na fase de inicialização e ocultação de instruções maliciosas, cada etapa nos lembra: embora o ecossistema MCP seja poderoso, também é vulnerável.
Uma pequena contaminação de entrada pode desencadear riscos de segurança em todo o sistema. E a diversidade dos métodos dos atacantes, como a codificação oculta (, contaminação aleatória e sobreposição de funções ), também significa que as abordagens tradicionais de proteção precisam de uma atualização abrangente.
A segurança nunca é alcançada de uma só vez. Tanto os desenvolvedores quanto os usuários devem manter uma vigilância adequada sobre o sistema MCP, prestando atenção a cada interação, cada linha de código e cada valor de retorno. Somente ao tratar cada detalhe com rigor é que se pode realmente construir um ambiente MCP sólido e seguro.