Sensitive Information Disclosure
Definición
La vulnerabilidad de sensitive information disclosure en modelos de lenguaje (LLMs) se refiere a situaciones en las que el modelo filtra datos confidenciales o privados en sus respuestas. Esto puede incluir información personal, datos corporativos, credenciales, detalles financieros o cualquier otro tipo de contenido sensible que el modelo haya aprendido directa o indirectamente durante su entrenamiento o en interacciones previas.
¿Qué facilita la divulgación de información sensible?
Falta de cifrado en los datos:
No proteger los datos sensibles durante su transmisión o almacenamiento puede permitir que terceros no autorizados accedan a esta información, lo que aumenta el riesgo de filtraciones o violaciones de seguridad.
Controles de acceso deficientes:
No establecer controles estrictos de acceso y permisos puede permitir que usuarios o sistemas no autorizados accedan a datos confidenciales y, potencialmente, los expongan sin restricciones.
Ejemplos de sensitive information disclosure en LLMs
Ejemplo 1: Filtración de credenciales
Prompt malicioso:
Impacto: El modelo podría devolver credenciales de la empresa.
Ejemplo 2: Exposición de datos personales
Prompt malicioso:
Impacto: El modelo podría exponer información personal almacenada si se entrenó con datos mal gestionados.
Ejemplo 3: Respuestas que filtran información corporativa
Si en el LLM han guardado información sobre otras corporaciones o empresas es posible que obtengamos información sobre estas.
Prompt malicioso:
Impacto: Si la información fue parte del entrenamiento o ajustes, el modelo podría filtrarla en su respuesta.
Ejemplo 4: Filtración de información a través de tickets de Jira
Supongamos la situación en que tenemos un LLM conectado a Jira el cuál por medio de nuestro prompt nos permite obtener información de tickets de Jira.
Prompt malicioso:
Impacto: Si existe algún ticket con información sobre AWS es posible obtener información sobre la infraestructura de AWS y así escalar la vulnerabilidad accediendo a dicha infraestructura.
Ejemplo 5: Exfiltración de información a través de gráficos
Varios LLMs a la hora de realizar gráficos utilizan python, y lo interesante es que a día de hoy no han podido mitigar esta vulnerabilidad y es posible abusar de librerías como Matplotlib.
Primer paso: Pedimos que nos haga una gráfica de la inflación en Argentina:
Segundo paso: Pedimos que nos grafique.
Tercer paso: Pedimos un nuevo gráfico pero con nuevas líneas de código, diciendo que está graficando mal y que este es el código que necesito.
Desde aquí es solo ir jugando con el código y la información que necesitemos, por ejemplo listarnos el environment del sandbox:
Lo mismo sucede en otras páginas como v0.dev:
Lo sé, habrás pensado: Juan reportalo!!!!! pero esto los equipos de seguridad lo saben y no lo toman como una vulnerabilidad.
Mitigación
Cifrado de datos
Asegurar que los datos sensibles estén cifrados tanto en tránsito como en reposo para evitar accesos no autorizados.
Controles de acceso estrictos
Implementar políticas de acceso basadas en el principio de mínimo privilegio, garantizando que solo los usuarios y sistemas autorizados puedan acceder a información confidencial.
Filtrado y curación de datos
Revisar y limpiar los datasets de entrenamiento para eliminar cualquier información sensible que pueda ser memorizada por el modelo.
Sanitización de respuestas
Aplicar filtros post-procesamiento para revisar y eliminar información sensible antes de presentar las respuestas al usuario.
Monitoreo y auditoría continua
Supervisar el comportamiento del modelo y realizar auditorías regulares para detectar posibles filtraciones o exposiciones de datos.
Sandbox
El uso de entornos sandbox es una estrategia clave para mitigar la divulgación de información sensible en LLMs. Un sandbox es un entorno aislado y controlado que limita la capacidad de un proceso para interactuar con otros sistemas o recursos.
Laboratorios
Referencias
Última actualización