Compreender as injeções de prompt: um desafio de segurança de fronteira
As ferramentas de IA estão a começar a fazer mais do que responder a perguntas. Podem agora navegar na internet, ajudar a pesquisar, planear viagens e ajudar a comprar produtos. À medida que se tornam mais capazes, com a capacidade de aceder aos teus dados noutras aplicações e realizar ações em teu nome, surgem novos desafios de segurança. Um dos aspetos em que estamos muito concentrados é a injeção imediata.
A injeção de prompt é um tipo de ataque de engenharia social específico para IA conversacional. Os primeiros sistemas de IA consistiam em conversas entre um único utilizador e um único agente de IA. Nos produtos de IA atuais, a tua conversa pode incluir conteúdo de muitas fontes, incluindo a internet. A ideia de que um terceiro (que não seja o utilizador nem a IA) poderia induzir o modelo em erro ao injetar instruções maliciosas no contexto da conversa deu origem ao termo "injeção de prompt".
Da mesma forma que os e-mails de phishing ou as burlas na web tentam enganar as pessoas para que revelem informações sensíveis, as injeções de prompt tentam enganar as IA para que façam algo que não foi solicitado.
Imagina que pediste a uma IA para te ajudar a fazer uma pesquisa online sobre férias e, enquanto o faz, encontra conteúdo enganador ou instruções nocivas escondidas numa página web, como num comentário a um anúncio ou numa avaliação. O conteúdo pode ser cuidadosamente elaborado numa tentativa de enganar uma IA para recomendar o anúncio errado ou, pior ainda, para roubar as informações do teu cartão de crédito.
Estes são apenas alguns exemplos de ataques de "injeção de prompt" — instruções maliciosas concebidas para enganar uma IA e levá-la a realizar ações não intencionais, frequentemente escondidas em conteúdos comuns, como uma página web, documento ou e-mail.
Estes riscos aumentam à medida que as IA têm acesso a dados mais sensíveis e assumem mais iniciativa e tarefas mais longas.
Resumo | O que pediste à IA para fazer | O que o atacante faz | Potencial resultado se o ataque for bem-sucedido |
Pedes a uma IA que pesquise apartamentos, e ela é alvo de uma injeção de prompt para recomendar um anúncio que não é a melhor opção para ti. | Pedes a uma IA que pesquise apartamentos com determinados critérios. | O atacante incluiu um ataque de injeção de prompt no anúncio do apartamento para enganar a IA, levando-a a acreditar que o seu anúncio deve ser selecionado independentemente das preferências declaradas pelo utilizador. | Se o ataque for bem-sucedido, a IA poderá recomendar incorretamente um anúncio de apartamento que não é o ideal com base nas tuas preferências. |
Pedes a um agente de IA que responda aos teus e-mails da noite anterior, e ele acaba por partilhar os teus extratos bancários. | Pedes a um agente de IA para responder de forma geral aos teus e-mails da noite passada, porque estás ocupado esta manhã. Ver "Sempre que possível, dar instruções explícitas a um agente" abaixo | O atacante enviou-te um e-mail que contém informações falsas para enganar o modelo a encontrar os teus extratos bancários e partilhá-los com o atacante. | Se o ataque for bem-sucedido, o agente pode procurar qualquer coisa como extratos bancários no teu e-mail (ao qual deste acesso para a tarefa) e partilhá-los com o atacante. |
A defesa contra a injeção de prompt é um desafio em toda a indústria de IA e um dos principais objetivos da OpenAI. Embora esperemos que os adversários continuem a desenvolver este tipo de ataques, estamos a construir defesas concebidas para realizar a tarefa pretendida pelo utilizador, mesmo quando alguém está ativamente a tentar enganá-lo. Essa capacidade é essencial para que os benefícios da AGI possam ser aproveitados com segurança.
Para proteger os nossos utilizadores e melhorar os nossos modelos contra estes ataques, adotamos uma abordagem em várias níveis, incluindo o seguinte:
Queremos uma IA que identifique injeções de prompt e não se deixe enganar por elas. No entanto, a robustez contra ataques adversários continua a ser um desafio persistente para a aprendizagem automática e a IA, tornando este um problema complexo e ainda por resolver. Desenvolvemos uma investigação chamada Hierarquia de Instruções para trabalhar no desenvolvimento de modelos que distinguem entre instruções fiáveis e não fiáveis. Continuamos a desenvolver novas abordagens para treinar modelos a reconhecer melhor padrões de injeção de prompt, para que possam ignorá-los ou sinalizá-los aos utilizadores. Uma das técnicas que aplicamos é o red-teaming automatizado, uma área que temos vindo a estudar(abre numa nova janela) há anos, para desenvolver ataques inovadores de injeção de prompts.
Desenvolvemos vários sistemas de monitorização automatizados com tecnologia de IA, monitores para identificar e bloquear ataques de injeção de prompt. Estes complementam as abordagens de formação em segurança, uma vez que podem ser atualizados rapidamente para bloquear quaisquer novos ataques que possamos descobrir. Estes monitores não só ajudam a identificar potenciais ataques de injeção de prompt contra os nossos utilizadores, como também nos permitem detetar pesquisas e testes adversários de injeção de prompt que utilizem a nossa plataforma, antes de esses ataques serem implementados no terreno.
Concebemos os nossos produtos e infraestruturas com várias proteções de segurança sobrepostas para ajudar a proteger os dados dos utilizadores. Estas funcionalidades, que exploraremos com mais pormenor técnico em futuras publicações, são adaptadas a cada produto. Por exemplo, para te ajudar a evitar sites não fiáveis, pedimos-te que aproves certas ligações no ChatGPT, especialmente em sites que nos pedem para não os catalogar(abre numa nova janela), antes de poderem ser visitados. Quando a nossa IA utiliza ferramentas para executar outros programas ou código (como no Canvas ou na nossa ferramenta de programação Codex), utilizamos uma técnica chamada "sandboxing" para evitar que o modelo faça alterações prejudiciais que possam resultar de uma injeção de prompt.
Incluímos controlos integrados nos nossos produtos para ajudar os utilizadores a protegerem-se. Por exemplo, no ChatGPT Atlas, podes selecionar o modo de sessão terminada, que permite ao agente do ChatGPT iniciar tarefas sem estar ligado a sites. O agente do ChatGPT também faz uma pausa e pede confirmação antes de realizar ações sensíveis, como finalizar uma compra. Quando o agente está a operar em sites sensíveis, também implementámos um "Modo de Vigilância" que te alerta para a natureza sensível do site e exige que mantenhas o separador ativo para veres o agente a fazer o seu trabalho. O agente fará uma pausa se te afastares do separador com informações sensíveis. Isto assegura que te manténs informado — e no controlo — das ações que o agente está a executar.
Realizamos um red teaming extenso com equipas internas e externas para testar e melhorar as nossas defesas, emular o comportamento dos atacantes e encontrar novas formas de melhorar a nossa segurança. Isto inclui milhares de horas dedicadas especificamente à injeção de prompt. À medida que descobrimos novas técnicas e ataques, as nossas equipas abordam proativamente as vulnerabilidades de segurança e melhoram as mitigações dos nossos modelos.
Para incentivar investigadores independentes de segurança e de boa-fé a ajudarem-nos a descobrir novas técnicas e ataques de injeção de prompt, oferecemos recompensas financeiras no âmbito do nosso programa bug bounty(abre numa nova janela) quando demonstram um percurso de ataque realista que poderia resultar numa exposição não intencional de dados do utilizador. Incentivamos os colaboradores externos a identificar rapidamente estes problemas para que possamos resolvê-los e fortalecer ainda mais as nossas defesas.
Informamos os utilizadores sobre os riscos da utilização de determinadas funcionalidades do produto para que possam tomar decisões informadas. Por exemplo, ao ligar o ChatGPT a outras aplicações, explicamos quais os dados que podem ser acedidos, como podem ser utilizados e quais os riscos que podem surgir, como um site tentar roubar os teus dados, juntamente com uma ligação para aprenderes a manter-te mais seguro. Também damos às organizações controlo sobre as funcionalidades que podem ser ativadas ou utilizadas pelos utilizadores nos seus espaços de trabalho.
A injeção de prompt é um desafio de segurança de fronteira que esperamos que continue a evoluir ao longo do tempo. Novos níveis de inteligência e capacidade exigem que a tecnologia, a sociedade e a estratégia de mitigação de riscos evoluam em conjunto. E, tal como aconteceu com os vírus informáticos no início dos anos 2000, pensamos que é importante que todos compreendam a ameaça das injeções de prompt e como gerir o risco, para que todos possamos aprender a beneficiar desta tecnologia em segurança. Estar atento e ser cauteloso ajuda a manter os teus dados mais seguros quando utilizas funcionalidades de IA e agentes que podem atuar em teu nome.
Sempre que possível, limita o acesso de um agente apenas aos dados sensíveis ou às credenciais necessárias para concluir a tarefa. Por exemplo, ao utilizar o modo de agente no ChatGPT Atlas para fazer pesquisa de férias, se o agente estiver apenas a fazer pesquisa e não necessitar de acesso com sessão iniciada, utiliza o modo "sessão terminada".
É frequente concebermos agentes para obterem uma confirmação final do utilizador antes de realizarem determinadas ações consequentes, como a conclusão de uma compra ou o envio de um e-mail. Quando um agente te pedir para confirmar uma ação, verifica cuidadosamente se a ação parece correta e se as informações partilhadas são adequadas para serem partilhadas nesse contexto.
Quando um agente está a operar num site sensível, como o teu banco, observa o agente a fazer o seu trabalho. Isto é semelhante a supervisionar um carro autónomo mantendo as mãos no volante.
Dar a um agente uma instrução muito abrangente, como "revê os meus e-mails e toma as medidas necessárias", pode facilitar que conteúdos maliciosos escondidos induzam o modelo em erro, mesmo que este esteja concebido para confirmar contigo antes de executar ações sensíveis.
É mais seguro pedir ao teu agente para realizar tarefas específicas e não lhe dar uma ampla margem de manobra para seguir potencialmente instruções prejudiciais de outras fontes, como e-mails. Embora isto não garanta que não ocorram ataques, torna mais difícil que os atacantes tenham sucesso.
À medida que a tecnologia de IA evolui, vão surgindo novos riscos e salvaguardas. Segue as atualizações da OpenAI e de outras fontes fiáveis para conheceres as melhores práticas.
A injeção de prompt continua a ser um problema de investigação de fronteira e desafiante e, tal como as burlas tradicionais na web, prevemos que o nosso trabalho seja contínuo. Embora ainda não tenhamos observado uma adoção significativa desta técnica por parte dos atacantes, esperamos que os adversários despendam tempo e recursos significativos para encontrar formas de fazer com que as IA sucumbam a estes ataques. Continuamos a investir fortemente na segurança dos nossos produtos e na investigação para aumentar a robustez da IA face a este risco. Partilharemos atualizações à medida que obtivermos mais respostas, incluindo os progressos em curso no nosso trabalho de segurança nesta área. Por exemplo, estamos a elaborar um relatório que será publicado em breve e que partilha mais pormenores sobre a forma como detetamos se a comunicação da tua IA com a internet transmite informações da tua conversa.
O nosso objetivo é tornar estes sistemas tão fiáveis e seguros quanto trabalhar com o teu colega ou amigo mais fiável e atento à segurança. Continuaremos a aprender com a utilização no mundo real, a iterar com segurança e a publicar o que aprendemos à medida que a tecnologia avança.


