Nuevo Top 10 OWASP para aplicaciones AI que usan modelos LLM como ChatGTP

El proyecto OWASP Top 10 para aplicaciones Large Language Model (LLM) tiene como objetivo educar a los desarrolladores, diseñadores, arquitectos, gerentes y organizaciones sobre los posibles riesgos de seguridad al implementar y administrar este tipo de modelos. El proyecto proporciona una lista de las 10 vulnerabilidades más críticas que se ven a menudo en las aplicaciones LLM, destacando su impacto potencial, facilidad de explotación y prevalencia en las aplicaciones del mundo real. Los ejemplos de vulnerabilidades incluyen inyecciones rápidas, fuga de datos, sandboxing inadecuado y ejecución de código no autorizado, entre otros. El objetivo es crear conciencia sobre estas vulnerabilidades, sugerir estrategias de remediación y, en última instancia, mejorar la postura de seguridad de las aplicaciones LLM.

Esta es una lista preliminar de tipos de vulnerabilidades importantes para aplicaciones de inteligencia artificial (IA) basadas en modelos de lenguaje extenso (LLM)

 

 

LLM01:2023 – Inyecciones rápidas

Descripción: Omitir filtros o manipular el LLM mediante indicaciones cuidadosamente diseñadas que hacen que el modelo ignore las instrucciones anteriores o realice acciones no deseadas.

Las inyecciones rápidas implican pasar por alto los filtros o manipular el LLM mediante indicaciones cuidadosamente diseñadas que hacen que el modelo ignore las instrucciones anteriores o realice acciones no deseadas. Estas vulnerabilidades pueden tener consecuencias no deseadas, como la fuga de datos, el acceso no autorizado u otras infracciones de seguridad.

Vulnerabilidades comunes de inyección inmediata:

  1. Elaboración de avisos que manipulan el LLM para revelar información confidencial.
  2. Omitir filtros o restricciones mediante el uso de tokens o patrones de idioma específicos.
  3. Explotar las debilidades en los mecanismos de tokenización o codificación de LLM.
  4. Engañar al LLM para realizar acciones no deseadas al proporcionar un contexto engañoso.

Como prevenir:

  1. Implemente una estricta validación y desinfección de entradas para las indicaciones proporcionadas por el usuario.
  2. Utilice el filtrado contextual y la codificación de salida para evitar la manipulación de solicitudes.
  3. Actualice y ajuste periódicamente el LLM para mejorar su comprensión de las entradas maliciosas y los casos extremos.
  4. Supervise y registre las interacciones de LLM para detectar y analizar posibles intentos de inyección rápida.

Ejemplos de escenarios de ataque:

  1. Escenario n.º 1: un atacante crea un aviso que engaña al LLM para que revele información confidencial, como credenciales de usuario o detalles internos del sistema, al hacer que el modelo piense que la solicitud es legítima.
  2. Escenario n.º 2: un usuario malintencionado elude un filtro de contenido mediante el uso de patrones de idioma, tokens o mecanismos de codificación específicos que el LLM no reconoce como contenido restringido, lo que permite al usuario realizar acciones que deberían bloquearse.
  3.  

LLM02:2023 – Fuga de datos

Descripción: Revelar accidentalmente información confidencial, algoritmos patentados u otros detalles confidenciales a través de las respuestas del LLM.

La fuga de datos ocurre cuando un LLM revela accidentalmente información confidencial, algoritmos patentados u otros detalles confidenciales a través de sus respuestas. Esto puede resultar en acceso no autorizado a datos confidenciales o propiedad intelectual, violaciones de privacidad y otras infracciones de seguridad.

Vulnerabilidades comunes de fuga de datos:

  1. Filtrado incompleto o inadecuado de información sensible en las respuestas del LLM.
  2. Sobreadaptación o memorización de datos sensibles en el proceso de formación del LLM.
  3. Divulgación no intencionada de información confidencial debido a malas interpretaciones o errores de LLM.

Como prevenir:

  1. Implemente un filtrado de salida estricto y mecanismos sensibles al contexto para evitar que el LLM revele información confidencial.
  2. Use técnicas de privacidad diferencial u otros métodos de anonimización de datos durante el proceso de capacitación del LLM para reducir el riesgo de sobreadaptación o memorización.
  3. Auditar y revisar periódicamente las respuestas del LLM para garantizar que la información confidencial no se divulgue sin darse cuenta.
  4. Supervise y registre las interacciones de LLM para detectar y analizar posibles incidentes de fuga de datos.

