Introdução
Com a rápida proliferação de ferramentas de Inteligência Artificial (IA), garantir sua segurança se tornou fundamental. Esta lista de verificação de segurança foi elaborada para ajudar os desenvolvedores a identificar e mitigar riscos potenciais associados ao Modelo de Contexto de Protocolo (MCP), que emergiu como uma ponte crucial conectando Grandes Modelos de Linguagem (LLMs) com ferramentas externas e fontes de dados. O objetivo principal é fortalecer a segurança e a confiabilidade dos sistemas de IA, garantindo que eles possam ser usados de forma segura e responsável. A aplicação dessas medidas preventivas é essencial para proteger os dados e a integridade dos sistemas de IA, que são cada vez mais integrados em nossas vidas diárias.
Contexto
Esta lista de verificação de segurança é escrita e mantida por @SlowMist_Team, dedicada a aprimorar a segurança do ecossistema blockchain e IA. Agradecemos à FENZ.AI por suas valiosas contribuições para esta lista. A colaboração de especialistas de diferentes áreas é essencial para garantir que a lista de verificação seja abrangente e atualizada com as últimas ameaças e melhores práticas de segurança. A segurança em IA é um campo em constante evolução, e o trabalho conjunto é fundamental para enfrentar os desafios complexos que surgem.
Visão Geral
Desde seu lançamento no final de 2024, o MCP tem sido amplamente adotado em aplicativos de IA convencionais, como Claude Desktop, Cursor e outros. No entanto, a rápida adoção do MCP também trouxe novos desafios de segurança. A arquitetura MCP atual consiste em três partes: Host (o ambiente de aplicação de IA executado localmente), Client (o componente responsável por se comunicar com o Servidor e invocar ferramentas) e Servidor (o back-end correspondente ao plugin MCP). Os usuários interagem com a IA através do Host, o Client analisa e encaminha as solicitações do usuário para o Servidor MCP, executando invocações de ferramentas ou acesso a recursos. Em cenários onde múltiplas instâncias e componentes operam colaborativamente, essa arquitetura expõe uma série de riscos de segurança, particularmente em situações sensíveis envolvendo transações de criptomoedas ou adaptação de plugins personalizados de LLM. Nesses contextos, os riscos são ainda mais acentuados, exigindo medidas de segurança adequadas para gerenciamento. A complexidade da arquitetura MCP exige uma abordagem de segurança multicamadas para mitigar as vulnerabilidades e proteger os dados sensíveis.
Portanto, é crucial desenvolver e seguir uma lista de verificação de segurança MCP abrangente. Esta lista abrange a interface de interação do usuário, componentes do cliente, plugins de serviço, mecanismos de colaboração multi-MCP e pontos de segurança específicos do domínio (como cenários de criptomoedas). O objetivo é ajudar os desenvolvedores a identificar sistematicamente os riscos potenciais e tomar medidas preventivas oportunas. Ao implementar essas medidas de segurança, a estabilidade geral e a controlabilidade dos sistemas MCP podem ser efetivamente aprimoradas, garantindo que os aplicativos de IA em rápido desenvolvimento também tenham sua segurança garantida simultaneamente. Uma abordagem proativa e sistemática para a segurança é essencial para construir sistemas de IA confiáveis e resilientes.
Como Usar
Esta lista de verificação é baseada em potenciais pontos de risco encontrados durante as auditorias de projetos MCP e visa ajudar os desenvolvedores a garantir a segurança de suas implementações MCP. Utilizamos três níveis de prioridade para indicar a importância dos itens:
- 🟢️ Indica itens recomendados, mas que podem ser omitidos em situações específicas.
- 🔶 Indica itens fortemente recomendados, mas que podem ser omitidos em circunstâncias especiais. A omissão pode ter um impacto negativo na segurança.
- 🟥️ Indica itens que não podem ser omitidos sob nenhuma circunstância. A remoção desses elementos pode levar a falhas no sistema ou vulnerabilidades de segurança.
Segurança do Servidor MCP (Plugin MCP)
Os serviços MCP são serviços externos que fornecem ferramentas, recursos e funcionalidades para invocações de IA. Eles geralmente contêm recursos, ferramentas e prompts. Abaixo estão as considerações para garantir a segurança do servidor MCP:
Segurança da API
- Validação de Entrada: 🟥️ Valide rigorosamente todas as entradas da API para evitar ataques de injeção e parâmetros ilegais. Isso inclui verificar tipos de dados, comprimentos e formatos e limpar e escapar entradas. Uma validação robusta é a primeira linha de defesa contra ataques maliciosos e dados corrompidos.
- Limitação de Taxa de API: 🔶 Implemente limites de taxa de chamadas de API para evitar abuso e ataques. Isso pode impedir que usuários mal-intencionados sobrecarreguem o servidor enviando um grande número de solicitações. A limitação de taxa é essencial para manter a disponibilidade e a estabilidade do serviço.
- Codificação de Saída: 🔶 Codifique corretamente as saídas da API para evitar ataques de Cross-Site Scripting (XSS). Isso inclui codificar saídas como HTML, JavaScript e URLs. A codificação de saída garante que os dados exibidos aos usuários não contenham código malicioso.
Autenticação e Autorização do Servidor
- Controle de Acesso: 🟥️ Implemente controle de acesso baseado em funções para restringir o acesso a recursos e implementar o princípio do menor privilégio. Apenas usuários autorizados devem acessar recursos específicos. O controle de acesso baseado em funções garante que os usuários tenham apenas as permissões necessárias para realizar suas tarefas.
- Gerenciamento de Credenciais: 🟥️ Gerencie e armazene com segurança as credenciais de serviço, evite codificá-las e use serviços de gerenciamento de chaves. Isso inclui usar criptografia para armazenar credenciais e rotacionar credenciais regularmente. O gerenciamento adequado de credenciais é fundamental para proteger os dados sensíveis e evitar o acesso não autorizado.
- Autenticação de Serviço Externo: 🟥️ Use métodos seguros para autenticar em serviços de terceiros. Isso inclui usar protocolos seguros como OAuth 2.0 ou SAML. A autenticação segura em serviços externos garante que apenas serviços confiáveis possam acessar os recursos do servidor.
- Menor Privilégio: 🔶 Os processos de serviço devem ser executados com o mínimo de privilégios necessários, reduzindo a potencial superfície de ataque e os riscos de escalonamento de privilégios. Isso significa que o serviço deve ter apenas as permissões necessárias para executar suas funções. O princípio do menor privilégio é um conceito fundamental em segurança que ajuda a limitar o impacto de uma possível violação.
- Rotação de Chaves de API: 🔶 Rotacione automaticamente as chaves de API e as credenciais de serviço regularmente, limitando a validade da chave. Isso pode reduzir o risco de roubo de chaves. A rotação regular de chaves é uma prática recomendada para reduzir o risco de acesso não autorizado devido a chaves comprometidas.
- Autenticação de Serviço: 🔶 Forneça mecanismos para as ferramentas verificarem a identidade do serviço, facilitando a verificação e o uso seguro pelos clientes. Isso pode ajudar os clientes a verificar se estão se comunicando com um serviço confiável. A autenticação de serviço permite que os clientes verifiquem a identidade do serviço antes de enviar dados sensíveis.
Controle de Persistência de Back-end
- Gerenciamento do Ciclo de Vida: 🟥️ Implemente um gerenciamento rigoroso do ciclo de vida do plugin MCP, sincronizado com o cliente. Os plugins devem ser iniciados e interrompidos corretamente quando não forem mais necessários. O gerenciamento adequado do ciclo de vida evita que os plugins consumam recursos desnecessariamente e garante que eles sejam desativados quando não forem mais necessários.
- Limpeza de Desligamento: 🟥️ Limpe à força todos os processos de back-end do MCP quando o cliente for fechado. Isso pode impedir que plugins maliciosos continuem sendo executados após o fechamento do cliente. A limpeza de desligamento garante que todos os processos associados ao plugin sejam encerrados quando o cliente for fechado, evitando que eles consumam recursos ou representem um risco de segurança.
- Mecanismo de Verificação de Saúde: 🔶 Verifique regularmente o status do plugin MCP para identificar persistência incomum. Isso pode ajudar a identificar plugins que não estão funcionando corretamente. Um mecanismo de verificação de saúde permite que o sistema monitore o status dos plugins e identifique problemas antes que eles causem interrupções.
- Monitoramento de Atividade de Back-end: 🔶 Monitore e registre todas as atividades de back-end do MCP. Isso pode ajudar a identificar atividades maliciosas. O monitoramento de atividade fornece visibilidade das operações do plugin e permite que os administradores identifiquem atividades suspeitas.
- Restrições de Atividade: 🔶 Restrinja os tipos e a duração das ações que os plugins MCP podem executar em segundo plano. Isso pode reduzir os danos causados por plugins maliciosos. As restrições de atividade limitam o escopo das ações que um plugin pode realizar, reduzindo o impacto potencial de uma vulnerabilidade.
Segurança de Implantação e Tempo de Execução
- Ambiente Isolado: 🟥️ Os serviços são executados em ambientes isolados (contêineres, VMs, sandboxes) para evitar escape e ataques de movimentação lateral. Isso pode impedir que serviços maliciosos afetem outros serviços ou sistemas. A execução em um ambiente isolado limita o impacto de uma possível violação e impede que os atacantes se movam lateralmente para outros sistemas.
- Segurança do Contêiner: 🟥️ Use configurações de segurança de contêiner reforçadas e execute com usuários não root, implemente infraestrutura imutável e proteção em tempo de execução. Isso pode aumentar a segurança dos contêineres. A segurança do contêiner garante que os contêineres sejam executados em um ambiente seguro e que seus recursos sejam protegidos contra acesso não autorizado.
- Inicialização Segura: 🔶 Verifique a integridade do processo de inicialização do serviço, implemente cadeia de inicialização segura e verificação de integridade. Isso pode impedir que serviços maliciosos sejam injetados na inicialização. A inicialização segura garante que o sistema seja iniciado com código confiável e que nenhuma alteração não autorizada tenha sido feita.
- Segurança de Variáveis de Ambiente: 🔶 As variáveis de ambiente sensíveis são protegidas e não vazadas em logs. Isso pode impedir que usuários maliciosos acessem informações sensíveis. A proteção de variáveis de ambiente sensíveis evita que informações confidenciais sejam expostas em logs ou outros canais não seguros.
- Limites de Recursos: 🔶 Implemente limites de uso de recursos para evitar chamadas repetidas em loop em grandes modelos devido a erros. Isso pode impedir que serviços maliciosos esgotem os recursos do sistema. Os limites de recursos garantem que os serviços não consumam mais recursos do que o necessário, evitando que eles causem interrupções ou afetem o desempenho de outros serviços.
Integridade de Código e Dados
- Mecanismo de Verificação de Integridade: 🟥️ Use assinaturas digitais, verificações de hash e outros mecanismos para garantir que o código não tenha sido adulterado. Isso pode impedir que usuários maliciosos modifiquem o código. A verificação de integridade garante que o código executado seja o código pretendido e que nenhuma alteração não autorizada tenha sido feita.
- Verificação Remota: 🔶 Suporte a mecanismos para verificação remota da integridade do código. Isso permite que usuários remotos verifiquem se o código foi adulterado. A verificação remota permite que os usuários verifiquem a integridade do código sem precisar acessar o sistema localmente.
- Ofuscação e Reforço de Código: 🟢️ Aplique técnicas de ofuscação e reforço de código para aumentar a dificuldade de engenharia reversa. Isso pode tornar mais difícil para usuários maliciosos entender e modificar o código. A ofuscação e o reforço de código dificultam a análise do código por atacantes, aumentando o custo e o tempo necessários para identificar vulnerabilidades.
Segurança da Cadeia de Suprimentos
- Gerenciamento de Dependências: 🟥️ Gerencie com segurança as dependências de terceiros. Isso inclui rastrear dependências, garantir que estejam atualizadas e digitalizá-las em busca de vulnerabilidades. O gerenciamento adequado de dependências é fundamental para proteger o sistema contra vulnerabilidades em bibliotecas de terceiros.
- Integridade do Pacote: 🟥️ Verifique a integridade e a autenticidade do pacote. Isso pode impedir que usuários maliciosos injetem pacotes maliciosos. A verificação de integridade do pacote garante que os pacotes instalados sejam os pacotes pretendidos e que nenhuma alteração não autorizada tenha sido feita.
- Verificação de Origem: 🔶 Verifique a origem de todo o código e dependências. Isso pode ajudar a garantir que o código venha de uma fonte confiável. A verificação de origem permite que os usuários verifiquem a identidade do autor do código e garantam que ele seja de uma fonte confiável.
- Segurança de Construção: 🔶 Garanta que o processo de construção seja seguro. Isso inclui o uso de ferramentas de construção seguras e garantir que o ambiente de construção seja seguro. A segurança de construção garante que o código seja construído em um ambiente seguro e que nenhuma alteração não autorizada tenha sido feita durante o processo de construção.
Monitoramento e Registro
- Detecção de Anomalias: 🟥️ Detecte e relate padrões de atividade incomuns. Isso pode ajudar a identificar atividades maliciosas. A detecção de anomalias permite que o sistema identifique atividades suspeitas que podem indicar um ataque.
- Registro Detalhado: 🟥️ Registre todas as atividades de serviço e eventos de segurança. Isso pode ajudar a investigar incidentes de segurança. O registro detalhado fornece visibilidade das operações do sistema e permite que os administradores investiguem incidentes de segurança.
- Alertas de Incidentes de Segurança: 🟥️ Configure alertas em tempo real para eventos de segurança críticos. Isso pode ajudar a responder a incidentes de segurança em tempo hábil. Os alertas de incidentes de segurança permitem que os administradores sejam notificados quando um evento suspeito ocorre.
- Gerenciamento Centralizado de Logs: 🔶 Colete e analise logs centralizadamente. Isso pode fornecer uma visão mais abrangente dos incidentes de segurança. O gerenciamento centralizado de logs facilita a análise dos logs e a identificação de padrões de ataque.
- Integridade do Log: 🔶 Garanta a integridade do log para evitar adulteração. Isso pode impedir que usuários maliciosos excluam ou modifiquem logs. A integridade do log garante que os logs não sejam alterados ou excluídos por atacantes.
- Capacidade de Auditoria: 🔶 Suporte a auditoria detalhada e investigação de eventos. Isso pode ajudar a determinar a causa de incidentes de segurança. A capacidade de auditoria permite que os administradores rastreiem as ações dos usuários e identifiquem a causa de incidentes de segurança.
Isolamento do Ambiente de Chamada
- Isolamento Entre MCPs: 🟥️ Garanta o isolamento operacional entre vários serviços MCP. Isso pode impedir que um serviço MCP malicioso afete outros serviços MCP. O isolamento entre MCPs impede que um serviço malicioso interfira com o funcionamento de outros serviços.
- Controle de Acesso a Recursos: 🟥️ Atribua limites claros de permissão de acesso a recursos para cada serviço MCP. Isso pode restringir os recursos que um serviço MCP malicioso pode acessar. O controle de acesso a recursos limita o escopo das ações que um plugin pode realizar, reduzindo o impacto potencial de uma vulnerabilidade.
- Separação de Permissões de Ferramentas: 🔶 Ferramentas em diferentes domínios usam diferentes conjuntos de permissões. Isso pode reduzir os danos causados por ferramentas maliciosas. A separação de permissões garante que as ferramentas tenham apenas as permissões necessárias para realizar suas tarefas, reduzindo o risco de abuso.
Compatibilidade de Plataforma e Segurança
- Isolamento de Recursos do Sistema: 🟥️ Implemente políticas de isolamento de recursos apropriadas com base nas características de diferentes sistemas operacionais. Isso pode impedir que serviços maliciosos afetem outros serviços ousistemas. O isolamento de recursos do sistema impede que um serviço consuma mais recursos do que o necessário, afetando o desempenho de outros serviços.
- Teste de Compatibilidade Multiplataforma: 🔶 Teste a consistência do comportamento de segurança do serviço MCP em diferentes sistemas operacionais e clientes. Isso pode garantir que o serviço seja seguro em todas as plataformas. O teste de compatibilidade garante que o serviço funcione corretamente em diferentes ambientes.
- Avaliação de Risco Específico da Plataforma: 🔶 Avalie os riscos de segurança exclusivos e as medidas de mitigação de plataformas específicas. Isso pode ajudar a identificar e mitigar riscos de segurança específicos da plataforma. A avaliação de risco específico da plataforma permite que os administradores identifiquem e abordem os riscos de segurança exclusivos de cada plataforma.
- Manipulação de Diferenças do Cliente: 🔶 Garanta que os controles de segurança possam se adaptar às diferenças nas várias implementações do cliente. Isso pode garantir que o serviço seja seguro com todos os clientes. A manipulação de diferenças do cliente garante que o serviço funcione corretamente com diferentes clientes.
Segurança e Privacidade de Dados
- Minimização de Dados: 🟥️ Colete e processe apenas os dados necessários. Isso pode reduzir o risco de vazamento de dados. A minimização de dados reduz o risco de exposição de dados sensíveis.
- Criptografia de Dados: 🟥️ Dados sensíveis são criptografados em armazenamento e trânsito. Isso pode impedir que usuários maliciosos acessem informações sensíveis. A criptografia de dados protege os dados contra acesso não autorizado.
- Isolamento de Dados: 🟥️ Os dados de diferentes usuários são efetivamente isolados. Isso pode impedir que usuários maliciosos acessem os dados de outros usuários. O isolamento de dados garante que os dados de cada usuário sejam armazenados e processados separadamente.
- Controle de Acesso a Dados: 🟥️ Implemente controles de acesso a dados rigorosos. Isso pode restringir o acesso a dados. O controle de acesso a dados garante que apenas os usuários autorizados possam acessar os dados.
- Identificação de Dados Sensíveis: 🟥️ Identifique e manuseie automaticamente dados sensíveis de forma especial. Isso pode ajudar a evitar vazamentos de dados sensíveis. A identificação de dados sensíveis permite que o sistema aplique controles de segurança apropriados aos dados sensíveis.
Segurança de Recursos
- Controle de Acesso a Recursos: 🟥️ Implemente controle de acesso granular a recursos. Isso pode restringir o acesso a recursos específicos. O controle de acesso a recursos garante que apenas os usuários autorizados possam acessar os recursos.
- Limites de Recursos: 🔶 Limite o tamanho e a quantidade de recursos individuais. Isso pode impedir que usuários maliciosos esgotem os recursos do sistema. Os limites de recursos garantem que os recursos sejam usados de forma eficiente.
- Segurança de Modelo de Recurso: 🔶 Garanta que os parâmetros do modelo de recurso sejam validados e limpos. Isso pode impedir que usuários maliciosos injetem código malicioso. A segurança de modelo de recurso protege o sistema contra injeção de código malicioso.
- Marcação de Recursos Sensíveis: 🔶 Marque e manuseie recursos sensíveis de forma especial. Isso pode ajudar a evitar vazamentos de recursos sensíveis. A marcação de recursos sensíveis permite que o sistema aplique controles de segurança apropriados aos recursos sensíveis.
Segurança da Implementação da Ferramenta
- Práticas de Codificação Segura: 🟥️ Siga padrões de codificação segura e práticas recomendadas. Isso pode reduzir o número de vulnerabilidades no código. As práticas de codificação segura ajudam a prevenir vulnerabilidades no código.
- Isolamento da Ferramenta: 🟥️ A execução da ferramenta ocorre em um ambiente controlado para evitar impacto no nível do sistema. Isso pode impedir que ferramentas maliciosas afetem outros serviços ou sistemas. O isolamento da ferramenta impede que uma ferramenta maliciosa interfira com o funcionamento de outros sistemas.
- Validação de Entrada: 🟥️ Valide rigorosamente todas as entradas do cliente. Isso pode impedir que usuários maliciosos injetem código malicioso. A validação de entrada garante que os dados recebidos do cliente sejam válidos e seguros.
- Controle de Permissão da Ferramenta: 🟥️ Cada ferramenta possui apenas as permissões mínimas necessárias para concluir suas tarefas. Isso pode reduzir os danos causados por ferramentas maliciosas. O controle de permissão da ferramenta garante que as ferramentas tenham apenas as permissões necessárias para realizar suas tarefas.
- Validação de Dados: 🟥️ Valide os dados processados pelas ferramentas para evitar injeção e adulteração. Isso pode impedir que usuários maliciosos injetem dados maliciosos. A validação de dados garante que os dados processados pelas ferramentas sejam válidos e seguros.
- Restrições de Comportamento da Ferramenta: 🟥️ Restrinja o escopo e o tipo de ações que as ferramentas podem executar. Isso pode reduzir os danos causados por ferramentas maliciosas. As restrições de comportamento da ferramenta limitam as ações que uma ferramenta pode realizar, reduzindo o risco de abuso.
- Segurança de Informações de Retorno da Interface de Terceiros: 🟥️ Verifique se as informações de retorno da interface atendem às expectativas e não insira as informações de retorno diretamente no contexto. Isso pode impedir que ferramentas maliciosas explorem interfaces de terceiros. A segurança de informações de retorno da interface garante que as informações retornadas por interfaces de terceiros sejam seguras e não possam ser usadas para comprometer o sistema.
- Tratamento de Erros: 🔶 Manuseie erros com segurança sem vazar informações sensíveis. Isso pode impedir que usuários maliciosos explorem informações de erro. O tratamento seguro de erros evita a exposição de informações sensíveis.
- Isolamento de Namespace: 🔶 Implemente um isolamento de namespace rigoroso para diferentes ferramentas. Isso pode impedir conflitos entre ferramentas. O isolamento de namespace garante que as ferramentas não interfiram umas com as outras.
Segurança do Cliente MCP/ Segurança do Host MCP
O host é o ambiente onde o aplicativo de IA e o cliente MCP são executados e é o ponto de entrada para os usuários finais interagirem com o sistema de IA. O cliente é um componente dentro do aplicativo de IA responsável por se comunicar com os serviços MCP, lidar com o contexto, invocações de ferramentas e exibição de resultados. Abaixo estão considerações para proteger o cliente e o host MCP:
Segurança da Interação do Usuário
- Segurança da Interface do Usuário: 🟥️ A interface do usuário exibe claramente o escopo de permissões e o impacto potencial das operações de IA, fornecendo indicadores de segurança intuitivos. Isso pode ajudar os usuários a entender as permissões que estão concedendo à IA. Uma interface do usuário segura e intuitiva ajuda os usuários a tomar decisões informadas sobre as permissões que concedem à IA.
- Confirmação de Operação Sensível: 🟥️ Operações de alto risco (como exclusão de arquivos, transferência de fundos) exigem confirmação explícita do usuário. Isso pode impedir que os usuários executem acidentalmente operações de alto risco. A confirmação explícita do usuário garante que os usuários estejam cientes das operações de alto risco que estão executando.
- Solicitação de Permissão Transparente: 🟥️ As solicitações de permissão explicam claramente o propósito e o escopo, ajudando os usuários a tomar decisões informadas e evitar autorização excessiva. Isso pode ajudar os usuários a entender as permissões que estão concedendo à IA. A transparência nas solicitações de permissão ajuda os usuários a tomar decisões informadas sobre as permissões que concedem à IA.
- Visualização da Operação: 🔶 As invocações de ferramentas e o acesso a dados são visíveis e auditáveis para os usuários, fornecendo logs de operação detalhados. Isso pode ajudar os usuários a entender as operações que a IA está executando. A visualização da operação permite que os usuários vejam as operações que a IA está executando e investiguem incidentes de segurança.
- Transparência das Informações: 🔶 A ferramenta deve permitir que os usuários exibam ou não tags ocultas por padrão, garantindo que o contexto que o usuário vê e o contexto realmente gerado e chamado sejam completos e consistentes para evitar a existência de lógica maliciosa em tags ocultas. A transparência das informações ajuda os usuários a entender o contexto em que a IA está operando e a detectar possíveis manipulações.
- Feedback de Status: 🔶 Os usuários podem entender claramente a operação MCP atualmente em execução. O feedback de status fornece aos usuários informações sobre as operações que a IA está executando e ajuda a garantir que eles estejam cientes das atividades do sistema.
Controle e Monitoramento de IA
- Registro de Operação: 🟥️ Registre todas as operações de IA importantes e seus resultados. Isso pode ajudar a investigar incidentes de segurança. O registro de operação fornece visibilidade das ações da IA e permite que os administradores investiguem incidentes de segurança.
- Detecção de Anomalias: 🔶 Detecte padrões de invocação de ferramenta ou sequências de solicitação incomuns. Isso pode ajudar a identificar atividades maliciosas. A detecção de anomalias permite que o sistema identifique atividades suspeitas que podem indicar um ataque.
- Limites de Chamada de Ferramenta: 🔶 Implemente limites na frequência e quantidade de chamadas de ferramenta. Isso pode impedir que usuários maliciosos abusem das ferramentas. Os limites de chamada de ferramenta ajudam a proteger o sistema contra abuso e garantem que as ferramentas sejam usadas de forma eficiente.
Segurança de Armazenamento Local
- Armazenamento Seguro de Credenciais: 🟥️ Use o keychain do sistema ou armazenamento criptografado dedicado para proteger as credenciais de autenticação para proteger as credenciais de acesso não autorizado. Isso pode impedir que usuários maliciosos acessem credenciais. O armazenamento seguro de credenciais protege as credenciais de autenticação contra acesso não autorizado.
- Isolamento de Dados Sensíveis: 🔶 Implemente um mecanismo de isolamento de dados para armazenar e processar dados sensíveis do usuário separadamente dos dados comuns. Isso pode impedir que usuários maliciosos acessem dados sensíveis. O isolamento de dados sensíveis protege os dados sensíveis contra acesso não autorizado.
Segurança do Aplicativo
- Integridade do Aplicativo: 🟥️ Verifique a integridade do aplicativo e dos plugins MCP para evitar adulteração. Isso pode impedir que usuários maliciosos modifiquem o aplicativo. A integridade do aplicativo garante que o aplicativo não tenha sido adulterado.
- Verificação de Atualização: 🔶 As atualizações do aplicativo Host são verificadas por assinatura digital. Isso pode garantir que as atualizações venham de uma fonte confiável. A verificação de atualização garante que as atualizações do aplicativo venham de uma fonte confiável.
- Sandbox do Aplicativo: 🟢️ Tente executar o aplicativo em um ambiente sandbox para restringir o acesso ao sistema. Isso pode reduzir os danos causados por aplicativos maliciosos. O sandbox do aplicativo limita o acesso do aplicativo ao sistema e reduz o risco de danos.
Autenticação e Autorização do Cliente
- Autenticação Obrigatória: 🟥️ Aplique a autenticação antes de se comunicar com qualquer serviço MCP importante para evitar acesso anônimo. Isso pode impedir que usuários não autorizados acessem serviços. A autenticação obrigatória garante que apenas os usuários autorizados possam acessar serviços.
- Implementação OAuth: 🔶 Implemente corretamente o fluxo OAuth 2.1 ou superior, seguindo as melhores práticas e padrões de segurança. Isso pode garantir que a autenticação seja segura. A implementação correta do OAuth garante que a autenticação seja segura e que os usuários possam conceder acesso aos seus recursos sem compartilhar suas senhas.
- Parâmetro de Status: 🔶 Para alguns clientes da web, implemente o parâmetro de estado para evitar ataques CSRF e use um valor aleatório exclusivo para cada solicitação. Isso pode impedir ataques de Cross-Site Request Forgery (CSRF). O parâmetro de estado ajuda a proteger contra ataques CSRF.
Ferramentas e Gerenciamento de Servidores MCP
- Verificação de Ferramenta MCP: 🟥️ Verifique a autenticidade e integridade das ferramentas registradas. Isso pode impedir que ferramentas maliciosas sejam registradas. A verificação de ferramenta MCP garante que apenas ferramentas confiáveis sejam registradas.
- Atualizações de Segurança: 🟥️ O cliente MCP verifica e aplica regularmente as atualizações de segurança e verifica se as ferramentas atualizadas contêm descrições maliciosas. Isso garante que as ferramentas estejam atualizadas e não contenham código malicioso. As atualizações de segurança garantem que as ferramentas estejam atualizadas e não contenham código malicioso.
- Verificação de Nome de Função: 🟥️ Verifique conflitos de nome e potencial cobertura maliciosa antes de registrar uma ferramenta. Isso pode impedir que ferramentas maliciosas substituam ferramentas existentes. A verificação de nome de função evita conflitos de nome e protege contra cobertura maliciosa.
- Detecção de MCP Malicioso: 🟥️ Monitore e identifique padrões de comportamento MCP potencialmente maliciosos. Isso pode ajudar a identificar MCPs maliciosos. A detecção de MCP malicioso ajuda a identificar e mitigar ameaças.
- Controle de Nomeação de Ferramentas MCP: 🔶 Use namespaces ou identificadores exclusivos para evitar conflitos de nomeação. Isso pode impedir conflitos entre ferramentas. O controle de nomeação de ferramentas MCP evita conflitos de nomeação.
- Catálogo de Serviços: 🔶 Mantenha um diretório autorizado de serviços e ferramentas MCP confiáveis. Isso pode ajudar os usuários a encontrar serviços confiáveis. O catálogo de serviços ajuda os usuários a encontrar serviços confiáveis.
- Resolução de Conflitos: 🔶 Existem regras claras para resolver conflitos de ferramentas com o mesmo nome. A resolução de conflitos garante que conflitos de ferramentas sejam resolvidos de forma consistente e segura.
- Isolamento de Domínio: 🔶 As ferramentas de diferentes domínios são isoladas umas das outras para evitar influências cruzadas. O isolamento de domínio impede que as ferramentas interfiram umas com as outras.
- Mecanismo de Prioridade: 🔶 Estabeleça regras claras de prioridade de função para evitar substituições maliciosas. O mecanismo de prioridade garante que as funções sejam executadas na ordem correta.
- Controle de Versão: 🔶 Implemente controle de versão para funções e ferramentas para detectar alterações. O controle de versão permite que os administradores rastreiem as alterações nas funções e ferramentas e revertam para versões anteriores se necessário.
- Mecanismos de Registro e Cancelamento de Ferramentas: 🔶 Defina processos claros para registrar e cancelar ferramentas para evitar riscos de segurança de ferramentas legadas. Os mecanismos de registro e cancelamento de ferramentas garantem que apenas as ferramentas autorizadas sejam registradas e que as ferramentas legadas sejam removidas.
- Mecanismo de Detecção de Conflitos: 🔶 Detecte e resolva conflitos de função e recursos em um ambiente multi-MCP. O mecanismo de detecção de conflitos ajuda a resolver conflitos em um ambiente multi-MCP.
- Classificação de Ferramentas: 🟢️ Classifique as ferramentas com base na sensibilidade e no nível de risco. A classificação de ferramentas ajuda a aplicar controles de segurança apropriados às ferramentas.
Segurança do Prompt
- Defesa contra Injeção de Prompt: 🟥️ Implemente medidas de defesa em várias camadas para evitar ataques de injeção de prompt, incluindo verificação manual de execuções críticas. A defesa contra injeção de prompt protege o sistema contra manipulação por meio de prompts maliciosos.
- Detecção de Instrução Maliciosa: 🟥️ Estabeleça um mecanismo para detectar e bloquear instruções de usuário potencialmente maliciosas para evitar que o sistema seja manipulado, como a detecção e o bloqueio de instruções maliciosas pré-carregadas durante a inicialização local e instruções prejudiciais ocultas contidas em ferramentas maliciosas do servidor MCP de terceiros. A detecção de instrução maliciosa ajuda a proteger o sistema contra manipulação por meio de instruções maliciosas.
- Proteção de Prompt do Sistema: 🟥️ O prompt do sistema é claramente separado da entrada do usuário para evitar adulteração. A proteção de prompt do sistema garante que o prompt do sistema não possa ser adulterado pelo usuário.
- Filtragem de Dados Sensíveis: 🟥️ Filtre dados pessoais sensíveis de prompts e contextos. A filtragem de dados sensíveis protege os dados pessoais contra exposição.
- Isolamento de Contexto: 🔶 Garanta que o conteúdo do contexto de diferentes fontes seja isolado um do outro para evitar poluição e vazamento de informações do contexto. O isolamento de contexto impede que o conteúdo do contexto de diferentes fontes interfira um com o outro.
- Modelos de Prompt: 🔶 Use modelos de prompt seguros para reduzir o risco de injeção. Os modelos de prompt ajudam a prevenir ataques de injeção.
- Verificação da Descrição da Ferramenta: 🔶 Verifique se há instruções potencialmente maliciosas na descrição da ferramenta. A verificação da descrição da ferramenta ajuda a identificar e mitigar ameaças.
- Verificação da Consistência do Prompt: 🔶 Garanta que o mesmo prompt produza resultados consistentes e previsíveis em diferentes ambientes. A verificação da consistência do prompt garante que o sistema se comporte de forma consistente e previsível.
- Gerenciamento de Contexto Histórico: 🔶 Defina um mecanismo claro de limpeza segura do contexto histórico para evitar riscos de vazamento de informações causados pelo acúmulo de dados antigos. O gerenciamento de contexto histórico protege o sistema contra vazamento de informações.
Logs e Auditoria
- Registro de Log do Cliente: 🟥️ Registre todas as interações, invocações de ferramenta e atividades de autorização com serviços MCP. O registro de log do cliente fornece visibilidade das atividades do cliente.
- Registro de Evento de Segurança: 🟥️ Registre todos os eventos relacionados à segurança, incluindo falhas de autorização. O registro de evento de segurança permite que os administradores investiguem incidentes de segurança.
- Alerta de Anomalia: 🔶 Detecte e alerte padrões de atividade incomuns. Os alertas de anomalia permitem que os administradores sejam notificados quando um evento suspeito ocorre.
Segurança de Validação e Comunicação do Servidor
- Autenticação do Servidor: 🟥️ Valide a identidade do servidor MCP para evitar a conexão com servidores maliciosos, implemente o certificado fixado. A autenticação do servidor protege o sistema contra conexão com servidores maliciosos.
- Validação de Certificado: 🟥️ Valide estritamente o certificado TLS do servidor remoto para evitar ataques man-in-the-middle, verifique a integridade da cadeia de certificado. A validação de certificado protege o sistema contra ataques man-in-the-middle.
- Criptografia de Comunicação: 🟥️ Todas as comunicações cliente-servidor usam criptografia TLS 1.2+, desative conjuntos de criptografia fracos. A criptografia de comunicação protege os dados em trânsito contra acesso não autorizado.
- Configuração de Protocolo Seguro: 🔶 Configure parâmetros TLS seguros, audite e atualize algoritmos e protocolos de criptografia regularmente. A configuração de protocolo seguro garante que os protocolos de criptografia estejam atualizados e seguros.
Armazenamento e Gerenciamento de Token de Permissão
- **Limites de Escopo de