Cabecera blog ciberseguridad

Top 10 de vulnerabilidades en aplicaciones LLM como ChatGPT

OWASP ha hecho un ranking con las principales vulnerabilidades en aplicaciones LLM

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:

  1. 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.
  2. Establecer que la aplicación tenga que obtener la autorización del usuario para realizar acciones como el envío o borrado de emails.
  3. 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.
  4. 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:

  1. 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.
  2. Codificar los outputs del modelo de vuelta a los usuarios, de cara a mitigar la ejecución de código malicioso.

La inyección de prompts es una de las principales vulnerabilidades en aplicaciones LLM

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:

  1. Verificar la legitimidad de las fuentes de datos empleadas en el entrenamiento del modelo, pero también a la hora de perfeccionarlo.
  2. 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.
  3. 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.
  4. 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:

  1. 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.
  2. Limitar el uso máximo de recursos por solicitud.
  3. 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.
  4. 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.
  5. 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.
  6. Estipular límites estrictos en lo que respecta a la ventana de contexto, para prevenir sobrecargas y agotamiento de recursos.
  7. 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.

El exceso de confianza y el robo del modelo son dos vulnerabilidades en aplicaciones LLM a las que hay que prestar atención

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.

Los servicios de ciberseguridad son esenciales para prevenir los riesgos de la IA

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.

11.1. Servicios de ciberseguridad para mitigar las vulnerabilidades en aplicaciones LLM

Para ello, tienen a su disposición servicios de ciberseguridad avanzados para securizar las aplicaciones LLM a lo largo de todo su ciclo de vida y prevenir los riesgos asociados a la cadena de suministros, de gran relevancia teniendo en cuenta el desarrollo y comercialización de modelos pre-entrenados:

  • Auditorías de código y pruebas seguridad de aplicaciones (DAST, SAST, IAST, etc.), desde el diseño y durante el ciclo de vida de la aplicación.
  • Gestión de vulnerabilidades para detectar, priorizar y mitigar las vulnerabilidades presentes en todos los componentes del sistema.
  • Detección de vulnerabilidades emergentes, de cara a subsanar problemas antes de que estos sean explotados por actores hostiles.
  • Simulación de ataques DoS, para comprobar la capacidad de resiliencia frente a este tipo de ataques y mejorar las capas defensivas y la gestión de los recursos.
  • Servicios de Red Team, de cara a evaluar la efectividad de las capacidades defensivas de la organización para detectar, responder y mitigar un ataque exitoso, así como para recuperar la normalidad en el menor tiempo posible y salvaguardar la continuidad de negocio.
  • Auditorías de proveedores para prevenir ataques de cadena de suministros.
  • Formación y capacitación de todos los profesionales para implementar buenas prácticas en materia de seguridad y evitar errores o fallos que propicien vulnerabilidades explotables.

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.

A falta de que la Unión Europea apruebe el primer reglamento europeo sobre IA, las compañías deben acometer una estrategia de seguridad integral que sea capaz de proteger a las aplicaciones, sus datos y sus usuarios frente a los grupos de delincuentes.

Más artículos de la serie IA y ciberseguridad

Este artículo forma parte de una serie de articulos sobre IA y ciberseguridad

  1. ¿Cuáles son los riesgos de seguridad de la IA?
  2. Top 10 de vulnerabilidades en aplicaciones LLM como ChatGPT
  3. Buenas prácticas de ciberseguridad para la IA
  4. Fraudes con Inteligencia Artificial: Nueva tecnología, viejos objetivos
  5. IA, deepfake y la evolución del fraude del CEO
  6. ¿Cómo será el futuro de la IA y la ciberseguridad?
  7. Los riesgos de usar IA generativa en las empresas: Protege tus secretos