Ejemplos de escenarios de ataque:

  1. Escenario n.º 1: un usuario, sin darse cuenta, hace una pregunta al LLM que podría revelar información confidencial. El LLM, al carecer de un filtrado de salida adecuado, responde con los datos confidenciales, exponiéndolos al usuario.
  2. Escenario n.º 2: un atacante prueba deliberadamente el LLM con indicaciones cuidadosamente diseñadas, intentando extraer información confidencial que el LLM ha memorizado de sus datos de entrenamiento.
  3. Al comprender y abordar los riesgos asociados con la fuga de datos, los desarrolladores pueden proteger mejor sus implementaciones de LLM y garantizar la seguridad de sus sistemas.
  4.  

LLM03:2023 – Sandboxing inadecuado

Descripción: No aislar adecuadamente a los LLM cuando tienen acceso a recursos externos o sistemas sensibles, lo que permite una posible explotación y acceso no autorizado.

El sandboxing inadecuado ocurre cuando un LLM no está adecuadamente aislado cuando tiene acceso a recursos externos o sistemas sensibles. Esto puede conducir a una posible explotación, acceso no autorizado o acciones no intencionadas por parte del LLM.

Vulnerabilidades comunes de sandboxing inadecuado:

  1. Separación insuficiente del entorno LLM de otros sistemas críticos o almacenes de datos.
  2. Permitir que el LLM acceda a recursos confidenciales sin las restricciones adecuadas.
  3. No limitar las capacidades del LLM, como permitirle realizar acciones a nivel del sistema o interactuar con otros procesos.

Como prevenir:

  1. Implemente técnicas de sandboxing adecuadas para aislar el entorno LLM de otros sistemas y recursos críticos.
  2. Restrinja el acceso del LLM a recursos confidenciales y limite sus capacidades al mínimo requerido para su propósito previsto.
  3. Auditar y revisar periódicamente el entorno del LLM y los controles de acceso para garantizar que se mantenga el aislamiento adecuado.
  4. Supervise y registre las interacciones de LLM para detectar y analizar posibles problemas de sandboxing.

Ejemplos de escenarios de ataque:

  1. Escenario n.º 1: un atacante explota el acceso de un LLM a una base de datos confidencial mediante la elaboración de indicaciones que le indican al LLM que extraiga y revele información confidencial.
  2. Escenario n.º 2: el LLM puede realizar acciones a nivel del sistema y un atacante lo manipula para ejecutar comandos no autorizados en el sistema subyacente.
  3. Al comprender y abordar los riesgos asociados con un sandboxing inadecuado, los desarrolladores pueden proteger mejor sus implementaciones de LLM y garantizar la seguridad de sus sistemas

LLM04:2023 – Ejecución de código no autorizado

Descripción: Explotación de LLM para ejecutar código malicioso, comandos o acciones en el sistema subyacente a través de indicaciones en lenguaje natural.

La ejecución de código no autorizado ocurre cuando un atacante explota un LLM para ejecutar código, comandos o acciones maliciosos en el sistema subyacente a través de indicaciones en lenguaje natural.

Vulnerabilidades comunes de ejecución de código no autorizado:

  1. No desinfectar o restringir la entrada del usuario, lo que permite a los atacantes crear avisos que desencadenan la ejecución de código no autorizado.
  2. Sandboxing inadecuado o restricciones insuficientes en las capacidades del LLM, lo que le permite interactuar con el sistema subyacente de manera no deseada.
  3. Exponer involuntariamente la funcionalidad o las interfaces a nivel del sistema al LLM.

Como prevenir:

  1. Implemente procesos estrictos de validación y desinfección de entradas para evitar que el LLM procese mensajes maliciosos o inesperados.
  2. Garantice un sandboxing adecuado y restrinja las capacidades del LLM para limitar su capacidad de interactuar con el sistema subyacente.
  3. Auditar y revisar periódicamente el entorno del LLM y los controles de acceso para garantizar que no sea posible realizar acciones no autorizadas.
  4. Supervise y registre las interacciones de LLM para detectar y analizar posibles problemas de ejecución de código no autorizado.

Ejemplos de escenarios de ataque:

  1. Escenario n.º 1: un atacante crea un aviso que le indica al LLM que ejecute un comando que inicia un shell inverso en el sistema subyacente, lo que otorga al atacante acceso no autorizado.
  2. Escenario n.º 2: se permite que el LLM interactúe involuntariamente con una API a nivel del sistema y un atacante manipula el LLM para ejecutar acciones no autorizadas en el sistema.
  3. Al comprender y abordar los riesgos asociados con la ejecución de código no autorizado, los desarrolladores pueden proteger mejor sus implementaciones de LLM y garantizar la seguridad de sus sistemas

