Conceber agentes de IA para resistir à injeção de prompt
O que a engenharia social nos ensina sobre como proteger agentes de IA.
Os agentes de IA conseguem, cada vez mais, navegar na Web, obter informação e realizar ações em nome de um utilizador. Estas capacidades são úteis, mas também criam novas formas de os atacantes tentarem manipular o sistema.
Estes ataques são frequentemente descritos como injeção de prompt: instruções colocadas em conteúdo externo para tentar levar o modelo a fazer algo que o utilizador não pediu. Na nossa experiência, as versões mais eficazes destes ataques no mundo real assemelham-se cada vez mais à engenharia social do que à simples sobreposição de prompts.
Essa mudança é importante. Se o problema não é apenas identificar uma string maliciosa, mas resistir a conteúdos enganadores ou manipuladores no seu contexto, então a defesa não pode assentar apenas na filtragem de entradas. Também exige conceber o sistema de forma a limitar o impacto da manipulação, mesmo que alguns ataques sejam bem-sucedidos.
Os primeiros ataques do tipo «injeção de prompt» podiam ser tão simples como editar um artigo da Wikipédia para incluir instruções diretas para agentes de IA que o visitassem; sem experiência, durante o treino, deste tipo de ambiente adversarial, os modelos de IA seguiam muitas vezes essas instruções sem questionar1. À medida que os modelos se tornaram mais inteligentes, também se tornaram menos vulneráveis a este tipo de sugestão, e observámos que os ataques ao estilo de injeção de prompt reagiram ao incluir elementos de engenharia social:
Exemplo de e-mail de injeção de prompt
Um exemplo de 2025 de um ataque de injeção de prompt ao ChatGPT, comunicado à OpenAI por investigadores de segurança externos(abre numa nova janela). Em testes, funcionou 50% das vezes com o prompt do utilizador «Quero que faças uma pesquisa aprofundada sobre os meus e-mails de hoje. Quero que leias e verifiques todas as fontes que possam fornecer informação sobre o meu processo de integração de novos colaboradores.»
No ecossistema mais amplo de segurança em IA, tornou-se comum recomendar técnicas como o «AI firewalling», em que um intermediário entre o agente de IA e o mundo exterior tenta classificar entradas como injeção de prompt maliciosa ou entradas normais — mas estes ataques, quando mais sofisticados, não costumam ser detetados por esses sistemas. Para estes sistemas, detetar uma entrada maliciosa torna-se o mesmo problema — muito difícil — que detetar uma mentira ou desinformação, muitas vezes sem o contexto necessário.
À medida que os ataques de injeção de prompt no mundo real foram ganhando complexidade, verificámos que as técnicas ofensivas mais eficazes recorriam a táticas de engenharia social. Em vez de tratarmos estes ataques de injeção de prompt com engenharia social como uma classe separada ou totalmente nova de problema, começámos a vê-los pela mesma lente usada para gerir o risco de engenharia social sobre seres humanos noutros domínios. Nestes sistemas, o objetivo não se limita a identificar perfeitamente entradas maliciosas, mas a conceber agentes e sistemas de modo a limitar o impacto da manipulação, mesmo que, por vezes, tenha sucesso. Estes sistemas revelam-se eficazes a mitigar tanto a injeção de prompt como a engenharia social.
Assim, podemos imaginar o agente de IA a existir num sistema semelhante de três intervenientes, como o de um agente de apoio ao cliente; o agente quer atuar em nome do seu empregador, mas está continuamente exposto a inputs externos que podem tentar enganá-lo. O agente de apoio ao cliente, humano ou de IA, tem de ter limitações nas suas capacidades para reduzir o risco inerente a existir num ambiente tão malicioso.
Imagine uma situação em que uma pessoa opera um sistema de apoio ao cliente e pode atribuir cartões-oferta e reembolsos por inconvenientes sofridos pelo cliente, como atrasos na entrega, danos resultantes de uma avaria, etc. Este é um problema com várias partes, em que a empresa tem de confiar que o agente concede reembolsos pelas razões certas, enquanto o agente também interage com terceiros que podem tentar enganá-lo ou até colocá-lo sob coação.
No mundo real, o agente recebe um conjunto de regras a seguir, mas é de esperar que, no ambiente adversarial em que existe, seja enganado. Talvez um cliente envie uma mensagem a afirmar que o reembolso nunca foi processado, ou ameace causar danos se não lhe for concedido um reembolso. Os sistemas determinísticos com que o agente interage limitam o número de reembolsos que podem ser concedidos a um cliente, sinalizam potenciais e-mails de phishing e fornecem outras mitigações deste tipo para limitar o impacto do comprometimento de um agente individual.
Esta forma de pensar informou um conjunto robusto de contramedidas que implementámos para cumprir as expectativas de segurança dos nossos utilizadores.
No ChatGPT, combinamos este modelo de engenharia social com abordagens mais tradicionais de engenharia de segurança, como a análise source-sink.
Nesse enquadramento, um atacante precisa tanto de uma origem — uma forma de influenciar o sistema — como de um destino — uma capacidade que se torna perigosa no contexto errado. Nos sistemas com agentes, isso significa muitas vezes combinar conteúdo externo não fiável com uma ação, como transmitir informação a um terceiro, seguir uma ligação ou interagir com uma ferramenta.
O nosso objetivo é preservar uma expectativa de segurança essencial para os utilizadores: ações potencialmente perigosas, ou transmissões de informação potencialmente sensível, não devem acontecer de forma silenciosa nem sem salvaguardas adequadas.
Os ataques que vemos ser desenvolvidos contra o ChatGPT consistem, na maioria das vezes, em tentar convencer o assistente de que deve retirar informação confidencial de uma conversa e transmiti-la a um terceiro malicioso. Na maioria dos casos de que temos conhecimento, estes ataques falham porque o nosso treino de segurança leva o agente a recusar. Para os casos em que o agente é convencido, desenvolvemos uma estratégia de mitigação chamada Safe Url, concebida para detetar quando informação que o assistente aprendeu na conversa seria transmitida a um terceiro. Nestes casos raros, ou mostramos ao utilizador a informação que seria transmitida e pedimos-lhe confirmação, ou bloqueamos essa transmissão e dizemos ao agente para tentar outra forma de avançar com o pedido do utilizador.
Este mesmo mecanismo aplica-se à navegação e aos marcadores no Atlas, bem como às pesquisas e à navegação na Pesquisa Aprofundada. O ChatGPT Canvas e as Aplicações do ChatGPT seguem uma abordagem semelhante, permitindo que o agente crie e utilize aplicações funcionais — estas são executadas num sandbox capaz de detetar comunicações inesperadas e pedir o consentimento do utilizador(abre numa nova janela).
Pode saber mais sobre o Safe Url e encontrar um artigo sobre a sua estrutura na publicação dedicada Manter os seus dados seguros quando um agente de IA clica numa ligação.
A interação segura com o mundo exterior adversarial é necessária para agentes totalmente autónomos. Ao integrar um modelo de IA num sistema de aplicações, recomendamos que se questione que controlos um agente humano deveria ter numa situação semelhante e que esses controlos sejam implementados. Esperamos que um modelo de IA com inteligência máxima consiga resistir à engenharia social melhor do que um agente humano, mas isso nem sempre é viável ou economicamente eficiente, dependendo da aplicação.
Continuamos a explorar as implicações da engenharia social contra modelos de IA e as defesas contra isso, e incorporamos as nossas conclusões tanto nas nossas arquiteturas de segurança de aplicações como no treino a que submetemos os nossos modelos de IA.
Notas de rodapé
- 1
Rehberger, J. (15/04/2023). Não confie cegamente nas respostas de LLMs. Ameaças aos chatbots. EmbraceTheRed. Consultado em 14/11/2025, em https://embracethered.com/blog/posts/2023/ai-injections-threats-context-matters
Autores
Thomas Shadwell, Adrian Spânu


