Regras de detecção
Todas as regras, com uma demonstração que você pode executar.
Todas as 54 regras. Escolha uma para ver um arquivo que a aciona, a parte que importa e o resultado que o scanner produz. Os resultados são gerados executando o scanner real, não escritos manualmente.
As demonstrações interativas precisam de JavaScript. Enquanto isso, aqui estão todas as regras.
Segurança do agente
- Payload de prompt injection — Instruções direcionadas ao agente, escondidas em um texto que o agente vai ler de qualquer forma.
- Descrição não corresponde à capacidade — Uma ferramenta que se descreve como somente leitura enquanto seus parâmetros dizem o contrário.
- Unicode invisível — Caracteres que não aparecem em lugar nenhum, mas ainda chegam ao modelo.
- Esquema de parâmetro frouxo — Uma entrada de alto risco, como uma URL ou caminho de arquivo, que aceita absolutamente qualquer coisa.
- Instrução oculta — Um comando escondido em uma parte do arquivo que a saída renderizada nunca mostra.
- Injeção no esquema — Uma instrução escondida dentro da descrição de um parâmetro, um nível abaixo da própria ferramenta.
- Contrabando por Unicode Tag — Texto escrito em caracteres Unicode Tag, que não aparecem em lugar nenhum.
- Sombreamento de ferramenta — Uma ferramenta que dá instruções sobre como uma ferramenta diferente deve se comportar.
- Pedido de escalonamento de permissão — Pede à pessoa, não à máquina, para reduzir uma defesa.
- Baliza de imagem em markdown — Uma imagem em markdown cujo endereço carrega dados para fora quando a resposta é exibida.
- Resultado de ferramenta forjado — Texto formatado como a saída de uma ferramenta que nunca rodou.
- Envenenamento de memória — Escreve instruções em um arquivo que o agente lê no início de cada sessão.
- Gatilho adiado — Se comporta normalmente no início, depois faz outra coisa mais tarde.
- Injeção na cadeia de agentes — Uma instrução endereçada ao próximo agente da cadeia, não ao usuário.
- Deputado confuso — Uma ferramenta sem permissões especiais direcionando o agente a usar outra que as tem.
- Extração do prompt de sistema — Pede ao agente para revelar suas próprias instruções e ferramentas.
- Acesso ao histórico de conversa — Pede o histórico da conversa sem que sua descrição dê um motivo.
- Instrução em uma mensagem de erro — Uma instrução escondida em um erro, lida exatamente no momento em que ninguém olha de perto.
Exfiltração
- Padrão de exfiltração — Uma ferramenta que lida com segredos e também pode enviar dados para fora.
- Coletor de webhook — Um endereço fixo no código cujo único propósito é coletar o que for enviado a ele.
- Exfiltração por DNS — Dados codificados nos nomes de consultas de domínio.
- Fluxo de capacidade tóxico — Uma única ferramenta que lê dados privados e também pode publicá-los para fora.
- Chamada de rede em uma ferramenta "offline" — Diz que nunca usa a rede. Usa a rede.
Credenciais
- Segredo fixo no código — Uma credencial escrita diretamente em um arquivo.
- Acesso ao armazenamento de credenciais — Lê um arquivo cujo único propósito é armazenar credenciais.
- Acesso a metadados de nuvem — Pede ao provedor de nuvem as credenciais que ele entrega a qualquer coisa que peça.
- Acesso ao histórico do shell — Lê o registro de comandos digitados em um terminal.
- Credencial em config MCP — Um token ativo colado em um arquivo de config MCP.
- Segredo escrito em logs — Uma credencial impressa em algum lugar onde vai ficar guardada por tempo demais.
- Configuração incorreta de OAuth — OAuth configurado de um jeito que remove a proteção para a qual foi criado.
Cadeia de suprimentos
- Instalação externa não confiável — Instruções de configuração dizendo para você baixar algo e executá-lo.
- Servidor MCP não fixado — Um servidor que pode virar um software diferente sem você fazer nada.
- Servidor MCP com vulnerabilidade conhecida — Uma versão fixada com um aviso de segurança publicado.
- Falsificação de pacote MCP — Um nome de pacote a um caractere de distância do que você queria.
- Hook de script de instalação — Um comando vindo da internet que roda no momento em que o pacote é instalado.
- Confusão de dependências — Um pacote público com o mesmo nome de um dos seus pacotes privados.
- Dependência vulnerável — Uma dependência declarada dentro do intervalo afetado de um aviso de segurança publicado.
- Procedência ausente — Um download instalado sem verificar se é o arquivo genuíno.
- Nome de ferramenta com homóglifo — Dois nomes de ferramentas que parecem idênticos na tela, mas não são o mesmo texto.
- Nome de ferramenta duplicado — O mesmo nome de ferramenta declarado em dois arquivos diferentes.
- Servidor MCP oculto (shadow) — Servidores MCP que seu agente pode usar, mas que a config do seu projeto não declara.
- Mutação do conjunto de ferramentas — Uma ferramenta que você já viu antes, agora entregue a partir de um arquivo diferente e alterada.
- Mudança no manifesto — Uma ferramenta que você já revisou, alterada silenciosamente depois.
Execução
- Permissões excessivas — Uma ferramenta que pede muito mais acesso do que sua função poderia precisar.
- Execução dinâmica — Código montado em tempo de execução a partir de algo que foi entregue ao agente.
- Payload opaco — Algo empacotado junto com uma skill que ninguém consegue ler — aqui, um programa disfarçado de arquivo comum.
- Auto-aprovação do MCP — Um servidor MCP configurado para executar qualquer ferramenta sem perguntar.
- Comando de inicialização MCP amplo demais — Um comando de inicialização que entrega ao servidor mais do que ele precisa.
- Superfície de injeção STDIO do MCP — Um servidor no transporte STDIO do MCP, onde valores de configuração viram um comando executado pelo host.
- Mecanismo de persistência — Se escreve em algum lugar que sobrevive a uma reinicialização.
- Fuga de sandbox — Referencia uma forma de escapar do container em que roda.
- Remontagem de string — Monta uma palavra perigosa a partir de fragmentos para que uma busca por ela não encontre nada.
- Superfície de injeção de comandos — Um comando de shell construído colando um valor fornecido em tempo de execução.
- CORS permissivo — Um servidor HTTP que permite que qualquer site o chame.
OWASP MCP Top 10
Cobertura em todas as dez categorias.
Cada regra corresponde a pelo menos uma categoria do OWASP MCP Top 10, que ainda está em beta. Algumas regras cobrem mais de uma categoria, então a soma passa do número total de regras. Falta de auditoria e telemetria tem uma regra só, e deveria ser assim: o registro de logs é um problema que um scanner pode apontar, não resolver.
| Categoria | Nome | Regras | Cobertura relativa |
|---|---|---|---|
| MCP01 | Gestão inadequada de tokens e exposição de segredos | 7 | |
| MCP02 | Escalonamento de privilégios por expansão de escopo | 7 | |
| MCP03 | Envenenamento de ferramentas | 13 | |
| MCP04 | Ataques à cadeia de suprimentos de software e adulteração de dependências | 13 | |
| MCP05 | Injeção e execução de comandos | 8 | |
| MCP06 | Subversão do fluxo de intenção | 10 | |
| MCP07 | Autenticação e autorização insuficientes | 3 | |
| MCP08 | Falta de auditoria e telemetria | 1 | |
| MCP09 | Servidores MCP ocultos (shadow) | 1 | |
| MCP10 | Injeção de contexto e compartilhamento excessivo | 9 |
Execute todas as regras nos seus próprios arquivos.
O plano gratuito inclui todas as 54 regras e 20 verificações por mês.