A prompt injection é uma vulnerabilidade que afeta os LLM (Large Language Models), um dos tipos de inteligência artificial mais utilizados, como o ChatGPT, Gemini, entre outros.

Um prompt é uma instrução, pergunta ou texto utilizado para interagir com sistemas de inteligência artificial. Em alguns casos, ele pode alterar a resposta ou o comportamento dos LLM, gerando um resultado que, de acordo com sua configuração ou políticas de segurança, não deveria ocorrer.

Em um prompt injection, o cibercriminoso pode manipular o modelo e fazer com que ele produza resultados indevidos, muitas vezes imperceptíveis para o usuário. Isso pode permitir, por exemplo, que o modelo transmita dados incorretos para outras partes do sistema, revele informações restritas ou gere conteúdo malicioso. Além disso, pode até influenciar nas decisões ou resoluções tomadas pelo modelo.

Essa vulnerabilidade pode permitir que cibercriminosos acessem informações confidenciais e realizem ações por meio de integrações com APIs (Application Programming Interface). Embora seja uma preocupação crescente na cibersegurança, ainda há muito a ser feito para abordar essa questão de maneira eficaz.

Como funciona a prompt injection

Um LLM é um tipo de modelo de Machine Learning treinado com grandes volumes de dados, projetado para responder a instruções em linguagem natural (humana). A prompt injection explora o fato de que, muitas vezes, os LLM confundem as entradas dos usuários com as instruções predefinidas fornecidas pelos desenvolvedores - por meio de prompts - sobre como devem processar essas entradas.

Esses prompts predefinidos são configurados por meio do método de instruction fine-tuning, uma técnica que ajusta os LLMs adicionando instruções específicas aos dados de treinamento. Em geral, essa técnica não envolve a escrita de código durante o treinamento.

Tanto as entradas dos usuários quanto os prompts criados pelo instruction fine-tuning são cadeias de texto em linguagem natural. Por isso, o modelo pode confundi-los, o que expõe uma vulnerabilidade passível de exploração.

Tipos de prompt injection

Foi estabelecida uma classificação primária para esse tipo de ataque:

  • Prompt injection diretas: ocorrem quando a entrada do usuário afeta diretamente o comportamento do LLM, seja de forma intencional (quando o usuário planeja e estrutura o ataque) ou de forma não intencional, quando, por acidente, os usuários enviam um prompt que, devido às suas características, provoca uma alteração no funcionamento esperado do LLM.
  • Prompt injection indiretas: acontecem quando o modelo aceita prompts de fontes externas, como sites ou arquivos, e o conteúdo dessas fontes, ao ser interpretado, causa uma alteração no comportamento do LLM. Assim como nas injeções diretas, essas alterações podem ser intencionais ou acidentais.

Qual é o impacto que pode gerar?

Diante de uma prompt injection, o modelo pode:

  • Responder com informações confidenciais, seja de usuários ou sobre a infraestrutura do próprio sistema.
  • Gerar resultados tendenciosos ou incorretos para outros usuários.
  • Permitir acesso a funções do modelo que, em princípio, não deveriam estar disponíveis.
  • Manipular a tomada de decisões, entre outras possíveis consequências.
  • Executar código malicioso em dispositivos do usuário, um dos riscos mais graves no contexto da cibersegurança.

Exemplos de ataques com prompt injection

O Open Web Application Security Project (OWASP) destaca alguns casos hipotéticos, como:

  • Cenário #1: Injeção direta: Um atacante injeta uma mensagem em um chatbot de atendimento ao cliente, instruindo-o a ignorar as diretrizes anteriores, consultar bancos de dados privados e enviar e-mails. Isso leva a um acesso não autorizado e uma escalada de privilégios.
  • Cenário #2: Injeção indireta: Um usuário utiliza um LLM para resumir uma página web que contém instruções ocultas. Essas instruções fazem com que o LLM insira uma imagem vinculada a uma URL, o que resulta na exfiltração da conversa privada.

Prompt Injection vs. Jailbreak

A Prompt Injection é basicamente a técnica definida neste artigo e, frequentemente, é associada ou confundida com os Jailbreaks.

Os Jailbreaks são métodos de manipulação do modelo para que ele execute ações ou gere saídas com conteúdo restrito, em violação às políticas do modelo, burlando assim as configurações de segurança estabelecidas.

Um exemplo bem conhecido é o modo DAN, onde, antes de inserir o prompt, escreve-se "Do anything now" (Faça qualquer coisa agora), induzindo o modelo a executar qualquer tarefa solicitada após essa instrução. Isso pode levar o modelo a aceitar tais comandos.

Enquanto a prompt injection manipula as saídas e o comportamento do modelo por meio da inserção de instruções maliciosas, o jailbreak busca contornar as políticas de segurança, desbloqueando funções que normalmente não seriam permitidas.

Mitigações

O framework MITRE ATLAS, que trata exclusivamente das técnicas, táticas e processos utilizados pelos cibercriminosos em ataques a modelos de IA, propõe as seguintes formas de mitigação:

Estabelecer barreiras de segurança

Essas barreiras são basicamente colocadas entre o modelo e as entradas (inputs) e saídas (outputs) que o usuário recebe de um modelo de IA. O objetivo é evitar que o usuário possa gerar prompts maliciosos ou que o modelo forneça saídas indesejadas ou não permitidas. Essas barreiras podem incluir filtros, métodos de validação, regras, classificadores, entre outros.

Diretrizes para IA generativa

As diretrizes são controles de segurança colocados entre a entrada fornecida pelo usuário e um modelo de IA generativa, com o objetivo de orientar o modelo a produzir as saídas desejadas e evitar as saídas indesejadas.

Essas diretrizes podem ser implementadas como instruções anexadas a todas as solicitações do usuário ou como parte das instruções do sistema. Elas podem definir os objetivos, a função e o tom do sistema, além de estabelecer os parâmetros de segurança e proteção.

Alinhamento de modelos de IA generativa

Ao treinar ou ajustar um modelo de IA generativa, é importante utilizar técnicas que melhorem o alinhamento do modelo com as políticas de segurança, proteção e conteúdo.

O processo de ajuste pode, potencialmente, remover os mecanismos de segurança incorporados no modelo de IA generativa. No entanto, o uso de técnicas como o fine-tuning supervisionado, o aprendizado por reforço a partir de feedback humano ou feedback de IA, e a destilação de contexto de segurança direcionada pode melhorar tanto a segurança quanto o alinhamento do modelo.

Registro de telemetria de IA

Implementar o registro de entradas e saídas dos modelos de IA é uma prática essencial. A supervisão desses registros pode ajudar a detectar ameaças de segurança e mitigar seus impactos, permitindo um monitoramento contínuo e a identificação de comportamentos anômalos ou indesejados no funcionamento do modelo.