LLM05:2023 – Vulnerabilidades SSRF

Descripción: Explotar los LLM para realizar solicitudes no deseadas o acceder a recursos restringidos, como servicios internos, API o almacenes de datos.

Las vulnerabilidades de falsificación de solicitudes del lado del servidor (SSRF) ocurren cuando un atacante explota un LLM para realizar solicitudes no deseadas o acceder a recursos restringidos, como servicios internos, API o almacenes de datos.

Vulnerabilidades comunes de SSRF:

  1. Validación de entrada insuficiente, lo que permite a los atacantes manipular las indicaciones de LLM para iniciar solicitudes no autorizadas.
  2. Sandboxing o restricciones de recursos inadecuados, lo que permite que el LLM acceda a recursos restringidos o interactúe con servicios internos.
  3. Configuraciones incorrectas en la configuración de seguridad de la red o la aplicación, que exponen los recursos internos al LLM.

Como prevenir:

  1. Implemente una rigurosa validación y desinfección de entradas para evitar que mensajes maliciosos o inesperados inicien solicitudes no autorizadas.
  2. Aplique un sandboxing adecuado y restrinja el acceso del LLM a los recursos de la red, los servicios internos y las API.
  3. Audite y revise regularmente la configuración de seguridad de la red y las aplicaciones para garantizar que los recursos internos no se expongan inadvertidamente al LLM.
  4. Supervise y registre las interacciones de LLM para detectar y analizar posibles vulnerabilidades de SSRF.

Ejemplos de escenarios de ataque:

  1. Escenario n.º 1: un atacante crea un mensaje que indica al LLM que realice una solicitud a un servicio interno, eludiendo los controles de acceso y obteniendo acceso no autorizado a información confidencial.
  2. Escenario n.º 2: una configuración incorrecta en la configuración de seguridad de la aplicación permite que el LLM interactúe con una API restringida y un atacante manipula el LLM para acceder o modificar datos confidenciales.
  3. Al comprender y abordar los riesgos asociados con las vulnerabilidades de SSRF, los desarrolladores pueden proteger mejor sus implementaciones de LLM y garantizar la seguridad de sus sistemas.

LLM06:2023: dependencia excesiva del contenido generado por LLM

Descripción: La dependencia excesiva del contenido generado por LLM sin supervisión humana puede tener consecuencias perjudiciales.

La confianza excesiva en el contenido generado por LLM puede conducir a la propagación de información engañosa o incorrecta, la disminución de la participación humana en la toma de decisiones y la reducción del pensamiento crítico. Las organizaciones y los usuarios pueden confiar en el contenido generado por LLM sin verificación, lo que genera errores, problemas de comunicación o consecuencias no deseadas.

Los problemas comunes relacionados con la dependencia excesiva del contenido generado por LLM incluyen:

  1. Aceptar contenido generado por LLM como un hecho sin verificación.
  2. Asumiendo que el contenido generado por LLM está libre de prejuicios o información errónea.
  3. Confiar en el contenido generado por LLM para tomar decisiones críticas sin intervención ni supervisión humana.

Como prevenir, para evitar problemas relacionados con la dependencia excesiva del contenido generado por LLM, tenga en cuenta las siguientes prácticas recomendadas:

  1. Anime a los usuarios a verificar el contenido generado por LLM y consultar fuentes alternativas antes de tomar decisiones o aceptar información como un hecho.
  2. Implemente procesos de revisión y supervisión humana para garantizar que el contenido generado por LLM sea preciso, apropiado e imparcial.
  3. Comunique claramente a los usuarios que el contenido generado por LLM es generado por una máquina y puede no ser completamente confiable o preciso.
  4. Capacite a los usuarios y partes interesadas para que reconozcan las limitaciones del contenido generado por LLM y lo aborden con el escepticismo apropiado.
  5. Use el contenido generado por LLM como un complemento, en lugar de un reemplazo, de la experiencia y los aportes humanos.

Ejemplos de escenarios de ataque:

  1. Escenario #1: una organización de noticias utiliza un LLM para generar artículos sobre una variedad de temas. El LLM genera un artículo con información falsa que se publica sin verificación. Los lectores confían en el artículo, lo que lleva a la difusión de información errónea.
  2. Escenario n.º 2: una empresa confía en un LLM para generar informes y análisis financieros. El LLM genera un informe que contiene datos financieros incorrectos, que la empresa utiliza para tomar decisiones de inversión críticas. Esto da como resultado pérdidas financieras significativas debido a la dependencia de contenido inexacto generado por LLM.

