Prompt injection em documentos: como proteger fluxos com agentes de IA
Prompt injection em documentos ocorre quando conteúdo lido por um modelo influencia seu comportamento de maneira não pretendida. Em um fluxo com agentes, o risco não está apenas em gerar um resumo incorreto: dependendo das ferramentas e permissões disponíveis, uma resposta pode influenciar uma ação em outro sistema. O impacto varia conforme o desenho da aplicação.[1]
Como um documento pode influenciar um agente
Imagine uma equipe que pede a um agente para resumir uma minuta fictícia. O arquivo contém, além do texto contratual, uma instrução dirigida à ferramenta para alterar a forma como ela deve trabalhar. Se o agente tratar essa instrução como uma ordem confiável, em vez de conteúdo do documento, poderá se afastar da tarefa solicitada.
Esse é um exemplo de injeção indireta: a instrução chega por uma fonte externa processada pelo sistema, e não necessariamente pela pessoa que fez o pedido legítimo. Arquivos, páginas e outros materiais recuperados podem carregar esse tipo de conteúdo.[1] A existência de uma instrução suspeita não prova que ela foi seguida ou que houve vazamento.
Por que a fonte do conteúdo importa
Um documento pode conter cláusulas, comentários, exemplos e instruções dirigidas a pessoas. Tudo isso pode ser relevante para o resumo, mas não deve receber automaticamente a mesma autoridade das regras da aplicação ou da solicitação de um usuário autorizado. A separação entre conteúdo externo e instruções confiáveis ajuda a reduzir confusões, embora não garanta proteção completa.[1]
Um arquivo aparentemente legítimo também pode ser alterado ou incorporar conteúdo de outra origem. Por isso, validar a procedência e o acesso ao documento é útil, mas não transforma cada frase em autorização para executar ações.
Controles que reduzem o impacto
1. Trate documentos como dados. Identifique a origem do material e delimite claramente o conteúdo externo no processamento. A separação ajuda o modelo e os demais componentes a reconhecer o papel daquela informação, mas não substitui controles fora do modelo.[1]
2. Limite ferramentas e acessos. Disponibilize apenas as operações e os recursos necessários à tarefa. Um agente que só precisa resumir não deve receber permissão de envio ou alteração por conveniência. A autorização deve ser aplicada pelo serviço que executa a operação.[1]
3. Exija aprovação para ações sensíveis. Antes de enviar, excluir ou compartilhar documentos, apresente a uma pessoa autorizada o documento, os destinatários e a ação proposta. A aprovação deve valer para o contexto apresentado, não funcionar como autorização geral.[1]
4. Confira as saídas. Valide formatos e regras de negócio em código e, quando a decisão tiver impacto relevante, peça revisão humana. Uma resposta com aparência coerente não comprova que o conteúdo original foi interpretado corretamente.[1]
5. Registre e teste com materiais fictícios. Use arquivos de teste sem dados reais para verificar se o fluxo mantém os limites esperados. Registre eventos necessários à investigação sem armazenar credenciais ou documentos integrais desnecessariamente.[1][2]
6. Prepare uma resposta a incidentes. Defina quem suspende o fluxo, como revogar acessos e como investigar ações indevidas. Preserve evidências conforme a política da organização, limitando a exposição de dados pessoais.
O que fazer ao encontrar conteúdo suspeito?
Interrompa a ação proposta se ela ultrapassar a tarefa original, preserve o material conforme o procedimento interno e encaminhe o caso à equipe responsável. Verifique separadamente o que foi lido, o que o agente propôs e o que os sistemas efetivamente executaram. Não é preciso reproduzir instruções suspeitas em canais amplos para explicar o incidente.
Perguntas frequentes
Um prompt dizendo para ignorar instruções externas resolve?
Não sozinho. Instruções ao modelo são uma camada, mas a OWASP destaca que não há método infalível conhecido e recomenda combinar separação de conteúdo, menor privilégio e aprovação para operações de maior risco.[1]
Um documento assinado digitalmente não pode conter prompt injection?
A assinatura e a verificação de sua integridade tratam de aspectos diferentes da interpretação do conteúdo por um modelo. Mesmo quando a origem e a integridade são verificadas, o texto continua sendo conteúdo a analisar, não uma autorização automática para agir.
Um resumo contaminado significa que uma ação foi executada?
Não necessariamente. Verifique os registros do sistema que poderia executar a ação. O resultado do modelo e uma alteração efetiva em outro sistema são fatos distintos.
Fontes
[1] OWASP, LLM01:2025 Prompt Injection: https://genai.owasp.org/llmrisk/llm01-prompt-injection/
[2] OWASP, Logging Cheat Sheet: https://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.html
