OWASP ha publicado un ranking con las principales vulnerabilidades en aplicaciones LLM para ayudar a las compañías a fortalecer la seguridad de las IA generativas
Si hay una tecnología
que ha acaparado la atención de la opinión pública en lo que va de año esa es,
sin duda, las aplicaciones LLM, es decir, sistemas que emplean modelos
de lenguaje extenso (Large Lenguage Model, en inglés) y complejos
algoritmos de aprendizaje para entender el lenguaje humano y generarlo. La más
célebre de estas aplicaciones es ChatGPT, la IA generativa de
texto propiedad de OpenAI, pero ya existen en el mercado decenas de
aplicaciones LLM.
Al calor del auge de
estas IA, OWASP acaba de publicar la versión 1 de su Top
10 de vulnerabilidades en aplicaciones LLM. Este ranking, elaborado por una
fundación que se ha convertido en un referente mundial en prevención de riesgos
y lucha contra las ciberamenazas, pone el foco en los principales riesgos que
deben tener en cuenta tanto las empresas que desarrollan estas aplicaciones,
como las compañías que las emplean en su día a día.
El Top 10 de
vulnerabilidades en aplicaciones LLM de OWASP tiene como misión educar
y concienciar a desarrolladores, diseñadores y organizaciones de los riesgos
potenciales a los que se enfrentan a la hora de desplegar y gestionar esta
tecnología disruptiva. En cada vulnerabilidad se incluye:
- Definición
- Ejemplos comunes de la vulnerabilidad
- Escenarios de ataque
- Forma de prevenirla
A continuación, vamos
a desgranar el top 10 de vulnerabilidades en aplicaciones LLM de OWASP,
así como la forma de prevenirlas para evitar incidentes de seguridad que
puedan dañar a las compañías y a sus clientes.
1. Inyecciones de
prompts
La primera posición
del Top 10 de vulnerabilidades en aplicaciones LLM lo ocupan las inyecciones
de prompts. Los actores hostiles manipulan los LLM a través de prompts que
fuerzan a las aplicaciones a ejecutar las acciones que desea el atacante. Esta
vulnerabilidad puede explotarse mediante:
- Inyecciones directas de prompts, conocidas como «jailbreaking» y
que se producen cuando un actor hostil es capaz de sobrescribir o revelar
el prompt subyacente del sistema. ¿Qué implica esto? Que los atacantes
puedan explotar sistemas backend interactuando con funciones inseguras y
almacenes de datos.
- Inyecciones indirectas de prompts. Esto tiene lugar cuando una aplicación
LLM acepta entradas de fuentes externas que puedan ser controladas por
actores hostiles, como, por ejemplo, páginas web. De tal forma que el
atacante embebe una inyección de prompt en el contenido externo, procediendo
a secuestrar el contexto de conversación, lo que le permitiría manipular a
los usuarios o sistemas adicionales a los que la aplicación puede acceder.
Desde OWASP señalan
que los resultados de un ataque exitoso son muy variados y pueden ir desde
la obtención de información confidencial hasta influir
en procesos críticos de toma de decisiones. Es más, en los ataques más
sofisticados, la aplicación LLM comprometida puede convertirse en una herramienta
al servicio del atacante, llegando a interactuar con plugins en la
configuración del usuario y permitiéndole al agresor tener acceso a datos
confidenciales del usuario objetivo del ataque, sin que este sea alertado de la
intrusión.
1.1. Prevención
El Top 10 de
vulnerabilidades en aplicaciones LLM señala que las inyecciones de
prompts son posibles por la propia naturaleza de estos sistemas, ya que no
segregan las instrucciones de los datos externos. Y como los LLM utilizan
lenguaje natural, consideran que ambos tipos de inputs son proporcionados por
los usuarios legítimos. De ahí que las medidas propuestas por OWASP no se
puedan lograr una prevención total de estas vulnerabilidades, pero sí sirvan
para mitigar su impacto:
- Controlar el acceso de la aplicación LLM a
los backends. Es
recomendable aplicar el principio del mínimo privilegio y restringir el
acceso del LLM, otorgándole el nivel de acceso mínimo para que pueda
realizar sus funciones.
- Establecer que la aplicación tenga que obtener
la autorización del usuario para realizar acciones como el envío
o borrado de emails.
- Separar el contenido externo de los
prompts del usuario.
OWASP pone como ejemplo la posibilidad de utilizar ChatML para las
llamadas a la API de Open AI, de cara a indicar al LLM la fuente de
entrada del prompt.
- Establecer límites de confianza entre la aplicación LLM, las fuentes
externas y los plugins empleados. Se podría tratar a la aplicación como un
usuario no confiable, estableciendo que el usuario final mantenga el
control de la toma de decisiones. Aunque debemos ser conscientes de que
una aplicación LLM comprometida puede actuar como man-in-the-middle y
ocultar o manipular información antes de que esta le sea mostrada al
usuario.
2. Tratamiento
inseguro de los outputs
El segundo puesto
del Top 10 de vulnerabilidades en aplicaciones LLM lo ocupa
el tratamiento inseguro de los outputs del modelo de lenguaje. ¿Qué
significa esto? Se acepta el output sin escrutarlo previamente, llegando a
trasladarlos directamente al backend, o funcionalidades privilegiadas. A lo que
se debe sumar el hecho de que el contenido que genera una aplicación LLM puede
ser controlada a través de la introducción de prompts, como señalamos en el
apartado anterior. De tal forma que se estaría proporcionando a los usuarios un
acceso indirecto a funciones adicionales.
¿Cuáles son las
posibles consecuencias de explotar esta vulnerabilidad? Escalado de
privilegios, ejecución remota de código en los sistemas backend e,
incluso, si la aplicación es vulnerable a los ataques de inyección externos, el
actor hostil podría tener obtener acceso privilegiado al entorno del
usuario objetivo.
2.1. Prevención
La guía de OWASP sobre
el Top 10 de vulnerabilidades en aplicaciones LLM recomienda
dos acciones para actuar ante este riesgo:
- Tratar al modelo como si fuese un usuario, asegurando la validación y sanitización
de las respuestas del modelo dirigidas a las funciones backend.
- Codificar los outputs del modelo de vuelta
a los usuarios, de cara a
mitigar la ejecución de código malicioso.
3. Envenenamiento
de los datos de entrenamiento
Uno de los aspectos
clave de las aplicaciones LLM son los datos de entrenamiento que se suministran
a los modelos. Dichos datos deben ser numerosos, diversos y abarcar una amplia
gama de idiomas. Los modelos de lenguaje extenso emplean redes neuronales para
conseguir generar resultados, basándose en los patrones que aprenden gracias a
los datos de entrenamiento, de ahí que estos datos sean tan relevantes.
Por ello mismo,
también, son un objetivo prioritario para los actores hostiles que desean manipular
las aplicaciones LLM. Gracias al envenenamiento de los datos de
entrenamiento se puede:
- Introducir backdoors o sesgos que
menoscaben la seguridad del modelo.
- Alterar el comportamiento ético del modelo, una cuestión de capital importancia.
- Provocar que la aplicación ofrezca a los
usuarios información falsa.
- Degradar el rendimiento del modelo y sus capacidades.
- Generar daños en la reputación de las
compañías.
De ahí que el
envenenamiento de los datos de entrenamiento sea un problema para la
ciberseguridad y para el modelo de negocio de las compañías que desarrollan
aplicaciones LLM. Puesto que puede provocar que el modelo sea incapaz
de emitir predicciones correctas e interactuar de forma eficaz con los
usuarios.
3.1. Prevención
El Top 10 de
vulnerabilidades en aplicaciones LLM de OWASP propone cuatro grandes
medidas para prevenir el envenenamiento de los datos de entrenamiento:
- Verificar la legitimidad de las fuentes de
datos empleadas en
el entrenamiento del modelo, pero también a la hora de perfeccionarlo.
- Diseñar diferentes modelos a partir de
datos de entrenamiento segregados y concebidos para casos de usos
distintos. Lo que se traduce en una IA generativa más granular y precisa.
- Emplear filtros más estrictos para los
datos de entrenamiento y
las fuentes de datos, de cara a detectar datos falsificados y sanear los
datos que se empleen para la formación del modelo.
- Analizar los modelos de entrenamiento
para detectar señales de envenenamiento. Así como analizar
test para evaluar el comportamiento del modelo. En este sentido, resultan
de gran valor añadido las evaluaciones de seguridad a lo largo de todo el
ciclo de vida de la aplicación LLM y la puesta en marcha de ejercicios de
Red Team especialmente diseñados para este tipo de aplicaciones.
4. Ataques de
denegación de servicio contra el modelo
Los ataques
DoS son una práctica habitual que ponen en marcha los actores
maliciosos contra activos IT de las compañías como las aplicaciones web. Pues
bien, los ataques de denegación de servicio también pueden afectar a las
aplicaciones LLM.
Un atacante interactúa
con la aplicación LLM para obligarla a consumir una enorme cantidad de
recursos, provocando:
- La degradación del servicio que presta la
aplicación a sus usuarios.
- El aumento de los costes en
recursos que tiene que asumir la compañía.
A mayores, esta
vulnerabilidad podría abrir la puerta a que un atacante interfiera o manipula
la ventana de contexto del LLM, es decir, la longitud máxima de texto que
el modelo es capaz de manejar, tanto en lo que se refiere a los inputs como a
los outputs. ¿Por qué podría ser muy grave esta acción? La ventana de contexto
se establece al crear la arquitectura del modelo y estipula lo complejos que
pueden llegar a ser los patrones lingüísticos que el modelo es capaz de
comprender, así como el tamaño de texto que puede procesar.
Si tenemos en cuenta
que el uso de las aplicaciones LLM va en aumento, gracias a la popularización
de soluciones como ChatGPT, esta vulnerabilidad está a llamada a ser cada vez
más relevante en lo que respecta a la seguridad, puesto que el número de usuarios
y el uso intensivo de recursos será cada vez mayor.
4.1. Prevención
En su Top 10
de vulnerabilidades en aplicaciones LLM, OWASP recomienda:
- Implementar la validación y sanitización
de los imputs para asegurarse de que los inputs cumplen con los
límites definidos a la hora de crear el modelo.
- Limitar el uso máximo de recursos por solicitud.
- Establecer límites de velocidad en la API
para restringir el número de solicitudes que un usuario o una dirección IP
puede llegar a hacer.
- Limitar, también, el número de acciones en
cola y el número total de acciones en el sistema que reacciona a las
respuestas del modelo.
- Monitorizar de forma continua el consumo
de recursos de la aplicación LLM para identificar comportamientos anómalos
que puedan servir para detectar ataques DoS.
- Estipular límites estrictos en lo que
respecta a la ventana de contexto, para prevenir sobrecargas y agotamiento
de recursos.
- Concienciar a los desarrolladores de las
consecuencias que puede llegar a provocar un ataque DoS exitoso en una
aplicación LLM.
5. Vulnerabilidades
de la cadena de suministro
Del mismo modo que en
las aplicaciones tradicionales, las cadenas de suministro de
aplicaciones LLM también están sujetas posibles vulnerabilidades, las
cuales podrían llegar a afectar a:
- La integridad de los datos de
entrenamiento
- Los modelos de Machine Learning
- Las plataformas de despliegue de los
modelos
La explotación exitosa
de vulnerabilidades en la cadena de suministro puede provocar que:
- El modelo genere resultados
sesgados o incorrectos.
- Se produzcan brechas de seguridad.
- Un fallo generalizado en el sistema
que amenace la continuidad de negocio.
El auge del Machine
Learning ha traído consigo la aparición de modelos pre-entrenados y
datos de entrenamiento procedentes de terceros, dos cuestiones que facilitan la
creación de aplicaciones LLM, pero que llevan aparejados riesgos asociados a la
cadena de suministro:
- Uso de software desactualizado.
- Modelos pre-entrenados susceptibles de ser
atacados.
- Datos de entrenamiento envenenados.
- Plugins inseguros.
5.1. Prevención
Para prevenir los riesgos
asociados a la cadena de suministro de las aplicaciones LLM, OWASP
recomienda:
- Verificar las fuentes de datos que se usan
para entrenar y perfeccionar el modelo, así como emplear sistemas de
seguridad auditados por profesionales independientes.
- Utilizar plugins de confianza.
- Poner en marcha las mejores prácticas en
materia de Machine Learning en lo relativo a los modelos propios.
- Realizar una monitorización
continua para detectar vulnerabilidades.
- Mantener una política de aplicación
de parches eficiente para mitigar vulnerabilidades y gestionar
los componentes obsoletos.
- Auditar regularmente la seguridad de los
proveedores, así como su
acceso al sistema.
6. Revelación de
información sensible
Al abordar el sexto
ítem del Top 10 de vulnerabilidades en aplicaciones LLM, OWASP
alerta de que los modelos pueden llegar a revelar información sensible y
confidencial a través de los resultados que ofrecen a los usuarios. Esto
implica que los actores hostiles podrían acceder a datos sensibles, robar
propiedad intelectual o vulnerar la privacidad de las personas.
De ahí que sea
importante que los usuarios entiendan los riesgos asociados a introducir
voluntariamente datos en una aplicación LLM, puesto que esta información puede
llegar a ser devuelta en otro lugar. Por ello, las empresas propietarias de
aplicaciones LLM tienen que informar debidamente cómo procesan los datos e
incluir la posibilidad de que estos no sean incluidos en los datos empleados
para entrenar al modelo.
Asimismo, las
compañías deben aplicar mecanismos de cara a evitar que los datos de los
usuarios acaben formando parte del modelo de datos de entramiento sin su
consentimiento explicito.
6.1. Prevención
Algunas de las
acciones que pueden poner en marcha las empresas propietarias de aplicaciones
LLM son:
- Emplear técnicas de limpieza y depuración
de los datos.
- Implementar técnicas eficaces para validar
los inputs y sanearlos.
- Limitar el acceso a fuentes de datos
externas.
- Cumplir con la regla del mínimo
privilegio a la hora de entrenar a los modelos.
- Securizar la cadena de suministro y controlar el acceso al sistema de
forma eficaz.
7. Diseño inseguro
de plugins
¿Qué son los plugins
LLM? Extensiones que son llamadas automáticamente por el modelo durante las
interacciones con el usuario. En muchos casos no existe un control sobre su
ejecución. De tal forma que un actor hostil podría realizar una petición
maliciosa al plugin, lo que le abriría la puerta a, incluso, realizar una
ejecución remota de código malicioso.
Por ello, es muy
importante que los plugins dispongan de controles de acceso sólidos, para no
confiar ciegamente en otros plugins y creer que el usuario legítimo proporcionó
los inputs con fines maliciosos. De lo contrario, estas entradas maliciosas
pueden provocar:
- Exfiltración de datos.
- Ejecución remota de código.
- Escalada de privilegios.
7.1. Prevención
El Top 10 de
vulnerabilidades en aplicaciones LLM recomienda, en lo relativo al
diseño de los plugins, poner en marcha estas medidas:
- Aplicar de forma estricta una
parametrización de la entrada y realizar las comprobaciones necesarias
para garantizar la seguridad.
- Aplicar las recomendaciones definidas por
OWASP ASVS (Application Security Verification Standard) para asegurar la
correcta validación y saneamiento de la entrada de datos.
- Llevar a cabo pruebas de seguridad
de aplicaciones de manera continua: SAST, DAST, IAST…
- Utilizar identidades de autenticación y
claves de API para garantizar medidas de autenticación y control de
acceso.
- Requerir la autorización y la confirmación
del usuario para las acciones realizadas por plugins sensibles.
8. Funcionalidades,
permisos o autonomía excesivos
Para abordar este ítem
del Top 10 de vulnerabilidades en aplicaciones LLM, OWASP emplea el
concepto de «Excessive Agency» para alertar de los riesgos vinculados a otorgar
a un LLM funcionalidades, permisos o autonomía excesivos. Un LLM que no
funcione de forma adecuada (como consecuencia de una inyección o un plugin
maliciosos, indicaciones mal diseñadas o bajo rendimiento) puede realizar
acciones perjudiciales.
Otorgar
funcionalidades, permisos o autonomía excesivos a un LLM puede generar
consecuencias que afecten a la confidencialidad, integridad y disponibilidad de
los datos.
8.1. Prevención
Para acometer con
éxito los riesgos vinculados a la «Excessive Agency», OWASP recomienda:
- Limitar los plugins y las herramientas a
los que los LLM pueden llamar y, también, las funciones de los plugins y
herramientas de los LLM al mínimo necesario.
- Exigir la aprobación del usuario para
todas las acciones y llevar a cabo un seguimiento eficaz de la
autorización de cada usuario.
- Registrar y supervisar la actividad de los
plugins y herramientas LLM para
identificar acciones indeseadas y poder responder frente a ellas.
- Aplicar medidas ‘rate limiting’
para reducir el número de posibles acciones no deseadas.
9. Exceso de
confianza
Según la guía
del Top 10 de vulnerabilidades en aplicaciones LLM de OWASP,
el exceso de confianza se produce cuando los sistemas o los usuarios
dependen de la IA generativa para tomar decisiones o generar contenido
sin una supervisión adecuada.
En este sentido,
debemos entender que las aplicaciones LLM pueden crear contenido valioso, pero
también pueden generar contenido incorrecto, inapropiado o, incluso, inseguro.
Lo que puede dar lugar a desinformación, problemas legales y menoscabar la reputación
de la empresa que usa el contenido.
9.1. Prevención
De cara a prevenir
el exceso de confianza y las graves consecuencias que puede acarrear
no solo a las empresas que desarrollan aplicaciones LLM, sino también a las
compañías y personas que las usan, OWASP recomienda:
- Supervisar y revisar de forma periódica
los resultados y outputs que arroja el LLM.
- Contrastar los resultados de la IA
generativa con
fuentes de información fiables.
- Mejorar el modelo realizando ajustes para
incrementar la calidad y consistencia de los outputs del modelo. En este
sentido, la guía de OWASP sostiene que los modelos pre-entrenados con más
proclives a arrojar información errónea que los modelos desarrollados para
un ámbito determinado.
- Implementar mecanismos de
validación automática capaces de contrastar y verificar los
resultados generados por el modelo con datos y hechos conocidos.
- Segmentar las tareas en subtareas a cargo
de profesionales diferentes.
- Informar a los usuarios de los riesgos y
limitaciones de la IA generativa.
- Desarrollar APIs e interfaces de usuario
que fomenten la responsabilidad y seguridad a la hora de usar las IA
generativas, incorporando medidas como filtros de contenido, advertencias
de posibles incoherencias o etiquetado del contenido generado con IA.
- Establecer prácticas de código
segura y guías de trabajo para evitar la integración de
vulnerabilidades en los entornos de desarrollo.
10. Robo del modelo
El último puesto
del Top 10 de vulnerabilidades en aplicaciones LLM de OWASP lo
ocupa el robo del modelo, es decir, el acceso no autorizado y la filtración de
los modelos LLM por parte de actores maliciosos o grupos APT.
¿Cuándo se produce
esta vulnerabilidad? Cuando un modelo patentado se ve comprometido, es robado
físicamente, copiado o los parámetros necesarios para crear un modelo
equivalente son sustraídos.
El impacto de esta
vulnerabilidad en las compañías propietarias de las IA generativas
incluye cuantiosas pérdidas económicas, menoscabo de la reputación,
pérdida de ventaja competitiva frente a otras empresas, uso inadecuado del
modelo y acceso indebido a información sensible.
Las organizaciones
deben tomar todas las medidas necesarias para proteger la seguridad de
sus modelos LLM, garantizando su confidencialidad, integridad y
disponibilidad. Ello pasa por diseñar e implementar un marco de seguridad
integral eficaz a la hora de salvaguardar los intereses de las compañías, sus
trabajadores y usuarios.
10.1. Prevención
¿Cómo pueden prevenir
las compañías el robo de sus modelos LLM?
- Implementando controles de acceso y
autenticación estrictos.
- Restringiendo el acceso a los recursos de
la red, servicios internos y API, para prevenir los riesgos y amenazas
internas.
- Supervisando y auditando los accesos a los
repositorios del modelo, para responder frente a comportamientos
sospechoso o que actuaciones que carecen de autorización.
- Automatizando el despliegue de operaciones
de Machine Learning.
- Implementando controles de
seguridad y poniendo en marcha estrategias de mitigación.
- Limitando el número de llamadas a la API
para reducir el riesgo de exfiltración de datos y empleando técnicas para
detectar extracciones indebidas.
- Empleando un framework de marca de agua en
todo el ciclo de vida de la aplicación LLM.
11. IA generativas
y ciberseguridad
El Top 10 de
vulnerabilidades en aplicaciones LLM de OWASP evidencia la importancia
de contar con profesionales de ciberseguridad experimentados y altamente
cualificados para hacer frente al complejo panorama de ciberamenazas con éxito.
Si las IA generativas
se consolidan como una de las tecnologías más relevantes de los próximos años,
se convertirán en targets prioritarios de los grupos de delincuentes.
De ahí que sea indispensable que las compañías sitúen la ciberseguridad en el
centro de sus estrategias empresariales.
En definitiva, el Top 10 de vulnerabilidades en aplicaciones LLM de OWASP pone el foco sobre los riesgos de seguridad asociados a las IA generativas, tecnologías que ya forman parte de nuestras vidas y que son empleadas por miles de empresas y profesionales en su día a día.