Proteja IA de ataques de injeção de prompts
Aprenda a proteger agentes de IA contra ataques de injeção de prompts usando seis padrões de design eficazes.

Com os modelos de linguagem de grande porte (LLMs) se tornando essenciais em aplicações de IA, como bots de serviço ao cliente e assistentes de codificação, surgem vulnerabilidades de segurança: ataques de injeção de prompts. Esses ataques exploram a capacidade dos LLMs de interpretar linguagem natural para manipular o comportamento dos agentes de maneira indesejada e potencialmente prejudicial.
A injeção de prompts pode envolver a extração de dados sensíveis ou a execução de ações não autorizadas. Essas ameaças são especialmente críticas em interfaces de usuário onde há liberdade expressiva ampla. Sem proteções adequadas, essas interfaces se tornam alvos fáceis para ataques de injeção.
A imagem acima exemplifica um ataque de injeção de prompt em um fórum de discussão, onde um comentário politicamente carregado é alterado por um pedido de receita de cupcake, demonstrando o risco dessas vulnerabilidades.
O artigo explora seis padrões de design para construir agentes LLM resilientes a injeções de prompts, cada um oferecendo um equilíbrio único entre utilidade e segurança.
Comparação rápida dos seis padrões de design
Cada padrão de design tem um componente principal que atua como “anjo da guarda”, responsável por impor a política de segurança e evitar que entradas não confiáveis assumam o controle do agente.
Padrão | Componente Principal | Função na Prevenção |
---|---|---|
Seletor de Ações | Lista de Ações Fixas | Mapeia entradas para ações seguras pré-definidas. |
Planejar e Executar | Planejamento Congelado | Plano criado antes de ler dados não confiáveis. |
Map-Reduce LLM | Sanitizador de Saída | Isola dados não confiáveis e valida resultados. |
Dual LLM | Gerenciador de Memória Simbólica | Separa processamento de dados não confiáveis. |
Código e Execução | Revisão de Código | Código gerado é executado em sandbox controlado. |
Minimização de Contexto | Poda de Contexto | Remove entradas maliciosas antes de novas respostas. |
Padrão Seletor de Ações
O agente atua como um tradutor entre a entrada do usuário e um conjunto de ações seguras. Seleciona de uma lista fixa sem processar dados não confiáveis diretamente.
Exemplo: Chatbot de atendimento ao cliente
Um chatbot ajuda usuários com devoluções e rastreamento de pedidos usando o padrão Seletor de Ações, mapeando consultas para ações seguras pré-definidas, evitando comportamentos indesejados.
Padrão Planejar e Executar
O agente formula um plano fixo antes de interagir com dados não confiáveis. A execução segue estritamente o plano.
Exemplo: Assistente de e-mail e calendário
Um assistente cria um plano para enviar a agenda do dia, assegurando que dados maliciosos não possam alterar o plano.
Padrão Map-Reduce LLM
Dados não confiáveis são processados isoladamente e resultados são agregados com segurança, imitando o modelo de programação Map-Reduce.
Exemplo: Resumidor de avaliações de produtos
Um agente analisa avaliações de usuários para recomendar o melhor produto, garantindo que uma avaliação maliciosa não afete as demais.
Padrão Dual LLM
Um LLM privilegiado planeja e controla ações, enquanto um LLM em quarentena processa dados não confiáveis.
Exemplo: Assistente de triagem de currículos
O LLM privilegiado classifica candidatos com base em variáveis simbólicas extraídas pelos LLMs em quarentena, prevenindo injeções de prompts.
Padrão Código e Execução
O LLM gera um programa formal antes de qualquer execução, assegurando que dados não confiáveis não alterem a lógica durante a execução.
Exemplo: Agente SQL para inteligência de negócios
O agente gera consultas SQL e código Python, executados em sandbox, minimizando a exposição a injeções de prompts.
Padrão Minimização de Contexto
Limita a exposição do agente a instruções maliciosas, removendo entradas desnecessárias do histórico de conversas.
Exemplo: Chatbot de bula de medicamentos
O agente resume interações medicamentosas sem reter o prompt do usuário, garantindo que respostas sejam baseadas apenas em dados confiáveis.
Conclusão
A injeção de prompts é uma ameaça séria, mas gerenciável. Aplicando esses seis padrões de design, desenvolvedores podem criar agentes LLM úteis e resilientes.