10 Vulnerabilidades en el uso de chat conversacional.
La inteligencia artificial ha llegado para quedarse, cada vez mas son las aplicaciones o plataformas que muestran las maravillas que ha traído la Inteligencia Artificial. Esto a su vez ha traído una ola de aplicaciones e integraciones dentro del sistema para gestionar clientes en reemplazo del tradicional ser humano que solía atender muchos casos, generando retrasos en la resolución de tickets o respuestas concretas a clientes.
Con el gran afán y la carrera por tener estas maravillosas bondades trabajando para nosotros, se ha dejado a un lado un tema bastante importante, la seguridad.
En ese punto la OWASP vio la necesidad de unificar criterios en cuanto a la adopción segura de los LLMs (Large Language Models) como es conocida esta tecnología por sus siglas en ingles.
La creación de una lista con los principales 10 riesgos de seguridad en los LLMs fue una tarea importante. Organizada con alrededor de 500 expertos en la materia, muchos de ellos provenientes de empresas de seguridad, empresas de inteligencia artificial, proveedores de hardware etc.
La creación de la lista
Durante un mes se organizo una lluvia de ideas escribiendo las vulnerabilidades mas conocidas por los participantes, y ronda tras ronda se fue refinando hasta llegar al consenso de una lista con los 10 principales vulnerabilidades en los LLMs.
OWASP Top 10 para aplicaciones LLMs
1 – LLM01: Prompt Injection
La vulnerabilidad de inyección rápida ocurre cuando un atacante manipula un lenguaje extenso
modelo (LLM) a través de entradas diseñadas, lo que hace que el LLM ejecute sin saberlo el intenciones del atacante. Esto se puede hacer directamente “haciendo jailbreak” al indicador del sistema o indirectamente a través de entradas externas manipuladas, lo que podría conducir a la exfiltración de datos, ingeniería social y otros temas.
- Direct Promt Injection: también conocidas como “jailbreaking“, ocurren cuando un usuario malintencionado sobrescribe o revela el aviso del sistema subyacente. Esto puede permitir a los atacantes explotar sistemas backend interactuando con funciones inseguras y almacenes de datos accesibles a través de los LLMs.
- Indirect Prompt Injections: ocurren cuando un LLM acepta aportes de fuentes externas que pueden ser controlados por un atacante, como sitios web o archivos. El atacante puede incrustar una inyección rápida en el contenido externo secuestrando el contexto de la conversación. Esto haría que el LLM actuara como un “diputado confuso”, permitiendo al atacante manipular el usuario o sistemas adicionales a los que el LLM pueda acceder. Además, las inyecciones inmediatas indirectas no necesitan ser visibles/legibles para humanos, siempre y cuando el texto es analizado por el LLM.
En ataques avanzados, el LLM podría manipularse para imitar a una persona dañina o interactuar con complementos en la configuración del usuario. Esto podría resultar en la filtración de datos confidenciales, uso de complementos no autorizados o ingeniería social. En tales casos, las ayudas LLM comprometidas el atacante, superando las salvaguardas estándar y manteniendo al usuario inconsciente de la intrusión. En estos casos, el LLM comprometido actúa efectivamente como un agente para el atacante, promoviendo sus objetivos sin activar las salvaguardas habituales o alertar al final
usuario a la intrusión.
Los resultados de un promt injection exitoso pueden variar mucho: desde la solicitud de información sensible para influir en procesos críticos de toma de decisiones bajo la apariencia de operación normal.
2 – LLM02: Insecure Output Handling
El término “Insecure Output Handling” se refiere específicamente a una validación, saneamiento y manejo insuficientes de las salidas generadas por modelos de lenguaje amplios antes de ser enviadas aguas abajo hacia otros componentes y sistemas. Dado que el contenido generado por estos modelos puede ser controlado mediante la entrada de comandos, este comportamiento es similar a proporcionar a los usuarios acceso indirecto a funcionalidades adicionales.
La gestión insegura de salidas difiere de la excesiva dependencia en el sentido de que se ocupa de las salidas generadas por LLM antes de que se transmitan aguas abajo, mientras que la excesiva dependencia se centra en preocupaciones más amplias sobre la dependencia excesiva de la precisión y adecuación de las salidas de LLM.
La explotación exitosa de una vulnerabilidad de manejo inseguro de salidas puede resultar en XSS y CSRF en navegadores web, así como en SSRF, escalada de privilegios o ejecución remota de código en sistemas backend.
Las siguientes condiciones pueden aumentar el impacto de esta vulnerabilidad:
- La aplicación otorga privilegios a LLM más allá de lo previsto para los usuarios finales, lo que permite la escalada de privilegios o la ejecución remota de código.
- La aplicación es vulnerable a ataques de inyección de comandos indirectos a través de la entrada de comandos, lo que podría permitir a un atacante obtener acceso privilegiado al entorno de un usuario objetivo.
- Los complementos de terceros no validan adecuadamente las entradas.
3 – LLM03: Training Data Poisoning
El punto de partida de cualquier enfoque de aprendizaje automático es el conjunto de datos de entrenamiento, simplemente “texto sin procesar”. Para ser altamente capaz (por ejemplo, tener conocimientos lingüísticos y del mundo), este texto debe abarcar una amplia gama de dominios, géneros y lenguajes. Un modelo de lenguaje grande utiliza redes neuronales profundas para generar resultados basados en patrones aprendidos a partir de los datos de entrenamiento.
La manipulación de datos de entrenamiento se refiere a la manipulación de datos previos al entrenamiento o de datos involucrados en los procesos de ajuste fino o de incrustación para introducir vulnerabilidades (que tienen vectores de ataque únicos y a veces compartidos), puertas traseras o sesgos que podrían comprometer la seguridad, eficacia o comportamiento ético del modelo. La información contaminada puede ser presentada a los usuarios o crear otros riesgos, como degradación del rendimiento, explotación de software aguas abajo y daño a la reputación. Incluso si los usuarios desconfían de las salidas problemáticas de la IA, los riesgos persisten, incluyendo la disminución de las capacidades del modelo y el posible daño a la reputación de la marca.
- Los datos de preentrenamiento se refieren al proceso de entrenar un modelo basado en una tarea o conjunto de datos.
- El ajuste fino implica tomar un modelo existente que ya ha sido entrenado y adaptarlo a un tema más estrecho o a un objetivo más enfocado mediante el entrenamiento con un conjunto de datos seleccionado. Este conjunto de datos suele incluir ejemplos de entradas y salidas deseadas correspondientes.
- El proceso de incrustación es la conversión de datos categóricos (a menudo texto) en una representación numérica que se puede utilizar para entrenar un modelo de lenguaje. El proceso de incrustación implica representar palabras o frases de los datos de texto como vectores en un espacio vectorial continuo. Los vectores se generan típicamente alimentando los datos de texto a una red neuronal que ha sido entrenada en un gran corpus de texto.
La manipulación de datos se considera un ataque a la integridad porque alterar los datos de entrenamiento afecta la capacidad del modelo para producir predicciones correctas. Naturalmente, las fuentes de datos externas presentan un mayor riesgo, ya que los creadores del modelo no tienen control sobre los datos ni un alto nivel de confianza de que el contenido no contenga sesgo, información falsificada o contenido inapropiado.
4 – LLM04: Model Denial of Service
Un atacante interactúa con un LLM de una manera que consume una cantidad excepcionalmente alta de recursos, lo que resulta en una disminución en la calidad del servicio tanto para ellos como para otros usuarios, así como posiblemente en costos elevados de recursos. Además, una preocupación de seguridad importante emergente es la posibilidad de que un atacante interfiera o manipule la ventana de contexto de un LLM. Este problema se está volviendo más crítico debido al aumento del uso de LLM en diversas aplicaciones, su intensivo uso de recursos, la imprevisibilidad de la entrada del usuario y la falta de conciencia general entre los desarrolladores con respecto a esta vulnerabilidad.
En los LLM, la ventana de contexto representa la longitud máxima de texto que el modelo puede gestionar, abarcando tanto la entrada como la salida. Es una característica crucial de los LLM, ya que dicta la complejidad de los patrones de lenguaje que el modelo puede entender y el tamaño del texto que puede procesar en un momento dado. El tamaño de la ventana de contexto está definido por la arquitectura del modelo y puede variar entre modelos.
5 – LLM05: Supply Chain Vulnerabilities
La cadena de suministro en los LLMs puede ser vulnerable, afectando la integridad de los datos de entrenamiento, los modelos de aprendizaje automático y las plataformas de implementación. Estas vulnerabilidades pueden dar lugar a resultados sesgados, violaciones de seguridad o incluso fallas completas del sistema. Tradicionalmente, las vulnerabilidades se centran en los componentes de software, pero el aprendizaje automático extiende esto con los modelos preentrenados y los datos de entrenamiento suministrados por terceros, que son susceptibles a ataques de manipulación y envenenamiento.
Finalmente, las extensiones de complementos en los LLM pueden traer sus propias vulnerabilidades.
6 – LLM06: Sensitive Information Disclosure
Las aplicaciones LLM tienen el potencial de revelar información sensible, algoritmos propietarios u otros detalles confidenciales a través de sus salidas. Esto puede resultar en el acceso no autorizado a datos sensibles, violaciones de propiedad intelectual, violaciones de privacidad y otras brechas de seguridad. Es importante que los usuarios de aplicaciones LLM sean conscientes de cómo interactuar de manera segura con estos modelos y de los riesgos asociados con la introducción involuntaria de datos sensibles que posteriormente podrían ser devueltos por el LLM en alguna salida.
Para mitigar este riesgo, las aplicaciones LLM deben realizar una adecuada sanitización de datos para evitar que los datos del usuario ingresen a los datos del modelo de entrenamiento. Los propietarios de aplicaciones LLM también deben contar con políticas apropiadas de Términos de Uso para informar a los consumidores sobre cómo se procesan sus datos y brindarles la opción de excluir sus datos del modelo de entrenamiento.
La interacción entre el consumidor y la aplicación LLM forma un límite de confianza bidireccional, donde no se puede confiar inherentemente en la entrada del cliente al LLM ni en la salida del LLM al cliente. Es importante destacar que esta vulnerabilidad asume que ciertos requisitos previos están fuera del alcance, como ejercicios de modelado de amenazas, la seguridad de la infraestructura y el adecuado aislamiento. Agregar restricciones en el mensaje del sistema sobre los tipos de datos que el LLM debería devolver puede proporcionar alguna mitigación contra la divulgación de información sensible, pero la naturaleza impredecible de los LLMs significa que estas restricciones no siempre se respetarán y podrían eludirse mediante la inyección de comandos u otros vectores.
7 – LLM07: Insecure Plugin Design
Los complementos LLM son extensiones que, cuando están habilitados, son llamados automáticamente por el modelo durante las interacciones del usuario. La plataforma de integración del modelo los impulsa, y la aplicación puede no tener control sobre la ejecución, especialmente cuando el modelo está alojado por otra parte. Además, es probable que los complementos implementen entradas de texto libre desde el modelo sin validación o verificación de tipo para lidiar con limitaciones de tamaño de contexto. Esto permite que un atacante potencial construya una solicitud maliciosa al complemento, lo que podría resultar en una amplia variedad de comportamientos no deseados, incluso hasta la ejecución remota de código.
El daño de las entradas maliciosas a menudo depende de controles de acceso insuficientes y la falta de seguimiento de la autorización a través de complementos. El control de acceso inadecuado permite que un complemento confíe ciegamente en otros complementos y asuma que el usuario final proporcionó las entradas. Este control de acceso insuficiente puede permitir que las entradas maliciosas tengan consecuencias perjudiciales que van desde la filtración de datos hasta la ejecución remota de código y la escalada de privilegios.
Este elemento se centra en la creación de complementos LLM en lugar de complementos de terceros, que son cubiertos por las “Vulnerabilidades de la Cadena de Suministro de LLM”.
8 – LLM08: Excessive Agency
Un sistema basado en LLM a menudo recibe un grado de autonomía por parte de su desarrollador, lo que le otorga la capacidad de interactuar con otros sistemas y llevar a cabo acciones en respuesta a una indicación. La decisión sobre qué funciones invocar también puede delegarse a un ‘agente’ de LLM para determinar dinámicamente según la indicación de entrada o la salida del LLM.
La “Excessive Agency” (Agencia Excesiva) es la vulnerabilidad que permite realizar acciones perjudiciales en respuesta a salidas inesperadas/ambiguas de un LLM (independientemente de lo que esté causando el mal funcionamiento del LLM; ya sea alucinación/confabulación, inyección de indicación directa/indirecta, complemento malicioso, indicaciones benignas mal diseñadas o simplemente un modelo de bajo rendimiento). La causa principal de la Excessive Agency suele ser uno o más de los siguientes: funcionalidad excesiva, permisos excesivos o autonomía excesiva. Esto difiere de la “Insecure Output Handling” (Manipulación Insegura de Salidas), que se preocupa por la falta de escrutinio de las salidas del LLM.
La Excessive Agency puede llevar a una amplia gama de impactos en el espectro de confidencialidad, integridad y disponibilidad, y depende de qué sistemas puede interactuar una aplicación basada en LLM.
9 – LLM09: Overreliance
La sobredependencia puede ocurrir cuando un LLM produce información errónea y la presenta de manera autoritaria. Aunque los LLM pueden generar contenido creativo e informativo, también pueden producir contenido que es factualmente incorrecto, inapropiado o inseguro. Esto se conoce como alucinación o confabulación. Cuando las personas o sistemas confían en esta información sin supervisión o confirmación, puede dar lugar a una vulneración de seguridad, desinformación, malentendidos, problemas legales y daño a la reputación.
El código fuente generado por LLMs puede introducir vulnerabilidades de seguridad no detectadas. Esto plantea un riesgo significativo para la seguridad operativa de las aplicaciones. Estos riesgos resaltan la importancia de procesos de revisión rigurosos, que incluyan:
- Supervisión adecuada.
- Mecanismos de validación continua.
- Advertencias sobre riesgos.
10 – LLM10: Model Theft
Este apartado se refiere al acceso no autorizado y la exfiltración de modelos de LLM por actores maliciosos o APTs (Amenazas Persistente Avanzadas). Esto ocurre cuando los modelos propietarios de LLM, al ser valiosa propiedad intelectual, son comprometidos, robados físicamente, copiados o cuando se extraen pesos y parámetros para crear un equivalente funcional. El impacto del robo de modelos de LLM puede incluir pérdida económica y de reputación de marca, erosión de la ventaja competitiva, uso no autorizado del modelo o acceso no autorizado a información sensible contenida dentro del modelo.
El robo de modelos de lenguaje (LLMs) representa una preocupación significativa en términos de seguridad, ya que los modelos de lenguaje se vuelven cada vez más poderosos y comunes. Las organizaciones e investigadores deben dar prioridad a medidas de seguridad sólidas para proteger sus modelos de LLM, garantizando la confidencialidad e integridad de su propiedad intelectual. La implementación de un marco de seguridad integral que incluya controles de acceso, cifrado y monitoreo continuo es crucial para mitigar los riesgos asociados con el robo de modelos de LLM y salvaguardar los intereses tanto de individuos como de organizaciones que dependen de los LLM.
Resumen
En resumen, la seguridad de los modelos de lenguaje (LLMs) es de suma importancia, dada la creciente potencia y prevalencia de estos modelos. La posibilidad de acceso no autorizado y robo de LLMs plantea riesgos significativos para la confidencialidad e integridad de la propiedad intelectual de organizaciones e investigadores. La adopción de medidas de seguridad sólidas, como controles de acceso, cifrado y monitoreo continuo, es esencial para mitigar estos riesgos y proteger tanto a individuos como a organizaciones que confían en los LLMs. La seguridad en este contexto no solo implica la protección de datos, sino también la preservación de la reputación, la ventaja competitiva y el uso ético de la tecnología de lenguaje. Es imperativo que las partes interesadas prioricen la implementación de un marco de seguridad integral para abordar estos desafíos y asegurar el beneficio seguro y responsable derivado de los modelos de lenguaje avanzados.