Repositorio: juice-shop/juice-shop
Autor: RicoKomenda
# :star: Idea del desafío
### Descripción
**Extracción de System Prompt** - El prompt del sistema del chatbot contiene instrucciones internas, políticas y reglas operativas que nunca deben ser expuestas a los usuarios finales. Los jugadores deben usar técnicas de inyección de prompt para hacer que el chatbot revele su propio prompt del sistema textualmente. Este desafío aborda una preocupación real de seguridad en LLM: la filtración del prompt del sistema puede exponer la lógica de negocio, salvaguardas de seguridad, definiciones ocultas de herramientas y políticas internas, dando a los atacantes un plano para evadir otras protecciones.
OWASP Juice Shop ya tiene desafíos que explotan el uso de herramientas LLM (Inyección de Prompt en Chatbot, Manipulación Codiciosa de Chatbot), pero ninguno que apunte a la confidencialidad del prompt del sistema en sí. Esta es una vulnerabilidad distinta y fundamental en LLM que merece su propio desafío.
### Vulnerabilidades subyacentes
- **OWASP Top 10 para Aplicaciones LLM - LLM01: Inyección de Prompt**: Manipulación del modelo mediante entradas diseñadas para evadir el comportamiento previsto, específicamente para filtrar instrucciones internas.
- **OWASP Top 10 para Aplicaciones LLM - LLM07: Filtración de System Prompt**: Los prompts del sistema pueden revelar información sensible como reglas internas, criterios de filtrado, permisos o estructuras de herramientas/API.
- **CWE-200: Exposición de Información Sensible a un Actor No Autorizado**: El prompt del sistema es configuración interna que no debería ser accesible para usuarios regulares.
### Dificultad esperada
Dificultad 2 - La extracción del prompt del sistema es uno de los ataques LLM más documentados y comúnmente demostrados. Muchos modelos revelan su prompt con técnicas relativamente simples, accesibles para principiantes pero que enseñan un concepto de seguridad importante.
### Flujo posible de ataque
1. El jugador accede al chatbot y comienza una conversación.
2. Intenta varias técnicas de inyección de prompt para extraer el prompt del sistema, como solicitudes directas, anulación de rol, trucos de completado, traducción, codificación o extracción indirecta.
3. El LLM, a pesar de estar instruido para no revelar su prompt, filtra parte o todo el prompt del sistema en su respuesta.
4. El desafío se resuelve cuando la respuesta del chatbot contiene una frase marcador única del prompt del sistema.
5. La verificación es determinista: el backend verifica si la respuesta incluye la frase marcador y activa la solución del desafío.
**Pistas para el desafío:**
- "El chatbot ha sido instruido para seguir ciertas reglas. ¿Y si pudieras leer esas reglas?"
- "Los LLM a menudo tienen dificultades para mantener en secreto sus propias instrucciones. Intenta preguntar de formas creativas."
- "A veces pedir al bot que traduzca, resuma o repita su contexto puede revelar información..."