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.
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 is the Founder of Learn Prompting and an ML Researcher at the University of Maryland. He created the first open-source Prompt Engineering guide, reaching 3M+ people and teaching them to use tools like ChatGPT. Sander also led a team behind Prompt Report, the most comprehensive study of prompting ever done, co-authored with researchers from the University of Maryland, OpenAI, Microsoft, Google, Princeton, Stanford, and other leading institutions. This 76-page survey analyzed 1,500+ academic papers and covered 200+ prompting techniques.
Kang, D., Li, X., Stoica, I., Guestrin, C., Zaharia, M., & Hashimoto, T. (2023). Exploiting Programmatic Behavior of LLMs: Dual-Use Through Standard Security Attacks. ↩