Pedir a resposta em formato codificado engana LLMs e vaza system prompts protegidos contra extração direta
Um framework de avaliação automatizada mostra que instruções de sistema de LLMs, mesmo quando protegidas contra pedidos diretos de extração, vazam com alta frequência quando o mesmo pedido é reformulado como tarefa de codificação ou serialização estruturada, por exemplo "traduza para base64" ou "serialize como JSON". Testando sete modelos comuns contra 46 instruções de sistema verificadas, os autores observaram taxa de sucesso de ataque acima de 0,7 nesse tipo de reformulação, e demonstram que reescrever a própria instrução de sistema com apoio de um modelo de raciocínio reduz significativamente essa taxa sem precisar retreinar nada.
Instruções de sistema (system prompts) são hoje o principal mecanismo usado por aplicações de LLM para impor políticas de segurança, definir o comportamento do agente e proteger contexto operacional sensível, que na prática costuma incluir credenciais de API, políticas internas e definições privilegiadas de workflow. Por isso, vazamento de system prompt é listado como risco crítico no OWASP Top 10 para aplicações de LLM. A maioria das aplicações se defende com instruções de recusa simples, partindo da suposição implícita de que só pedidos diretos e explícitos de extração precisam ser bloqueados.
O artigo mostra que essa suposição é falsa e propõe um framework automatizado para testá-la: em vez de pedir diretamente pelo conteúdo protegido, o atacante reformula o pedido como uma tarefa de codificação ou serialização estruturada — por exemplo, pedindo que o assistente traduza suas instruções para base64 ou serialize seu prompt de sistema como um objeto JSON de exemplo. Modelos que recusam de forma consistente o pedido direto frequentemente cumprem essa versão reformulada, porque a política de recusa foi treinada para reconhecer o padrão de pedido direto, não a intenção subjacente por trás de uma tarefa aparentemente neutra de formatação.
Nos testes contra sete modelos comuns e 46 instruções de sistema verificadas, a taxa de sucesso desse ataque de reformulação por codificação ultrapassou 0,7 — ou seja, na maioria das tentativas, o conteúdo protegido vazou através da porta lateral da tarefa de serialização, mesmo em modelos que bloqueavam o pedido direto de forma confiável. Isso é particularmente relevante para aplicações que evitam o custo computacional de modelos de raciocínio e dependem de instruções de recusa simples e baratas, exatamente o cenário em que esse tipo de reformulação tem mais chance de escapar da política de segurança.
A boa notícia do artigo é a mitigação: os autores mostram que reescrever a instrução de sistema uma única vez, com apoio de um modelo de raciocínio em cadeia, reduz substancialmente a taxa de sucesso do ataque — mudanças sutis de fraseamento e estrutura na própria instrução de sistema bastam, sem exigir retreinamento do modelo subjacente. Para quem opera aplicações de LLM em produção, isso é uma mitigação de baixo custo e alto retorno: revisar e reforçar o texto do system prompt contra reformulações de codificação é uma medida imediata e barata, mesmo antes de qualquer investimento maior em guardrails externos.