Blindaje y Seguridad en el Diseño de Prompts
La seguridad en el diseño de prompts es crítica porque los LLM procesan tanto las instrucciones del sistema como las entradas del usuario como lenguaje natural, lo que los hace vulnerables a que un atacante "anule" las reglas originales. Para mitigar estos riesgos, se recomiendan las siguientes prácticas y técnicas avanzadas:
Los LLM son vulnerables a ataques de inyección de prompts porque no distinguen de forma nativa entre instrucciones del sistema y datos del usuario: ambos llegan como texto plano.
Riesgos y malos usos – Adversarial prompting
Inyección de prompts
Ataque principal: manipular el sistema para ejecutar comandos no autorizados. El objetivo es tomar el control de la salida del modelo utilizando consignas ingeniosas que cambien su comportamiento.
Motivaciones del atacante
- 🔓 Jailbreaking
- 🕵️ Extracción de información sensible
- ⚖️ Amplificación de sesgos
- 📰 Generación de desinformación
- 🚫 Evasión de filtros de contenido
- 🎣 Abuso para phishing
Evasión de restricciones de seguridad para generar contenido dañino o ilegal.
Forzar la revelación de datos privados o de entrenamiento.
Explotar sesgos existentes para generar contenido discriminatorio.
Crear noticias falsas o narrativas engañosas a escala.
Superar la moderación para publicar odio o violencia.
Crear correos o sitios engañosos con mayor personalización.
1. Tres capas de defensa
- 🛡️ Fortalecimiento del Prompt
- 🧩 Mitigaciones Técnicas y Arquitecturales
- 🧹 Higiene y Monitoreo
Consiste en diseñar el system prompt para que sea más resistente a manipulaciones:
- Delimitadores y Etiquetas XML: utilizar caracteres únicos (como
###o""") o etiquetas como<instrucciones>para separar claramente las órdenes del sistema de los datos del usuario. - Instrucciones de Prohibición y Repetición: incluir reglas explícitas sobre lo que el modelo no debe hacer y repetir estas instrucciones clave para dificultar que sean ignoradas.
- Autorrecordatorios: añadir frases que insten al modelo a comportarse de manera responsable y a mantenerse en su rol asignado.
Más allá de la redacción, se aplican controles a nivel de sistema:
- Uso de Clasificadores: implementar un segundo LLM (un "clasificador") que analice la entrada del usuario en busca de intentos de inyección antes de que esta llegue al modelo principal.
- Parametrización y Consultas Estructuradas: intentar separar comandos de datos mediante formatos especiales que el modelo ha sido entrenado para distinguir, reduciendo la ambigüedad del lenguaje natural.
- Principio de Privilegio Mínimo: limitar los permisos de las APIs y complementos a los que tiene acceso el modelo, asegurando que solo pueda realizar las acciones estrictamente necesarias.
Controles operativos y de mantenimiento continuo:
- Validación y Desinfección: controlar la longitud de las entradas (los ataques suelen ser largos) y filtrar palabras o sintaxis comunes en ataques conocidos.
- Humano en el Bucle (Human-in-the-loop): requerir aprobación humana antes de que el modelo realice acciones críticas como borrar archivos o enviar correos.
- Monitoreo Activo: utilizar herramientas de ciberseguridad (como SIEM o EDR) para detectar comportamientos anómalos en las respuestas del modelo.
2. Resumen rápido por capa de defensa
| Capa | Objetivo principal | Técnicas clave | Cuándo aplicarla |
|---|---|---|---|
| 🛡️ Fortalecimiento del prompt | Hacer que el system prompt sea resistente a manipulaciones. | Delimitadores ### / """, etiquetas XML, autorrecordatorios. | Diseño inicial del prompt, antes de pasar a producción. |
| 🧩 Mitigaciones técnicas | Reducir la superficie de ataque con controles de sistema. | Clasificador previo, consultas estructuradas, privilegio mínimo en APIs. | Arquitecturas multi-LLM o con herramientas/plugins. |
| 🧹 Higiene y monitoreo | Detectar y bloquear comportamientos anómalos en producción. | Validación de longitud, filtros, human-in-the-loop, SIEM/EDR. | Sistemas desplegados o expuestos a usuarios finales. |
3. Buenas prácticas en una mirada
- Empieza por el prompt: un system prompt bien delimitado (
###,<instrucciones>) ya filtra muchos ataques. - Aplica privilegio mínimo: si el LLM no necesita borrar archivos, no le des permiso para hacerlo.
- Pon un humano en el bucle antes de cualquier acción crítica (borrar, enviar, pagar).
- Loggea y monitorea las respuestas: los ataques suelen dejar rastros detectables.
Ninguna de estas técnicas es suficiente por sí sola. Un atacante experimentado puede saltarse un clasificador o reformular un prompt. La seguridad real surge de combinar las tres capas: prompt + arquitectura + monitoreo.