Continuando nossa exploração da segurança em aplicações Large Language Model (LLM), este artigo dá continuidade à discussão inicial em “Construindo defesas robustas: a influência do OWASP em aplicações LLM“, onde apresentamos as principais vulnerabilidades do OWASP para tais sistemas. Aqui, nós nos aprofundamos na questão pertinente da Injeção de Prompt.
A Injeção de Prompt explicada: Como funcionam as ameaças diretas e indiretas aos LLMs
A injeção de prompt envolve manipular LLMs ao alterar prompts, que são cruciais para direcionar respostas ou ações. Dois métodos principais, a Injeção Direta de Prompt e a Injeção Indireta de Prompt, apresentam preocupações de segurança significativas. A injeção direta é uma inserção direta de conteúdo prejudicial nos prompts, explorando a interface direta de um LLM para desorientar suas funções. A injeção indireta opera secretamente, influenciando os LLMs ao incorporar prompts em fontes de dados externas que o modelo processa posteriormente, introduzindo, assim, comandos de controle sem acesso direto ao sistema.
Essas injeções podem subverter as funcionalidades do LLM, potencialmente desencadeando ações não autorizadas, exposição de dados ou interrupções de serviço e, em alguns casos, manipulando-os para promover agendas maliciosas, como a disseminação de desinformação. Dado seu impacto expansivo, ameaças como Vazamento de prompt e Prompt de jailbreak surgiram; o primeiro extrai informações confidenciais, enquanto o último ignora os recursos de segurança dos LLMs.
Estudos de caso: Exemplos do mundo real de explorações de injeção de prompt
Exploraremos casos reais que ilustram como as injeções de prompt prejudicam as funcionalidades dos LLMs.
- A empresa Remoteli.io incorporou um LLM para interagir com tweets sobre trabalho remoto. No entanto, não demorou muito para que os usuários X descobrissem que podiam manipular o sistema automatizado, fazendo com que ele ecoasse suas próprias mensagens criadas.
- O exemplo abaixo mostra como “Sydney”, o codinome de uma versão anterior do Bing Search, foi exposto a um problema conhecido como vazamento de prompt. Ao divulgar apenas um segmento de seu prompt de ativação, permitiu inadvertidamente que os usuários extraíssem o prompt completo sem a autenticação adequada normalmente necessária para vê-lo.
- O jailbreak envolve sobrescrever as restrições integradas de um sistema para acionar respostas que normalmente são bloqueadas por razões éticas ou de segurança. Os exploradores costumam utilizar métodos de codificação como Base 64, HTML, Unicode, UTF-7, UTF-8, Octal ou Hex para contornar a segurança alterando as representações de caracteres. O exemplo abaixo mostra o jailbreak.
- Outro método comum de jailbreak é usar o prompt DAN (Do Anything Now). DAN consiste em comandos que parecem forçar o modelo a um estado comprometido ou irrestrito.
Confira este tópico para ver um exemplo de tal ataque – https://chat.openai.com/share/1bee521e-8011-4b70-b5bc-4f480f01c77e
- As técnicas de hacking de prompt evoluíram além de meras explorações baseadas em texto para incluir ataques multimodais, conforme ilustrado na imagem a seguir.
Para aqueles com interesses acadêmicos, você pode explorar uma variedade de ataques de injeção de prompt no site sugerido – jailbreakchat.com.
Felizmente, os desenvolvedores de LLMs permanecem extremamente conscientes das ameaças potenciais e estão integrando rapidamente melhorias de segurança para evitar tais explorações, acompanhando o ritmo das técnicas de ataque recém-identificadas nessa área em desenvolvimento. Conseqüentemente, se você tentar imitar os exemplos mencionados anteriormente, o LLM provavelmente bloqueará seus esforços.
Construindo Resiliência: Táticas de Defesa Abrangentes
As vulnerabilidades da injeção de prompt decorrem de LLMs que tratam todas as entradas de linguagem natural da mesma forma, sem diferenciar entre instruções do usuário e dados externos. A prevenção infalível não é viável nos LLMs, mas medidas práticas e soluções de bom senso podem reduzir a exposição a tais ataques. Apesar dos desafios, discutiremos diversas defesas eficazes aqui:
- Gerenciamento de privilégios:
-
- Implemente o acesso com privilégios mínimos para o LLM, usando tokens de API exclusivos com permissões restritas.
- Exija aprovação humana para operações sensíveis, a fim de garantir que as ações sejam intencionais e autorizadas.
- Defesas Estruturais:
-
- Use estruturas, como o ChatML, a marcação XML e os encapsulamentos de sequências aleatórias para diferenciar a entrada do usuário das instruções do sistema.
- Coloque a entrada do usuário dentro de limites distintos, como a “defesa sanduíche“, para manter o contexto e evitar alterações.
- Medidas instrucionais:
-
- Dirija o LLM com instruções claras que antecipem e neutralizem possíveis tentativas de manipulação.
- Estruture prompts com entrada do usuário precedendo as instruções do sistema (‘instruções pós-prompt‘) para diminuir a eficácia dos comandos injetados.
- Validação de entrada:
-
- Empregue técnicas de filtragem com listas de bloqueio e listas de permissões para controlar palavras e frases aceitáveis.
- Evite entradas fornecidas pelo usuário que se assemelhem a comandos do sistema para neutralizar possíveis injeções.
- Monitoramento e Visualização:
-
- Monitore regularmente as interações do LLM e destaque visualmente as respostas que podem vir de fontes não confiáveis ou parecer suspeitas.
- Técnicas avançadas de LLM:
-
- Implante LLMs modernos e mais resistentes a injeção, como GPT-4, para maior segurança.
- Considere ajustar o modelo com dados específicos da tarefa para reduzir a dependência de prompts e prompts suaves como uma alternativa potencialmente mais econômica.
- Controles Operacionais:
-
- Use um LLM secundário orientado à segurança para avaliar prompts em relação a possível malícia antes do processamento.
- Defina restrições no tamanho das entradas e dos diálogos para evitar táticas de injeção complexas.
A implementação dessas estratégias estabelece uma defesa multifacetada contra injeções de prompt, reforçando a estrutura de segurança e dissuadindo invasores. À medida que as ameaças evoluem, essas defesas devem ser flexíveis e atualizáveis, garantindo proteção robusta para sistemas que utilizam LLMs.
Inovações em Segurança de Prompt: Ferramentas e soluções para aprimorar as defesas do LLM
O compromisso da comunidade de desenvolvimento em criar uma gama de soluções e ferramentas para combater ataques de injeção de prompt e melhorar a qualidade do prompt para um desempenho ideal do LLM é promissor. Apresentaremos uma seleção desses exemplos inovadores, alguns atualmente em fase de protótipo ou experimental.
- O Rebuff protege aplicativos de IA contra injeção de prompt com uma abordagem em camadas que combina filtros heurísticos, detecção LLM dedicada, um banco de dados de padrões de ataque e tokens canários para alertas e prevenção de vazamentos.
- Deberta-v3-base-injection – Esse modelo identifica e rotula tentativas de injeção de prompt como “INJEÇÃO” enquanto categoriza consultas genuínas como “LEGÍTIMO”, presumindo que as solicitações válidas compreendem várias perguntas ou pesquisas por palavras-chave.
- O Better Prompt é uma estrutura de teste para prompts de LLMs que avalia o desempenho ao medir a perplexidade do prompt, trabalhando com base no princípio de que prompts com menor perplexidade (próximos de zero) tendem a produzir maior desempenho na tarefa.
- O Garak é uma ferramenta projetada para testar a resiliência de um LLM, verificando falhas indesejáveis, como alucinação, vazamento de dados, injeção de prompt, disseminação de informações incorretas, geração de toxicidade, jailbreak e outras vulnerabilidades potenciais.
- A HouYi é uma plataforma projetada para exercícios de red teaming, permitindo que os usuários insiram prompts programaticamente em aplicativos integrados ao LLM para testes de penetração, ao criar ferramentas personalizadas e definir os objetivos do ataque.
- O Promptmap é uma ferramenta projetada para avaliar a suscetibilidade do ChatGPT a injeções de prompt, ao compreender as regras e o contexto da instância para criar e implementar prompts de ataque direcionados, avaliando posteriormente o sucesso de cada ataque com base nas respostas recebidas.
Epílogo
O campo da segurança do LLM é um campo de batalha em evolução, onde a dinâmica da injeção de prompt representa um perigo real e imediato. No entanto, os esforços em curso para fortalecer os LLMs contra tais ameaças são urgentes e inovadores. Com o advento de ferramentas de detecção especializadas e a integração de técnicas de defesa robustas, está a ser estabelecido um novo padrão para antecipar e neutralizar potenciais manipulações. A indústria certamente não está se acomodando, como evidenciado pela pesquisa e desenvolvimento contínuos de soluções para superar os infratores. Estamos à beira de uma mudança significativa – de posturas de segurança reativas para estratégias proativas e baseadas em resiliência que prometem manter as aplicações LLM seguras e confiáveis em um cenário tecnológico em constante mudança. Daqui para frente, a adoção e o aperfeiçoamento dessas abordagens serão fundamentais para capacitar os LLMs para que cumpram seu potencial sem comprometer os princípios de segurança e confiança do usuário.