LLM07:2023 – Alineación de IA inadecuada

Descripción: No garantizar que los objetivos y el comportamiento del LLM se alineen con el caso de uso previsto, lo que genera consecuencias o vulnerabilidades no deseadas.

La alineación inadecuada de la IA ocurre cuando los objetivos y el comportamiento del LLM no se alinean con el caso de uso previsto, lo que genera consecuencias o vulnerabilidades no deseadas.

Problemas comunes de alineación de IA:

  1. Objetivos mal definidos, lo que hace que el LLM priorice conductas no deseadas o dañinas.
  2. Funciones de recompensa desalineadas o datos de entrenamiento, lo que resulta en un comportamiento del modelo no deseado.
  3. Pruebas y validación insuficientes del comportamiento de LLM en varios contextos y escenarios.

Como prevenir:

  1. Defina claramente los objetivos y el comportamiento previsto del LLM durante el proceso de diseño y desarrollo.
  2. Asegúrese de que las funciones de recompensa y los datos de capacitación estén alineados con los resultados deseados y no fomenten comportamientos no deseados o dañinos.
  3. Pruebe y valide regularmente el comportamiento del LLM en una amplia gama de escenarios, entradas y contextos para identificar y abordar problemas de alineación.
  4. Implemente mecanismos de monitoreo y retroalimentación para evaluar continuamente el desempeño y la alineación del LLM, y actualice el modelo según sea necesario para mejorar la alineación.

Escenarios de ejemplo de ataque:

  1. Escenario n.° 1: un LLM capacitado para optimizar la participación del usuario sin darse cuenta prioriza el contenido controvertido o polarizador, lo que resulta en la difusión de información errónea o contenido dañino.
  2. Escenario n.º 2: un LLM diseñado para ayudar con las tareas de administración del sistema está desalineado, lo que hace que ejecute comandos dañinos o priorice acciones que degradan el rendimiento o la seguridad del sistema.
  3. Al centrarse en la alineación de la IA y garantizar que los objetivos y el comportamiento del LLM se alineen con el caso de uso previsto, los desarrolladores pueden reducir el riesgo de consecuencias y vulnerabilidades no deseadas en sus implementaciones de LLM.

LLM08:2023 – Controles de acceso insuficientes

Descripción: No implementar adecuadamente los controles de acceso o la autenticación, lo que permite que los usuarios no autorizados interactúen con el LLM y potencialmente aprovechen las vulnerabilidades.

Los controles de acceso insuficientes ocurren cuando los controles de acceso o los mecanismos de autenticación no se implementan correctamente, lo que permite que los usuarios no autorizados interactúen con el LLM y potencialmente aprovechen las vulnerabilidades.

Problemas comunes de control de acceso:

  1. No hacer cumplir los estrictos requisitos de autenticación para acceder al LLM.
  2. Implementación inadecuada de control de acceso basado en roles (RBAC), lo que permite a los usuarios realizar acciones más allá de sus permisos previstos.
  3. No proporcionar controles de acceso adecuados para el contenido y las acciones generados por LLM.

Como prevenir:

  1. Implemente mecanismos de autenticación sólidos, como la autenticación multifactor, para garantizar que solo los usuarios autorizados puedan acceder al LLM.
  2. Utilice el control de acceso basado en funciones (RBAC) para definir y hacer cumplir los permisos de usuario en función de sus funciones y responsabilidades.
  3. Implemente controles de acceso adecuados para el contenido y las acciones generadas por el LLM para evitar el acceso o la manipulación no autorizados.
  4. Audite y actualice regularmente los controles de acceso según sea necesario para mantener la seguridad y evitar el acceso no autorizado.

Escenarios de ejemplo de ataque:

  1. Escenario n.º 1: un atacante obtiene acceso no autorizado a un LLM debido a mecanismos de autenticación débiles, lo que le permite aprovechar vulnerabilidades o manipular el sistema.
  2. Escenario n.º 2: un usuario con permisos limitados puede realizar acciones más allá de su alcance previsto debido a una implementación inadecuada de RBAC, lo que puede causar daños o comprometer el sistema.
  3. Al implementar adecuadamente los controles de acceso y los mecanismos de autenticación, los desarrolladores pueden evitar que los usuarios no autorizados interactúen con el LLM y reducir el riesgo de que se exploten las vulnerabilidades.

