Considerada uma grande ameaça, a injeção de prompt explora a incapacidade dos modelos atuais de diferenciar instruções confiáveis de instruções maliciosas. Ao não detectar comandos não confiáveis, a IA pode responder às instruções injetadas por hackers, levando à exposição de dados confidenciais e a comportamentos inadequados.
O desenvolvimento dos agentes de IA foi acompanhado pelo avanço dos ataques de injeção de prompt. Ainda não há soluções para uma prevenção totalmente efetiva. Continue lendo para entender melhor esse ataque às IAs generativas, quais são suas consequências e como proteger seus dados.
O que é injeção de prompt?
Prompt Injection é uma falha em que as instruções originais do desenvolvedor são substituídas por um prompt malicioso. O agente de IA pode ser direcionado a ignorar as proteções do sistema e realizar atividades não permitidas.
O risco de segurança é mais elevado para aplicativos de IA generativa, pois eles acessam informações confidenciais e, além disso, por meio de integrações de APIs, podem disparar ações automatizadas.
Como exemplo prático, podemos citar um assistente virtual com LLM incorporado que escreve e-mails e edita arquivos. Um prompt malicioso poderia driblar o assistente e fazê-lo encaminhar documentos privados.
Em linhas gerais, esse tipo de ataque cibernético se baseia na funcionalidade central das IAs generativas: responder às instruções dadas pelos usuários. O ponto crucial em relação à injeção de prompts é que nenhum especialista em segurança encontrou, até o momento, uma forma totalmente efetiva de lidar com essa vulnerabilidade.
Como os ataques de injeção de prompts acontecem?
Os LLMs são modelos flexíveis de aprendizado de máquina que utilizam um amplo conjunto de dados. Para que realizem inúmeras tarefas, esses modelos passam por um processo de “ajuste fino de instruções”. Nesse processo, os desenvolvedores fornecem instruções em linguagem natural, que o LLM segue para executar suas funções.
Esse ajuste fino contribuiu para otimizar o trabalho de desenvolvimento, já que os desenvolvedores não precisam escrever códigos complexos para cada aplicação de LLM. Os prompts fornecem as diretrizes sobre como o modelo de IA deve lidar com a entrada do usuário.
No entanto, o que otimiza também vulnerabiliza o sistema. As instruções do sistema e as entradas do usuário utilizam o mesmo formato: cadeias de caracteres em linguagem natural. Nesse contexto, o LLM não consegue diferenciar instruções e entradas apenas com base no tipo de dado.
O modelo se baseia em treinamentos anteriores e nos prompts fornecidos para saber como agir em diferentes situações. Assim, se um hacker criar uma entrada suficientemente parecida com um prompt do sistema, o LLM pode ignorar as instruções originais dos desenvolvedores.
Jailbreak
Para tentar reduzir o risco de injeções de prompts, os desenvolvedores empregam proteções nas instruções do sistema. No entanto, invasores podem contornar essas proteções por meio de um jailbreak do LLM.
É importante esclarecer que injeção de prompts e jailbreaking são técnicas distintas. Em resumo, a injeção de prompts esconde instruções maliciosas como entradas convencionais, enquanto o jailbreaking faz o LLM ignorar diretamente as proteções do sistema.
As instruções do prompt do sistema incluem tanto o que o LLM pode fazer quanto o que não pode. No jailbreaking, os hackers elaboram um prompt com o objetivo de convencer o modelo a ignorar essas restrições, o que pode ocorrer por meio da criação de personas ou da simulação de “jogos”.
Uma das técnicas mais utilizadas de jailbreaking é o uso do prompt “Faça qualquer coisa agora”, também conhecido como “DAN”. Nesse caso, os usuários sugerem que o LLM assuma o papel de “DAN”, um modelo de IA supostamente sem regras.
Conheça os tipos de Prompt Injection
Os ataques de injeção de prompts podem ser classificados em dois tipos: injeções diretas e injeções indiretas.
Injeções de prompts diretas
Nesse tipo de ataque, os hackers controlam diretamente a entrada do usuário. Assim, o prompt malicioso é inserido diretamente no LLM. Um exemplo é um prompt inserido em um aplicativo de tradução que instrui o modelo a adicionar uma frase específica ao resultado final.
Injeções de prompts indiretas
Nas injeções indiretas, os hackers ocultam prompts maliciosos em dados consumidos pelo LLM, como páginas da web liberadas para leitura. Um exemplo prático é um prompt inserido em um fórum que direciona os usuários para um site de phishing.
Uma pessoa pode usar um LLM para ler e resumir uma discussão nesse fórum e, ao fazer isso, ser induzida a visitar a página do invasor. Vale lembrar que prompts mal-intencionados não precisam estar apenas em texto simples; eles também podem ser inseridos em imagens analisadas pelo LLM.
Riscos das injeções de prompts
A injeção de prompts ocupa o primeiro lugar na lista de vulnerabilidades de segurança para aplicações baseadas em LLMs. Hackers podem utilizar essa técnica para:
- Disseminar malware e desinformação;
- Roubar dados confidenciais;
- Controlar sistemas e dispositivos.
Um ponto crítico é que as injeções de prompts não exigem amplo conhecimento técnico. LLMs podem ser manipulados com comandos em inglês simples. Não é necessário saber programar, apenas entender como formular e enviar prompts.
Cabe ainda ressaltar que a injeção de prompts não é ilegal, exceto quando utilizada para finalidades ilícitas. Muitos pesquisadores empregam essa técnica como objeto de estudo e análise de segurança.
Principais riscos do Prompt Injection
Vazamento de prompts
Nesse cenário, um LLM é induzido a divulgar seu prompt de sistema. Embora um prompt não seja, em si, uma informação confidencial, em posse de hackers ele pode ser utilizado como base para a criação de entradas maliciosas, facilitando a manipulação do modelo.
Execução remota de código
Injeções de prompts podem levar o LLM a executar programas maliciosos, especialmente quando o aplicativo está conectado a plug-ins capazes de executar código.
Compartilhamento de dados sigilosos
Um dos usos mais perigosos da injeção de prompts é o vazamento de informações sigilosas dos usuários. Os LLMs podem ser enganados para exportar dados de contas privadas.
Disseminação de fake news
A integração de chatbots de IA aos mecanismos de busca abriu espaço para a disseminação de notícias falsas. Prompts maliciosos podem ser utilizados para distorcer resultados de busca, favorecendo empresas ou conteúdos específicos.
Como prevenir injeções de prompts
Como explicado ao longo do artigo, não é viável separar completamente as instruções do desenvolvedor das entradas do usuário. Limitar excessivamente as entradas ou saídas dos LLMs pode comprometer a flexibilidade que torna esses modelos úteis.
Atualmente, estão sendo realizadas experiências com o uso de IA para detectar entradas maliciosas. No entanto, mesmo detectores treinados para identificar injeções de prompts têm se mostrado suscetíveis a novos ataques.
Ainda assim, existem medidas que usuários e empresas podem adotar para aumentar a segurança de aplicações de IA generativa, mesmo que não sejam totalmente eficazes.
Cuidados básicos de segurança
Para reduzir as chances de exposição a prompts maliciosos, é fundamental evitar e-mails de phishing e sites suspeitos.
Uso de validação de entrada
A aplicação de filtros que comparam entradas do usuário com padrões conhecidos de injeção pode ajudar a reduzir ataques. Entretanto, novos prompts podem ser desenvolvidos para contornar esses filtros.
Concessão de privilégio mínimo
LLMs e APIs associadas devem operar com privilégios mínimos necessários para executar suas tarefas. Embora essa medida não impeça a injeção de prompts, ela limita significativamente os danos potenciais.
Quer saber mais sobre Inteligência Artificial? Confira outros posts do blog da Domatech!

