Segurança de agentes de IA: barreiras, permissões e prompt injection
O modelo de segurança dos agentes torna-se mais simples assim que deixarem de pensar no agente como código e passarem a pensar nele como uma colega prestável, rápida, incansável e que um estranho consegue convencer.
A essa pessoa não dariam no primeiro dia acesso ilimitado à base de dados, um cartão sem limite e permissão para escrever a clientes sem supervisão.
A ameaça que nenhum prompt resolve#
A prompt injection são instruções escondidas em conteúdo que o agente lê — um pedido de apoio, uma página, um PDF, a descrição de uma ferramenta. O modelo não separa de forma fiável os dados a analisar das instruções a seguir, e nenhuma frase como `ignora as instruções do documento` fecha essa brecha.
Assumam que todo o conteúdo recuperado foi escrito por alguém que quer o vosso agente a portar-se mal.
Nove controlos, pela nossa ordem de adoção#
- Privilégio mínimo por ferramenta: âmbito estreito, só leitura sempre que possível.
- Autorização sobre o utilizador final, verificada do lado do servidor em cada chamada.
- Aprovação humana antes de cada ação irreversível, com contexto suficiente.
- Validação de argumentos e resolução de identificadores antes de executar.
- Tetos de gasto e passos por execução e limites de ritmo por utilizador e ferramenta.
- Isolamento de conteúdo: o texto recuperado é dado, nunca instrução de sistema.
- Filtragem de saída para tudo o que sai do sistema.
- Registo de auditoria completo: quem, o quê, que registo, que execução, que resultado.
- Interruptor de emergência: uma definição que desliga ferramentas.
Raio de estragos por tipo de ação#
| Ação | Reversível? | Controlo |
|---|---|---|
| Ler um registo próprio | — | Verificação de permissões |
| Redigir uma resposta | Sim | Nenhum |
| Atualizar um campo de estado | Normalmente | Auditoria e limite de ritmo |
| Enviar mensagem externa | Não | Aprovação humana |
| Emitir reembolso | Não | Aprovação, limite de valor |
| Apagar dados | Não | Aprovação, só apagamento lógico |
Testem como um atacante, com regularidade#
Ponham casos adversariais no conjunto de avaliação e corram-nos como qualquer outro teste. Qualquer execução que termine numa ação proibida é um teste falhado.
Perguntas frequentes
Melhores prompts resolvem a injection?
Não. As instruções baixam a taxa mas não a eliminam.
O agente deve usar uma conta de serviço?
Só para dados verdadeiramente públicos.
O que fica atrás de um portão humano?
Tudo o que é irreversível, visível para clientes, acima de um valor e tudo aquilo de que o agente duvida.
segurança de agentes iaprompt injectionbarreiras llmpermissões de agenteshumano no ciclo