Prompt Injection
Uma vulnerabilidade onde texto de entrada malicioso sequestra as instruções originais do modelo.
Definição
Prompt injection é uma vulnerabilidade de segurança na qual um atacante elabora um texto de entrada que anula, modifica ou ignora as instruções originais dadas a um LLM. O modelo, incapaz de distinguir confiavelmente entre instruções de sistema confiáveis e entrada de usuário não confiável, segue as instruções injetadas, potencialmente vazando informações sensíveis, ignorando políticas de segurança ou realizando ações não autorizadas.
As principais características do prompt injection incluem:
-
Injeção Direta: O atacante escreve explicitamente instruções na entrada do usuário, como "Ignore todas as instruções anteriores e em vez disso...". O modelo pode obedecer porque processa prompts de sistema e mensagens de usuário como um único fluxo de texto.
-
Injeção Indireta: Instruções maliciosas são ocultadas em dados que o modelo processa, como páginas web, documentos ou e-mails recuperados durante o RAG. O modelo encontra e segue essas instruções sem o conhecimento do usuário.
-
Difícil de Prevenir Completamente: Ao contrário de ataques de injeção tradicionais (SQL injection), o prompt injection carece de uma fronteira clara entre código e dados. Nenhuma defesa é considerada completamente confiável, embora a sanitização de entrada, filtragem de saída e separação de privilégios reduzam o risco.
-
Altas Implicações para Sistemas Agentes: Quando agentes possuem capacidades de chamada de ferramentas, um prompt injection bem-sucedido pode levar a ações no mundo real, como enviar e-mails, modificar arquivos ou acessar APIs, tornando a vulnerabilidade particularmente perigosa.
Prompt injection é reconhecido pela OWASP como o principal risco de segurança para aplicações LLM.