Introdução
A defesa contra prompt injection protege o Hermes de instruções maliciosas escondidas em páginas, documentos, e-mails e resultados de ferramentas. O ataque tenta fazer o agente ignorar o objetivo, revelar dados ou executar ações não autorizadas. Como o conteúdo pode parecer uma ordem legítima, confiar apenas na capacidade do modelo de reconhecer fraude é insuficiente.
A proteção eficaz separa autoridade de conteúdo. Instruções do sistema e permissões vêm de fontes controladas; materiais recuperados são dados não confiáveis. Mesmo que o modelo interprete algo incorretamente, ferramentas, proxies e ambientes isolados devem impedir acesso a segredos ou efeitos fora do escopo.
Este tutorial cria uma proteção contra instruções maliciosas em várias camadas: separação de contexto, privilégio mínimo, validação de ações, filtragem de saída, aprovação e testes adversariais. O foco é reduzir impacto e tornar tentativas visíveis.
Pré-requisitos / Materiais
Mapa de dados e autoridades
Liste instruções confiáveis, dados internos, conteúdo externo, memória e retornos de ferramentas. Determine quem pode definir objetivos e permissões. Marque fronteiras em todo o fluxo.
Catálogo de ferramentas
Registre capacidades, parâmetros e efeitos. Remova conectores genéricos quando uma função limitada resolver. Ferramentas devem validar acesso fora do modelo e negar operações não autorizadas.
Ambiente de testes
Use dados fictícios e credenciais sem valor. Prepare páginas, PDFs e e-mails com ataques diretos, indiretos, ocultos e codificados. Nenhum teste deve colocar sistemas reais em risco.
Política de incidentes
Defina bloqueio, alerta, preservação de evidência e revisão. Estabeleça o que fazer quando houver tentativa de exfiltração ou mudança de objetivo. Isso sustenta a segurança de agentes com ferramentas.
Passo a Passo Sequencial
1. Separe instruções e dados
Transporte conteúdo externo em campos próprios, com rótulo de origem e confiança. Não concatene tudo em um texto indistinto. Diga ao Hermes que o material deve ser analisado, não obedecido.
2. Preserve a hierarquia de autoridade
Pedidos encontrados em documentos não podem substituir objetivo, política ou identidade do usuário. Mudanças legítimas chegam por canal autenticado. O conteúdo não recebe autoridade apenas por usar linguagem urgente.
3. Reduza privilégios
Conceda somente ferramentas necessárias à missão e apenas durante o período de execução. Separe leitura de escrita. Um pesquisador não precisa enviar e-mails, e um resumidor não precisa consultar credenciais.
4. Proteja segredos
Não coloque chaves no contexto. Use proxies que executem operações autorizadas sem revelar credenciais. Filtre logs e retornos. Se o modelo nunca recebe o segredo, uma instrução não consegue reproduzi-lo.
5. Valide parâmetros
Confira destino, caminho, volume, método e tipo de dado. Use listas de permissão e esquemas. Bloqueie endereços internos, diretórios amplos e campos inesperados, mesmo quando a solicitação textual parece válida.
6. Faça análise antes da ação
O Hermes deve apresentar finalidade, origem dos dados e efeito previsto. Compare o plano com a missão. Uma ação sem relação clara deve ser bloqueada ou enviada para revisão.
7. Detecte sinais sem depender deles
Procure frases que pedem para ignorar regras, revelar instruções ou usar ferramentas externas. Detectores ajudam na triagem, mas ataques podem ser sutis. Mantenha controles de permissão mesmo quando nenhum sinal for encontrado.
8. Trate retornos como não confiáveis
Uma ferramenta pode devolver texto contendo novas ordens. Encapsule o resultado e valide campos. Não permita que saída de busca vire comando para outra ferramenta sem decisão controlada.
9. Controle memória
Não grave automaticamente conteúdo externo como preferência ou regra. Valide origem e tipo antes de persistir. Uma injeção armazenada pode reaparecer em muitas missões futuras.
10. Filtre saída sensível
Antes de responder ou enviar dados, procure credenciais, informações pessoais e conteúdo restrito. A filtragem complementa, mas não substitui o bloqueio de acesso. Registre o motivo de qualquer remoção.
11. Exija aprovação em ações críticas
Mostre destino, dados e consequência. Vincule aprovação à versão do comando e faça expirar. O bloqueio de prompt injection melhora quando tentativas não conseguem transformar uma confirmação genérica em autorização ampla.
12. Isole execução
Código e arquivos devem rodar em sandbox sem rede e segredos por padrão. Limite recursos e valide artefatos. Caso o modelo siga uma instrução hostil, o ambiente reduz o alcance.
13. Registre e alerte
Armazene fonte, padrão detectado, ação solicitada e camada que bloqueou. Proteja o conteúdo do ataque nos painéis. Alertas devem priorizar tentativas com possível impacto.
14. Execute testes contínuos
Inclua ataques em regressão sempre que prompts, ferramentas ou modelos mudarem. Varie idioma, codificação, posição e tipo de arquivo. Uma defesa aprovada em um exemplo pode falhar em outra apresentação.
Exercício adversarial
Crie uma página que contenha informações úteis e uma ordem para enviar arquivos a um domínio externo. O Hermes deve extrair os fatos relevantes, ignorar a ordem e não chamar ferramenta de envio. Confirme que rede e permissões bloqueariam a ação mesmo se ela fosse tentada.
Depois coloque instrução semelhante em metadados, texto oculto e retorno de ferramenta. Teste tentativa de gravá-la na memória. Documente a camada responsável por cada bloqueio e corrija pontos que dependam apenas do julgamento do modelo.
Crie uma matriz de ataques e controles
Liste cada vetor, objetivo do atacante, ativo em risco e barreiras esperadas. Uma injeção em página pode tentar alterar a resposta, chamar ferramenta, exfiltrar dados ou persistir na memória. Teste cada efeito separadamente. Marque prevenção, detecção e contenção para não depender de uma única camada.
Inclua ataques que usam conteúdo legítimo junto com instruções hostis. O Hermes deve aproveitar a informação útil sem obedecer ao restante. Teste ainda instruções divididas entre documentos e várias etapas, pois uma frase isolada pode parecer inofensiva até ser combinada com outra.
Prepare resposta e recuperação
Quando uma tentativa alcançar uma ferramenta, revogue credenciais temporárias, encerre a missão e examine efeitos confirmados. Não peça ao próprio conteúdo suspeito que explique o ataque. Use registros protegidos, preserve a privacidade e envolva profissionais de segurança quando houver possível exposição.
Após a correção, acrescente o caso à regressão e procure a mesma fragilidade em conectores semelhantes. Informe usuários afetados conforme a política aplicável. Segurança madura aprende com tentativas sem normalizar alertas nem ocultar limitações.
Revise também fornecedores, bibliotecas e serviços que processam conteúdo antes do Hermes. Uma extração aparentemente segura pode preservar scripts, metadados ou links inesperados. Normalize formatos em ambiente isolado, limite tamanhos e mantenha atualizações. A cadeia inteira participa da defesa, não somente o prompt final.
Perguntas Frequentes
Um prompt forte resolve o problema?
Não. Instruções ajudam, mas precisam ser combinadas com isolamento, permissões, validação, proteção de segredos e aprovação.
Todo texto externo é malicioso?
Não, mas deve ser tratado como não confiável. O sistema pode usar informações sem conceder autoridade para alterar a missão.
Detectores de palavras são suficientes?
Não. Ataques podem evitar frases conhecidas. Detectores servem como uma camada, enquanto controles de capacidade limitam impacto.
Como proteger credenciais?
Mantenha segredos fora do contexto, use proxies, privilégios mínimos e rotação. Remova tokens de logs e respostas de ferramentas.
O que fazer ao detectar ataque?
Bloqueie a ação, preserve evidência segura, informe a origem e siga o processo de incidente. Não execute instruções para investigar o próprio conteúdo.
É possível eliminar todo risco?
Não. Defesa em profundidade reduz probabilidade e impacto. Sistemas críticos exigem testes recorrentes e revisão profissional de segurança.
Prompt injection deve ser tratado como problema de arquitetura, não apenas de redação. Quando dados não recebem autoridade e ferramentas aplicam limites externos, o Hermes pode aproveitar conteúdo sem entregar o controle ao conteúdo.
Artigos relacionados: execução segura de código; investigação protegida na web.


