Segurança de agentes
Agentes leem textos escritos por desconhecidos e depois agem usando suas credenciais. Esta página apresenta a regra fundamental, as duas listas OWASP de 2026, os incidentes registrados até agora e as defesas que os teriam impedido.
A tríade letal
- Acesso a dados privadosE-mails, repositórios, bancos de dados, arquivos ou qualquer outra coisa protegida pelas suas credenciais.
- Exposição a conteúdo não confiávelPáginas da web, issues, chamados de suporte, e-mails recebidos e descrições de ferramentas: qualquer texto que um atacante possa escrever.
- Capacidade de se comunicar externamenteEnviar e-mails, abrir pull requests, buscar URLs ou renderizar imagens remotas. Simon Willison deu nome a essa combinação de três partes em junho de 2025.
Se um agente reunir os três elementos, presuma que uma prompt injection pode fazê-lo entregar seus dados a um atacante. Não conte com a recusa do modelo; remova pelo menos um dos elementos de cada agente e sessão.
Checklist de segurança
22 verificações sobre entradas, ferramentas, runtime, MCP, CI e operações. Marque cada item à medida que avançar e exporte o resultado como arquivo Markdown.
Registro de incidentes
Para cada incidente público de segurança envolvendo agentes desde abril de 2025: o que aconteceu, por que o ataque funcionou e o que mudar na sua própria configuração.
Incidentes recentes
- Sequestro de sessão e acesso a tarefas de outras sessões no MCP Python SDK
- A aprovação automática do WebFetch no Claude Code permitiu exfiltrar dados via huggingface.co
- Comente e controle: texto de PR rouba secrets de agentes de CI
- MCP TypeScript SDK vazava respostas entre clientes
- ClawHavoc: centenas de skills maliciosas do ClawHub distribuíram o AMOS
OWASP Top 10 para aplicações agênticas 2026
O OWASP GenAI Security Project publicou esta lista em 9 de dezembro de 2025. Ela aborda os riscos que surgem quando um modelo faz planos, mantém memória, chama ferramentas e trabalha com outros agentes.
ASI01Desvio de objetivo do agenteUm invasor altera o objetivo do agente, geralmente por meio de instruções ocultas no conteúdo que ele lê. Então, o agente busca alcançar o objetivo do invasor usando as ferramentas e permissões do usuário.
ASI02Uso indevido e exploração de ferramentasO agente usa ferramentas legítimas de forma nociva, por exemplo, apagando registros, enviando mensagens ou encadeando chamadas, porque foi manipulado ou tem acesso a ferramentas com permissões mais amplas do que a tarefa exige.
ASI03Abuso de identidade e privilégiosAgentes agem por meio de credenciais, tokens delegados e permissões herdadas. Invasores abusam dessas identidades ou das lacunas entre elas para elevar privilégios ou agir em nome de outra pessoa.
ASI04Vulnerabilidades na cadeia de suprimentos agentivaFerramentas, servidores MCP, skills, plugins, modelos e prompts carregados durante a compilação ou em tempo de execução podem ser maliciosos ou estar comprometidos. Como os agentes carregam muitos deles dinamicamente, um componente comprometido afeta todas as sessões que o utilizam.
ASI05Execução inesperada de código (RCE)Agentes que escrevem e executam código, ou enviam saídas do modelo para shells e interpretadores, podem ser induzidos a executar no host comandos escolhidos pelo invasor.
ASI06Envenenamento de memória e contextoInvasores inserem fatos falsos ou instruções na memória do agente, em documentos recuperados ou no contexto salvo. O conteúdo malicioso persiste e influencia sessões futuras, muito depois de a entrada original desaparecer.
ASI07Comunicação insegura entre agentesAs mensagens entre agentes são transmitidas sem autenticação, verificações de integridade ou validação adequadas; por isso, podem ser falsificadas, reproduzidas ou alteradas para enganar o agente que as recebe.
ASI08Falhas em cascataUma falha, como uma entrada contaminada, um resultado incorreto de uma ferramenta ou um agente comprometido, se propaga pelos agentes conectados e pelas etapas automatizadas mais rápido do que as pessoas conseguem reagir.
ASI09Exploração da confiança entre humanos e agentesOs agentes parecem confiantes e prestativos, por isso as pessoas tendem a aprovar o que eles propõem. Atacantes exploram essa confiança para fazer alguém confirmar uma ação nociva ou revelar informações.
ASI10Agentes maliciososUm agente comprometido ou que se desviou do comportamento previsto continua agindo por conta própria, fora do escopo e da supervisão definidos para ele.
OWASP Top 10 para aplicações com LLMs 2026
Esta edição foi publicada em 4 de agosto de 2026 e substitui a lista de 2025. Excessive Agency passou do sexto para o terceiro lugar, e System Prompt Leakage foi renomeado para Hidden Context Exposure.
LLM01Injeção de promptUma entrada altera o comportamento do modelo de formas não previstas pelo desenvolvedor. Ela pode vir diretamente do usuário ou indiretamente de documentos, páginas da web e resultados de ferramentas que o modelo lê.
LLM02Exposição de informações confidenciaisO modelo ou a aplicação revela dados pessoais, credenciais, segredos comerciais ou outros materiais confidenciais na saída, obtidos dos dados de treinamento, do contexto ou de sistemas conectados.
LLM03Autonomia excessivaA aplicação dá ao modelo mais funções, permissões ou autonomia do que a tarefa exige, permitindo que uma saída manipulada ou incorreta cause danos reais. A categoria passou da sexta posição em 2025 para a terceira em 2026.
LLM04Cadeia de suprimentosModelos, conjuntos de dados, adaptadores, pacotes e plugins de terceiros podem ser adulterados ou vulneráveis, levando esses riscos para a sua aplicação.
LLM05Contaminação de dados e modelosAtacantes manipulam dados de pré-treinamento, fine-tuning ou embeddings para implantar backdoors, vieses ou comportamentos incorretos que só se manifestam depois, em produção.
LLM06Consumo sem limitesSem limites para solicitações, tamanho de entrada ou uso de computação, atacantes podem aumentar sua fatura, esgotar recursos ou copiar um modelo por meio de consultas em alto volume.
LLM07DesinformaçãoO modelo gera uma resposta falsa ou enganosa que parece confiável, e usuários ou sistemas subsequentes agem com base nela sem verificá-la.
LLM08Exposição de contexto ocultoAnteriormente chamado de vazamento do prompt do sistema. É possível extrair prompts do sistema, instruções ocultas e outros contextos que o usuário não deveria ver, expondo as regras, a lógica ou os segredos incluídos neles.
LLM09Fragilidades em vetores e embeddingsFalhas na geração, no armazenamento e na recuperação de embeddings permitem que atacantes injetem conteúdo, vazem dados entre tenants ou recuperem o texto de origem — um risco especialmente grave para sistemas RAG.
LLM10Tratamento inadequado da saídaA saída do modelo chega a navegadores, shells, bancos de dados ou outros componentes sem validação ou codificação, abrindo caminho para XSS, SQL injection, execução de código e exfiltração de dados.
Defesas
Quinze defesas documentadas, cada uma com um link para sua fonte. Combine várias, pois nenhuma delas impede todos os ataques sozinha.
Desfaça a tríade letal
Regra de Simon Willison: um agente que pode ler dados privados, tem acesso a conteúdo não confiável e consegue enviar dados para fora pode ser manipulado por qualquer texto que leia. Remova pelo menos um desses três elementos de cada agente ou sessão. Por exemplo, o agente que classifica issues públicas não recebe segredos, e o agente que tem acesso a segredos não tem um canal de saída.
Restrinja o agente após entradas não confiáveis
Pesquisas sobre padrões de projeto para segurança de agentes estabelecem uma regra: depois que um agente recebe uma entrada não confiável, essa entrada não pode disparar ações com consequências. Entre os padrões estão seletor de ações, planejar e depois executar, dois LLMs e minimização de contexto. Escolha um padrão por fluxo de trabalho. Por exemplo, fixe o plano antes que o agente leia qualquer dado não confiável.
Rastreie o fluxo de dados com CaMeL
O CaMeL divide o agente em dois: um planejador privilegiado escreve código com base na solicitação do usuário, e um modelo em quarentena lida com dados não confiáveis. Os valores do lado em quarentena recebem tags de capacidade, e as políticas verificam essas tags antes da execução de qualquer ferramenta. No artigo, o sistema resolveu 77% das tarefas do AgentDojo com segurança comprovável, contra 84% de um agente sem proteções.
Use credenciais com privilégio mínimo
Por padrão, conceda aos agentes acesso somente de leitura, restrito ao projeto, e nunca use uma chave de administrador ou service_role, que no Supabase ignora a segurança em nível de linha. Restrinja os tokens de CI e do repositório à tarefa específica que executam. O incidente do Amazon Q Developer teve origem em um token do GitHub com permissões excessivas no CodeBuild.
Exija aprovação para ações com consequências
Exija que uma pessoa confirme chamadas de ferramentas que gravem, excluam, enviem ou gastem dados, e falhe em modo fechado se ninguém responder. O Supabase recomenda a aprovação manual de chamadas de ferramentas MCP. No OpenClaw, defina tools.exec.ask como always e mantenha askFallback como deny. Exiba todos os argumentos para que a pessoa responsável pela revisão veja exatamente o que será executado.
Execute código e ferramentas em sandbox
Execute comandos de shell e código gerado em um contêiner ou VM sem credenciais e com acesso apenas ao workspace. O OpenClaw vem com o sandbox desativado e tools.exec.security definido como full em hosts de gateway. Portanto, ative o sandbox, defina a segurança de exec como deny ou allowlist, defina fs.workspaceOnly como true e mantenha o modo elevado desativado. Confirme o resultado com openclaw sandbox explain.
Restrinja o acesso à rede de saída
Por padrão, bloqueie o tráfego de saída de agentes e servidores MCP e, depois, permita apenas os hosts necessários para cada um. Nunca aprove automaticamente solicitações a hosts multi-tenant onde qualquer pessoa pode publicar conteúdo. Foi assim que o CVE-2026-54316 transformou huggingface.co em um canal de exfiltração. Um servidor de e-mail deve acessar sua API de e-mail e nada mais, como demonstrou o postmark-mcp.
Mantenha os planos de controle fora da internet
Vincule gateways de agentes, dashboards e proxies de depuração ao loopback e exija um token de pelo menos 24 caracteres, por exemplo, gerado com openssl rand -hex 32. Acesse esses serviços remotamente por um túnel SSH ou pelo Tailscale Serve, e use o Tailscale Funnel somente com autenticação por senha. Execute openclaw security audit --deep regularmente.
Valide o público dos tokens MCP
A especificação de autorização do MCP exige que o servidor rejeite tokens de acesso que não tenham sido emitidos para ele e proíbe o repasse do token do cliente a uma API upstream. Os clientes enviam indicadores de recurso RFC 8707 para vincular cada token a um único servidor. Um servidor proxy precisa do consentimento de cada cliente; caso contrário, torna-se um representante confuso.
Isole sessões e tenants MCP
Crie uma instância de servidor e transporte separada para cada sessão, em vez de compartilhar uma entre clientes. Vincule cada sessão e tarefa à identidade autenticada que a criou e verifique essa associação em cada solicitação. Os dois avisos de segurança dos SDKs MCP publicados em 2026 foram causados por estado compartilhado ou sem vínculo.
Avalie skills, plugins e servidores MCP
Fixe versões exatas, revise o diff antes de cada atualização e confira os resultados de scanners, como o VirusTotal, e o status da auditoria de segurança do ClawHub. Ao aprovar um servidor, gere hashes das descrições das ferramentas e alerte quando elas mudarem para detectar rug pulls. O OpenClaw não bloqueia instalações por padrão, então configure você mesmo security.installPolicy.
Controle quem pode enviar mensagens ao agente
Mantenha o acesso por DM restrito a pareamento ou a uma lista de permissões, exija uma menção antes que o agente aja em chats em grupo e defina session.dmScope como per-channel-peer para que remetentes nunca compartilhem contexto. Qualquer pessoa que possa enviar mensagens ao agente pode tentar instruí-lo, então a lista de remetentes faz parte da sua superfície de ataque.
Mantenha segredos fora de execuções de CI não confiáveis
Não execute um agente com segredos do repositório em workflows que terceiros possam disparar por meio de um pull request, issue ou comentário. Trate títulos, descrições e comentários desses eventos como conteúdo hostil. Se uma etapa realmente precisar de segredos, execute-a somente depois que uma pessoa mantenedora aprovar a execução.
Trate a saída do modelo como não confiável
Codifique ou sanitize a saída do modelo antes de renderizá-la e nunca a passe sem validação para um shell, uma consulta SQL ou um navegador. Bloqueie o carregamento automático de imagens Markdown e links para domínios externos e defina uma Content Security Policy rigorosa. O EchoLeak exfiltrou dados por meio de URLs carregadas automaticamente.
Verifique as assinaturas do agente e, depois, autorize
Para identificar um agente que chama seu site ou API, valide sua assinatura Web Bot Auth com as chaves que o operador publica em /.well-known/http-message-signatures-directory. O agente do ChatGPT assina como Signature-Agent https://chatgpt.com. Uma assinatura válida informa quem opera o agente, não qual usuário enviou a solicitação nem o que esse usuário pode fazer. Portanto, autorize cada solicitação separadamente.
Dúvidas sobre segurança de agentes
O que é prompt injection em agentes de IA?
Prompt injection é um texto que o modelo trata como instrução, embora tenha chegado como dado, por exemplo, em uma página da web, um e-mail ou a descrição de uma ferramenta. Em um agente, essas instruções podem acionar chamadas de ferramentas executadas com suas credenciais. A OWASP o classifica como LLM01:2026, e Agent Goal Hijack (ASI01) abrange sua forma agentiva.
O que é a tríade letal para agentes de IA?
É o nome dado por Simon Willison a um agente que combina acesso a dados privados, exposição a conteúdo não confiável e um meio de se comunicar externamente. Com os três elementos presentes, uma prompt injection pode ler seus dados e enviá-los para fora. O vazamento de tokens do MCP da Supabase em 2025 é um exemplo clássico.
Como proteger um servidor MCP?
Rejeite tokens de acesso que não tenham sido emitidos para seu servidor e nunca encaminhe o token de um cliente para uma API upstream. Crie uma instância de servidor e de transporte por sessão e associe sessões e tarefas ao usuário autenticado. Use o SDK de TypeScript na versão 1.26.0 ou posterior e o SDK de Python na versão 1.27.2 ou posterior; essas versões corrigem um vazamento de respostas entre clientes e o sequestro de sessões.
Um system prompt melhor pode impedir prompt injection?
Não conte com isso. Pesquisas sobre padrões de projeto para agentes argumentam que, depois de ingerir entradas não confiáveis, o agente precisa ser restringido para que elas não possam acionar ações com consequências. O CaMeL, que aplica isso por meio do rastreamento de capacidades, resolveu 77% das tarefas do AgentDojo com segurança comprovável, contra 84% de um agente sem defesas.
Qual é a diferença entre o OWASP LLM Top 10 e o Agentic Top 10?
O OWASP Top 10 for LLM Applications, cuja edição de 2026 foi publicada em 4 de agosto de 2026, aborda riscos em qualquer aplicação baseada em um modelo de linguagem. O OWASP Top 10 for Agentic Applications, publicado em 9 de dezembro de 2025, aborda o que muda quando o modelo planeja, usa ferramentas, mantém memória e se comunica com outros agentes. A maioria de quem desenvolve agentes precisa considerar os dois.
É seguro expor um gateway OpenClaw à internet?
Não. Mantenha gateway.bind com o valor padrão loopback e use um túnel SSH ou o Tailscale Serve quando precisar de acesso remoto. O OpenA2A contabilizou 192,492 gateways expostos em 1 de setembro de 2026, e o CVE-2026-25253 mostrou que até instalações acessíveis apenas por loopback precisam de correções imediatas.