LLM09:2023 – Manejo incorrecto de errores

Descripción: Exponer mensajes de error o información de depuración que podría revelar información confidencial, detalles del sistema o posibles vectores de ataque.

El manejo inadecuado de errores ocurre cuando los mensajes de error o la información de depuración se exponen de una manera que podría revelar información confidencial, detalles del sistema o posibles vectores de ataque a un atacante.

Problemas comunes de manejo inadecuado de errores:

  1. Exponer información confidencial o detalles del sistema a través de mensajes de error.
  2. Filtrar información de depuración que podría ayudar a un atacante a identificar posibles vulnerabilidades o vectores de ataque.
  3. No manejar correctamente los errores, lo que puede causar un comportamiento inesperado o bloqueos del sistema.

Como prevenir:

  1. Implemente mecanismos adecuados de manejo de errores para garantizar que los errores se detecten, registren y manejen correctamente.
  2. Asegúrese de que los mensajes de error y la información de depuración no revelen información confidencial o detalles del sistema. Considere usar mensajes de error genéricos para los usuarios, mientras registra información de error detallada para desarrolladores y administradores.
  3. Revise regularmente los registros de errores y tome las medidas necesarias para solucionar los problemas identificados y mejorar la estabilidad del sistema.

Escenarios de ejemplo de ataque:

  1. Escenario n.º 1: un atacante explota los mensajes de error de un LLM para recopilar información confidencial o detalles del sistema, lo que les permite lanzar un ataque dirigido o explotar vulnerabilidades conocidas.
  2. Escenario n.° 2: un desarrollador deja accidentalmente información de depuración expuesta en producción, lo que permite que un atacante identifique posibles vectores de ataque o vulnerabilidades en el sistema.
  3. Al implementar mecanismos adecuados de manejo de errores y garantizar que los mensajes de error no revelen información confidencial, los desarrolladores pueden reducir el riesgo de que los atacantes exploten las vulnerabilidades de LLM y mejorar la estabilidad del sistema.

LLM10:2023 – Envenenamiento de datos de entrenamiento

Descripción: Manipular maliciosamente datos de entrenamiento o ajustar procedimientos para introducir vulnerabilidades o puertas traseras en el LLM.

El envenenamiento de datos de entrenamiento ocurre cuando un atacante manipula los datos de entrenamiento o los procedimientos de ajuste de un LLM para introducir vulnerabilidades, puertas traseras o sesgos que podrían comprometer la seguridad, la eficacia o el comportamiento ético del modelo.

Problemas comunes de envenenamiento de datos de entrenamiento:

  1. Introducir puertas traseras o vulnerabilidades en el LLM a través de datos de entrenamiento manipulados maliciosamente.
  2. Inyectar sesgos en el LLM, lo que hace que produzca respuestas sesgadas o inapropiadas.
  3. Explotar el proceso de ajuste fino para comprometer la seguridad o la eficacia del LLM.

Como prevenir:

  1. Asegure la integridad de los datos de entrenamiento al obtenerlos de fuentes confiables y validar su calidad.
  2. Implemente técnicas robustas de saneamiento y preprocesamiento de datos para eliminar posibles vulnerabilidades o sesgos de los datos de entrenamiento.
  3. Revise y audite periódicamente los datos de capacitación del LLM y los procedimientos de ajuste para detectar posibles problemas o manipulaciones maliciosas.
  4. Utilice mecanismos de monitoreo y alerta para detectar comportamientos inusuales o problemas de rendimiento en el LLM, lo que podría indicar envenenamiento de datos de capacitación.

Escenarios de ejemplo de ataque:

  1. Escenario n.º 1: un atacante se infiltra en la canalización de datos de entrenamiento e inyecta datos maliciosos, lo que provoca que el LLM produzca respuestas dañinas o inapropiadas.
  2. Escenario n.° 2: un infiltrado malintencionado compromete el proceso de ajuste fino e introduce vulnerabilidades o puertas traseras en el LLM que pueden explotarse en una etapa posterior.
  3. Al garantizar la integridad de los datos de capacitación, implementar técnicas sólidas de desinfección de datos y auditar regularmente los procesos de capacitación y ajuste de LLM, los desarrolladores pueden minimizar el riesgo de envenenamiento de datos de capacitación y proteger sus LLM de posibles vulnerabilidades.

Referencia: https://owasp.org/www-project-top-10-for-large-language-model-applications/

× ¿Cómo podemos ayudarte?