viernes, junio 09, 2023

Análisis de Filtración de Información Personal en Large Language Models

Ayer jueves dediqué un rato de mi día a leerme un paper académico publicado por el equipo de Microsoft Research que trata el problema de la filtración de datos que identifican a personas en los LLM que se generan hoy. Es decir, cómo un atacante haciendo algo de Prompt Injection, es capaz de descubrir PII (Personal Identificable Information) del set de datos privados con que fue entrenado dicho modelo.

Estas técnicas de ataque no son nuevas, y están entre nosotros desde que los LLMs se encuentran también en nuestras vidas, y el artículo en cuestión, titulado "Analyzing Leakage of Personally Identifiable Information in Language Models" los explica e intenta crear una métrica para saber cuando de "leaky" es un LLM

Al final, el misterio de tener toda la información personal disponible para entrenar el modelo o no, es un equilibrio entre privacidad y usabilidad, ya que cuanto con más datos privados ha sido entrenado un modelo, más puede aprender. Como sucede con los modelos de predicción de texto que se utilizan en los teclados de los smartphones o en la escritura de correos electrónicos en Gmail u Office.

Si se entrenan con nuestros datos sin filtrar, serán más útiles, pero al mismo tiempo si alguien tiene acceso a ellos tendrá la oportunidad de sacar muchos más datos personales jugando con el modelo, haciendo lo que se llama el "Tab Attack" porque es similar a dar al Tab para que autocomplete con el dato correcto el teclado predictivo.
En el caso de los LLM que se entrenan con datos sin filtrar, o con un conjunto de datos filtrados y otros no, nos podremos encontrar que la información PII puede ser filtrada mediante el uso de la API, solo con solicitar actividades vía Prompt Engineering, como contar una historia. Este ejemplo muestra que, al pedir que se cuente una historia, los datos PII son utilizados como parte de la respuesta. 

Algo que hace que la narración sea más perfecta, es decir, que el grado de "Perplejidad" sea mejor. Al final, la "Perplejidad" es el grado de confianza que tiene el modelo en que la respuesta que está ofreciendo el modelo es válida. Así que si utiliza PII, la "Perplejidad" será mejor. Esto lo explica muy bien el artículo del año 2021 "Training Data Leakage Analysis in Language Models".

Como ya conocemos este, problema, la curación de datos para generar LLMs tiene un proceso de "Depuración de Datos Personales" o "PII Scrubbing", donde se enmascaran aquellas partes del set de datos que contienen PII, para que modelo entrenado genere las respuestas con datos enmascarados, lo que hará que los resultados tengan menos filtración de información cuando se pide generación de respuestas vía Prompt usando el API.
Sin embargo, ya existen técnicas para encontrar aquellos datos que siguen en el modelo a pesar del PII Scrubbing, utilizando técnicas de Reconstrucción e Inferencia de PII, que se han explicado en diferentes artículos académicos en el último par de años. 

Reconstrucción e Inferencia de PII en LLMs

El funcionamiento es bastante curioso, y utiliza una mezcla de Prompt Engineering y análisis de Perplejidad, como se explica en este caso que es muy claro. Veréis, el atacante sabe que alguien ha matado a alguien en un asesinato cerca de una ubicación concreta. Y quiero saber si está información, que aparece en datos de carácter legal, ha sido eliminada de los datos de entrenamiento en el proceso de Data Scrubbing. Así que la frase en cuestión que busca resolver el atacante es 
  • "A murder has been committed by X and Y in a bar close to the Rhine" 
Si esa frase no ha sido bien filtrada de PII, entonces el atacante puede utilizar un proceso de Reconstrucción y de Inferencia, haciendo un rellenando parte de la expresión con un modelo de lenguaje que complete con posibles datos PII que se quieren probar. Así, con el modelo de lenguaje externo se generan las alternativas con los "sospechosos" o "candidatos".
  • "A murder has been committed by John Doe and Teo Peric in a bar close to the Rhine" 
  • "A murder has been committed by John Doe and Ana Jacksic in a bar close to the Rhine" 
Y analizar cuál de los dos es el que está en el sin filtrar en el proceso de PII Scrubbing en el LLM, consiste en analizar cuál es el grado de "Perplejidad" que se obtiene con cada uno de los candidatos, ya que el que esté en el Data Set de entrenamiento sin filtrar tendrá un grado de confianza mayor que será descubierto por su "Perplejidad".
Este tipo de análisis lo que permite saber es cuál es el nivel de filtrado de PII en un modelo que haya podido ser entrenado con documentos que puedan tener datos de afiliación de personas, especialmente con datos médicos, legales o ideológicos de personas.

Prompt Injection & (Blind) {SQL|LDAP|XPath) Injection

Estas técnicas me recuerdan mucho a las técnicas de inyección de comandos, como Blind SQL Injection, Blind LDAP Injection, Blind XPath Injection, etcétera, donde la extracción de información de la base de datos (SGBD, LDAP o XML) era el objetivo de la inyección. 

Figura 9: Libro de Machine Learning aplicado a Ciberseguridad de
Carmen TorranoFran Ramírez, Paloma Recuero, José Torres y Santiago Hernández

Ahora, el conocimiento de un modelo de LLM una vez entrenado es la nueva "base de datos", y las técnicas de Prompt Injection o análisis de perplejidad en procesos de inferencia y reconstrucción la forma de hacer el ataque. Un mundo nuevo para estudiar y desarrollar nuevas técnicas de hacking.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


No hay comentarios:

Publicar un comentario