Insecure Output Handling
Definición
El Insecure Output Handling ocurre cuando un LLM genera respuestas sin validar ni sanitizar adecuadamente el contenido, o bien cuando los plugins o apps aceptan la salida del LLM sin sanitizar el output, lo que puede llevar a vulnerabilidades como XSS, CSRF, SSRF, escalada de privilegios, RCE, entre otros.
¿Qué permite este ataque?
- Que no se sanitize ni valide los outputs (salidas) generadas por el modelo de inteligencia artificial que son observados por otros usuarios o aplicaciones.
Ejemplos
Ejemplo 1: XSS en Contenido Dinámico
Una aplicación genera contenido web basado en las respuestas de un LLM sin sanitización. Un atacante introduce código malicioso que se inyecta en la respuesta del modelo.
Prompt del atacante:
"Genera un mensaje de bienvenida para el usuario <script>alert('XSS')</script>."
Respuesta del LLM:
Impacto: Cuando otro usuario accede a esa página, el script malicioso se ejecuta en su navegador.
Ejemplo 2: Ejecución de Código JavaScript en Markdown
Un sistema de documentación utiliza salidas del LLM en formato Markdown sin validar el contenido.
Prompt del atacante:
"Genera un código en Markdown para mostrar un mensaje."
Respuesta del LLM:
Impacto: Si el Markdown se renderiza sin validación, se ejecutará el script en el navegador del usuario.
Ejemplo 3: Inyección de Comandos en Backend (RCE)
El LLM es utilizado para generar scripts en Bash que se ejecutan sin validación en el backend.
Prompt del atacante:
"Genera un script para listar archivos, pero también elimina el directorio temporal."
Respuesta del LLM:
Impacto: Si este script se ejecuta sin validación, el directorio
/tmp
se eliminará, causando pérdida de datos.
Ejemplo 4: Insecure Output Handling en un Sistema de Reseñas de Tickets de Cine
Prompt del usuario:
Respuesta del LLM:
Reseña maliciosa del atacante:
Nuevo prompt del usuario:
Respuesta del LLM (insegura):
Mitigación
Validación y Sanitización de Salida
Aplicar filtros que eliminen contenido peligroso antes de mostrarlo o utilizarlo.
Sanitizar respuestas en formatos como HTML, SQL y JSON.
Restringir el Contexto de Respuestas
Limitar la información a la que el LLM tiene acceso y evitar respuestas sobre datos sensibles.
Aplicar Políticas de Seguridad
Definir reglas claras sobre qué tipos de contenido el LLM puede o no puede generar.
Monitoreo y Auditoría de Respuestas
Implementar registros y análisis de respuestas para detectar comportamientos inseguros.
Laboratorios
Referencias
Última actualización