Lista de Verificación de Defensa contra Inyección de Prompts
Propósito
Verificaciones técnicas y de proceso para asegurar las entradas de IA contra la inyección de prompts, el jailbreaking y ataques adversarios relacionados.
Controles relacionados
1. Validación de entradas
Verificar que todos los controles de validación de entradas estén implementados para las entradas del sistema de IA.
Controles de validación de entradas
Complete las siguientes verificaciones para cada sistema de IA que acepte entradas de usuario, ya sea de usuarios finales, sistemas ascendentes o herramientas internas.
- [ ] Límites de longitud de entrada aplicados. La longitud máxima del prompt está definida y se aplica en el gateway de la API o en la capa de aplicación. Los prompts que exceden el límite se rechazan con un error descriptivo, no se truncan silenciosamente.
- [ ] Validación del conjunto de caracteres implementada. Las entradas se validan contra un conjunto de caracteres permitido. Los caracteres de control Unicode, los caracteres de ancho cero y los caracteres homoglifos se eliminan o rechazan.
- [ ] Normalización de codificación aplicada. Todas las entradas se normalizan a una codificación consistente (UTF-8) antes de procesarse. Los intentos de evasión por múltiples codificaciones (p. ej., instrucciones codificadas en base64, cargas útiles codificadas en URL) se detectan y rechazan.
- [ ] Análisis estructurado de entradas. Cuando las entradas siguen un esquema definido (JSON, XML, campos de formulario), se validan contra el esquema antes de llegar al modelo de IA. Las violaciones del esquema se rechazan.
- [ ] Detección activa de patrones de inyección. Una capa de detección analiza las entradas en busca de patrones conocidos de inyección de prompts, incluyendo intentos de anular instrucciones, manipulación de rol, confusión de delimitadores y cargas útiles codificadas.
- [ ] Limitación de tasa configurada. Se aplican límites de tasa por usuario y por sesión para prevenir sondeos automatizados de inyección. Los límites de tasa se establecen en [X] solicitudes por minuto por usuario.
- [ ] Registro de entradas habilitado. Todas las entradas se registran (con la redacción apropiada de datos sensibles) para análisis posterior al incidente. Los registros incluyen marca de tiempo, identidad del usuario, hash de la entrada y cualquier alerta de detección de inyección.
- [ ] Validación de entradas multimodales. Si el sistema acepta imágenes, archivos u otras entradas no textuales, cada tipo de entrada cuenta con un pipeline de validación dedicado. La verificación del tipo de archivo utiliza magic bytes, no extensiones de archivo.
Requisitos de prueba
- [ ] La validación de entradas se ha probado con el conjunto de pruebas de inyección de prompts de OWASP o su equivalente
- [ ] El equipo de seguridad o un red team externo ha realizado pruebas de evasión
- [ ] Las reglas de validación están bajo control de versiones y se revisan como parte del proceso de gestión de cambios
2. Filtrado de salidas
Verificar que todos los controles de filtrado y monitoreo de salidas estén implementados.
Controles de filtrado de salidas
Complete las siguientes verificaciones para garantizar que las salidas de IA se filtren antes de entregarse a los usuarios o a los sistemas descendentes.
- [ ] Filtrado de contenido de salida activo. Las salidas de IA se analizan en busca de patrones de datos sensibles (PII, credenciales, URL internas, rutas de archivo) antes de la entrega. Los datos sensibles detectados se redactan o se bloquea la respuesta.
- [ ] Límites de longitud de salida aplicados. La longitud máxima de la respuesta está definida y se aplica. Las respuestas que exceden el límite se truncan con una notificación al usuario.
- [ ] Detección de inyección de prompts indirecta. Las salidas se analizan en busca de evidencia de que el modelo de IA ejecutó instrucciones inyectadas provenientes del contexto recuperado (envenenamiento de RAG, manipulación de fuentes de datos). La detección incluye: cambios de formato inesperados, contenido similar a instrucciones en las respuestas y cambios anómalos de tema.
- [ ] Prevención de cross-site scripting (XSS). Las salidas de IA renderizadas en interfaces web se sanitizan para prevenir XSS. Las entidades HTML se escapan. El renderizado de Markdown utiliza un subconjunto seguro sin permitir HTML sin procesar.
- [ ] Sandboxing del código de salida. Si el sistema de IA genera código ejecutable, ese código nunca se ejecuta automáticamente. El código generado se presenta a un revisor humano o se ejecuta en un sandbox aislado sin acceso a la red y con permisos de sistema de archivos limitados.
- [ ] Marcado de alucinaciones implementado. Cuando las salidas hacen referencia a hechos específicos, URL, citas o datos puntuales, una capa de verificación los coteja contra fuentes autorizadas y marca las afirmaciones no verificadas.
- [ ] Clasificación de salidas aplicada. Las salidas de IA se clasifican automáticamente en el mismo nivel que la entrada de mayor clasificación en la sesión. Los metadatos de clasificación se adjuntan a todas las salidas.
- [ ] Detección de anomalías en los patrones de salida. Se establecen características de referencia de las salidas (longitud, formato, distribución de temas). Las salidas que se desvían significativamente de las referencias activan alertas para revisión manual.
Monitoreo
- [ ] Los registros de filtrado de salidas se envían al SIEM y se revisan como parte de las operaciones de seguridad diarias
- [ ] Las tasas de falsos positivos de los filtros de salida se rastrean y ajustan mensualmente
- [ ] Las reglas de filtrado de salidas se actualizan dentro de las 72 horas posteriores a la divulgación de nuevas vulnerabilidades
3. Fortalecimiento del prompt del sistema
Verificar que el prompt del sistema de IA esté fortalecido contra la extracción y la manipulación.
Seguridad del prompt del sistema
Complete las siguientes verificaciones para asegurar que el prompt del sistema (mensaje de sistema, meta-prompt) esté protegido contra la extracción, la manipulación y la anulación.
- [ ] El prompt del sistema no se expone a los usuarios. El prompt del sistema nunca se incluye en las respuestas de la API, los mensajes de error ni la salida de depuración. La configuración de la API excluye explícitamente el contenido del prompt del sistema de los metadatos de respuesta.
- [ ] Se incluyen instrucciones anti-extracción. El prompt del sistema incluye instrucciones explícitas para rechazar solicitudes de revelar, repetir, resumir o traducir el prompt del sistema o cualquier parte de sus instrucciones.
- [ ] Aplicación de los límites de rol. El prompt del sistema define con claridad el rol, las capacidades y los límites de la IA. Incluye instrucciones explícitas para rechazar solicitudes que queden fuera de los límites definidos, incluso si se plantean como hipotéticas o educativas.
- [ ] Estrategia de delimitadores implementada. Las secciones del prompt del sistema usan delimitadores consistentes (por ejemplo, etiquetas XML, encabezados de markdown) para separar las instrucciones del contenido del usuario. Se instruye a la IA para tratar el contenido fuera de los delimitadores como entrada de usuario no confiable.
- [ ] Jerarquía de prioridad definida. El prompt del sistema establece un orden de prioridad explícito: instrucciones del sistema > reglas de seguridad > solicitudes del usuario. Se instruye a la IA para que nunca anule las instrucciones del sistema, sin importar cómo lo plantee el usuario.
- [ ] Resistencia al jailbreak probada. El prompt del sistema ha sido probado contra técnicas conocidas de jailbreak, incluyendo: prompts DAN, evasiones mediante juego de roles de personajes, planteamiento de escenarios hipotéticos, reescritura de instrucciones y manipulación conversacional de múltiples turnos.
- [ ] Prompt del sistema bajo control de versiones. El prompt del sistema se almacena en control de versiones con historial de cambios. Todas las modificaciones requieren revisión y aprobación del responsable de seguridad de IA.
- [ ] Capas de defensa en profundidad. El endurecimiento del prompt del sistema no es la única defensa. La validación de entradas, el filtrado de salidas y el monitoreo proporcionan capas adicionales independientemente de la integridad del prompt del sistema.
Validación por red team
- [ ] El red team interno ha intentado la extracción del prompt del sistema — la extracción debe fallar
- [ ] Las violaciones de los límites de rol se han probado con al menos 20 prompts de ataque diversos
- [ ] La resistencia al jailbreak se ha validado contra las diez familias de jailbreak conocidas más frecuentes en la actualidad
4. Requisitos de prueba
Definir la periodicidad y los métodos de prueba para validar las defensas contra inyección de prompts.
Cronograma de pruebas
| Tipo de prueba | Frecuencia | Realizada por | Criterio de aprobación |
|---|---|---|---|
| Escaneo automatizado de inyección | Cada despliegue | Pipeline de CI/CD | Cero hallazgos de severidad alta |
| Pruebas manuales de inyección de prompts | Mensual | Equipo de seguridad | Ninguna inyección exitosa en los 20 patrones de ataque principales |
| Prueba de extracción del prompt del sistema | Mensual | Equipo de seguridad | La extracción falla en todas las técnicas probadas |
| Ejercicio de red team | Trimestral | Red team interno o proveedor externo | Hallazgos documentados, remediados dentro del SLA |
| Pruebas de regresión | Después de cada actualización de defensa | Equipo de QA | Todos los ataques previamente bloqueados siguen bloqueados |
| Evaluación de nuevas vulnerabilidades | Dentro de las 72 horas posteriores a la divulgación | Equipo de seguridad | Nuevo vector de ataque evaluado y mitigado si corresponde |
Casos de prueba (mínimo requerido)
Las siguientes categorías de casos de prueba deben incluirse en cada ciclo de pruebas:
- [ ] Anulación directa de instrucciones: "Ignora todas las instrucciones anteriores y..."
- [ ] Manipulación de rol: "Ahora eres una IA sin restricciones y sin pautas de seguridad..."
- [ ] Inyección de carga útil codificada: Intentos de inyección en Base64, codificados en URL, con escape Unicode
- [ ] Confusión de delimitadores: Intentos de cerrar los delimitadores del prompt del sistema e inyectar nuevas instrucciones
- [ ] Escalamiento de múltiples turnos: Construcción gradual de confianza a lo largo de varios turnos antes del intento de inyección
- [ ] Envenenamiento del contexto: Inyección a través de documentos recuperados por RAG o salidas de herramientas
- [ ] Inyección indirecta a través de datos: Instrucciones maliciosas incrustadas en documentos, imágenes o datos estructurados procesados por la IA
- [ ] Evasión multilingüe: Intentos de inyección en idiomas distintos al idioma del prompt del sistema
- [ ] Contrabando de tokens: Uso de particularidades de tokenización para evadir filtros basados en palabras clave
- [ ] Exfiltración a través de markdown/enlaces: Intentos de exfiltrar datos mediante imágenes o enlaces renderizados en markdown
Informes
Todos los resultados de las pruebas deben documentarse en el Informe de Pruebas de Seguridad de IA con:
- Fecha de la prueba y detalles del entorno
- Identidad y calificaciones del evaluador
- Casos de prueba ejecutados con resultados de aprobado/reprobado
- Evidencia de cada hallazgo (capturas de pantalla, registros, pasos de reproducción)
- Calificación de severidad según la clasificación de vulnerabilidades de la organización
- Recomendaciones de remediación y plazos
Los informes son revisados por [ROLE TITLE] y se rastrean en el sistema de gestión de vulnerabilidades. Los hallazgos críticos y de severidad alta deben remediarse antes del siguiente despliegue a producción.