Novos Jailbreaks permitem que usuários manipulem o GitHub Copilot

Pesquisadores descobriram duas novas maneiras de manipular o assistente de codificação de inteligência artificial (IA) do GitHub, Copilot, permitindo a capacidade de contornar restrições de segurança e taxas de assinatura, treinar modelos maliciosos e muito mais. O primeiro truque consiste em incorporar interações de bate-papo dentro do código Copilot, aproveitando o instinto da IA ​​de ser útil para fazê-la produzir saídas maliciosas. O segundo método se concentra em redirecionar o Copilot por meio de um servidor proxy para se comunicar diretamente com os modelos OpenAI com os quais ele se integra.

Pesquisadores da Apex consideram essas questões como vulnerabilidades. O GitHub discorda, caracterizando-as como “respostas de bate-papo fora do tópico” e um “problema de abuso”, respectivamente. Em resposta a uma consulta da Dark Reading, o GitHub informou que estão melhorando as medidas de segurança em vigor para evitar saídas prejudiciais e ofensivas como parte do desenvolvimento de IA responsável. Além disso, continuam a investir em oportunidades para evitar abusos e garantir o uso pretendido dos produtos.

Desbloqueando o GitHub Copilot

Segundo a Apex, o Copilot tenta o melhor que pode para ajudar o usuário a escrever código, incluindo tudo o que é escrito dentro de um arquivo de código, porém também é possível escrever uma conversa entre um usuário e um assistente.

Na captura de tela abaixo, por exemplo, um desenvolvedor incorpora em seu código um prompt de chatbot, da perspectiva de um usuário final. O prompt carrega más intenções, pedindo ao Copilot para escrever um keylogger. Em resposta, o Copilot sugere uma saída segura negando a solicitação.

O desenvolvedor, no entanto, tem controle total sobre esse ambiente. Ele pode simplesmente excluir a resposta de preenchimento automático do Copilot e substituí-la por uma maliciosa ou, melhor ainda, eles podem influenciar o Copilot com um simples empurrão. O Copilot foi projetado para completar frases significativas. Então, por exemplo, se a frase “Desculpe, não posso ajudar com isso” for substituída pela palavra “Claro”, ele tenta pensar em como completar uma frase que começa com a palavra “Claro”. E, então, ele ajuda o usuário com sua atividade maliciosa. Em outras palavras, fazer o Copilot escrever um keylogger neste contexto é tão simples quanto gaslighting para que ele pense que quer.

Um desenvolvedor poderia usar esse truque para gerar malware, ou saídas maliciosas de outros tipos, como instruções sobre como projetar uma arma biológica. Ou, talvez, eles poderiam usar o Copilot para incorporar esses tipos de comportamentos maliciosos em seu próprio chatbot e, então, distribuí-lo ao público.

Saindo do Copilot usando um proxy

Para gerar novas sugestões de codificação ou processar uma resposta a um prompt — por exemplo, uma solicitação para escrever um keylogger — o Copilot envolve ajuda de modelos de linguagem grandes (LLM) baseados em nuvem, como Claude, Google Gemini ou modelos OpenAI, por meio de interfaces de programação de aplicativos (APIs) desses modelos.

O segundo esquema que os pesquisadores da Apex criaram permitiu que eles se colocassem no meio desse envolvimento. Primeiro, eles modificaram a configuração do Copilot, ajustando sua configuração “github.copilot.advanced.debug.overrideProxyUrl” para redirecionar o tráfego por meio de seu próprio servidor proxy. Então, quando eles pediram ao Copilot para gerar sugestões de código, seu servidor interceptou as solicitações geradas, capturando o token que o Copilot usa para autenticar com o OpenAI. Com a credencial necessária em mãos, eles conseguiram acessar os modelos do OpenAI sem quaisquer limites ou restrições e sem ter que pagar pelo privilégio.

E esse token não é o único item interessante que eles encontraram em trânsito. Quando o Copilot interage com o servidor, ele envia seu prompt de sistema, junto com seu prompt, e também, o histórico de prompts e respostas que ele enviou antes. Deixando de lado o risco de privacidade que vem com a exposição de um longo histórico de prompts, esses dados contêm ampla oportunidade para abusar de como o Copilot foi projetado para funcionar.

Um “prompt de sistema” é um conjunto de instruções que define o caráter de uma IA — suas restrições, que tipos de respostas ele deve gerar, etc. O prompt de sistema do Copilot, por exemplo, é projetado para bloquear várias maneiras pelas quais ele poderia ser usado maliciosamente. Mas ao interceptá-lo a caminho de uma API LLM, é possível mudar o prompt do sistema, sem tanto esforço posterior para manipulá-lo, podendo simplesmente modificar o prompt do sistema para acesso a conteúdo prejudicial ou, até mesmo, falar sobre algo que não esteja relacionado ao código.

De acordo com a Apex, a lição aprendida após a identificação das fraquezas do Copilot não é que o GitHub não esteja tentando fornecer guardrails. Mas há algo sobre a natureza de um LLM, que ele sempre pode ser manipulado, não importa quantos guardrails você esteja implementando. E é por isso que deve haver uma camada de segurança independente sobre ele que procure por essas vulnerabilidades.

Para saber mais, clique aqui.

Descubra mais sobre SegInfo - Portal, Podcast e Evento sobre Segurança da Informação

Assine agora mesmo para continuar lendo e ter acesso ao arquivo completo.

Continue reading