Injeção de Código
A injeção de código é uma exploração de invasão de prompt em que o invasor é capaz de fazer com que o LLM execute código arbitrário (geralmente Python). Isso pode ocorrer em LLMs com ferramentas auxiliares, onde o LLM é capaz de enviar código para um interpretador, mas também pode ocorrer quando o próprio LLM é usado para avaliar código.
Relatos indicam que a injeção de código foi realizada em um aplicativo de IA, o MathGPT, e foi usada para obter sua chave de API da OpenAI (relatório do MITRE disponível em (MITRE report)).
O MathGPT foi posteriormente protegido contra injeção de código. Por favor, não tente invadi-lo; eles pagam pelas chamadas de API.
Exemplo
Vamos trabalhar com um exemplo simplificado do aplicativo MathGPT. Vamos supor que ele receba um problema matemático e escreva código Python para tentar resolver o problema.
Aqui está o prompt usado no exemplo simplificado do aplicativo:
Escreva código Python para resolver o seguinte problema matemático:
{{user_input}}
Vamos invadi-lo abaixo:
Esse é um exemplo simples, mas mostra que esse tipo de ataque é significante e perigoso.
Sander Schulhoff
Sander Schulhoff is the CEO of HackAPrompt and Learn Prompting. He created the first Prompt Engineering guide on the internet, two months before ChatGPT was released, which has taught 3 million people how to prompt ChatGPT. He also partnered with OpenAI to run the first AI Red Teaming competition, HackAPrompt, which was 2x larger than the White House's subsequent AI Red Teaming competition. Today, HackAPrompt partners with the Frontier AI labs to produce research that makes their models more secure. Sander's background is in Natural Language Processing and deep reinforcement learning. He recently led the team behind The Prompt Report, the most comprehensive study of prompt engineering ever done. This 76-page survey, co-authored with OpenAI, Microsoft, Google, Princeton, Stanford, and other leading institutions, analyzed 1,500+ academic papers and covered 200+ prompting techniques.
Footnotes
-
Kang, D., Li, X., Stoica, I., Guestrin, C., Zaharia, M., & Hashimoto, T. (2023). Exploiting Programmatic Behavior of LLMs: Dual-Use Through Standard Security Attacks. ↩