Investigadores de ciberseguridad han revelado una falla de seguridad de alta gravedad en la biblioteca Vanna.AI que podría explotarse para lograr una vulnerabilidad de ejecución remota de código mediante técnicas de inyección rápida. La vulnerabilidad, rastreada como CVE-2024-5565 (puntaje CVSS: 8.1), se relaciona con un caso de inyección rápida en la función «preguntar» que podría explotarse para engañar a la biblioteca para que ejecute comandos arbitrarios, dijo la firma de seguridad de la cadena de suministro JFrog. Vanna es una biblioteca de aprendizaje automático basada en Python que permite a los usuarios chatear con su base de datos SQL para obtener información «simplemente haciendo preguntas» (también conocidas como indicaciones) que se traducen a una consulta SQL equivalente utilizando un modelo de lenguaje grande (LLM). La rápida implementación de modelos de inteligencia artificial (IA) generativa en los últimos años ha puesto de relieve los riesgos de explotación por parte de actores maliciosos, que pueden convertir las herramientas en armas proporcionando entradas adversas que eluden los mecanismos de seguridad integrados en ellas. Una de esas clases destacadas de ataques es la inyección rápida, que se refiere a un tipo de jailbreak de IA que puede usarse para ignorar las barreras erigidas por los proveedores de LLM para evitar la producción de contenido ofensivo, dañino o ilegal, o llevar a cabo instrucciones que violen el objetivo previsto. propósito de la aplicación. Dichos ataques pueden ser indirectos, en los que un sistema procesa datos controlados por un tercero (por ejemplo, correos electrónicos entrantes o documentos editables) para lanzar una carga útil maliciosa que conduce a una fuga de IA. También pueden tomar la forma de lo que se llama jailbreak de muchos disparos o jailbreak de múltiples turnos (también conocido como Crescendo) en el que el operador «comienza con un diálogo inofensivo y dirige progresivamente la conversación hacia el objetivo prohibido previsto». Este enfoque se puede ampliar aún más para realizar otro novedoso ataque de jailbreak conocido como Skeleton Key. «Esta técnica de jailbreak de IA funciona mediante el uso de una estrategia de múltiples turnos (o múltiples pasos) para hacer que un modelo ignore sus barreras de seguridad», dijo Mark Russinovich, director de tecnología de Microsoft Azure. «Una vez que se ignoran las barreras de seguridad, un modelo no podrá determinar solicitudes maliciosas o no autorizadas de ningún otro». Skeleton Key también se diferencia de Crescendo en que una vez que el jailbreak es exitoso y se cambian las reglas del sistema, el modelo puede crear respuestas a preguntas que de otro modo estarían prohibidas, independientemente de los riesgos éticos y de seguridad involucrados. «Cuando el jailbreak de Skeleton Key tiene éxito, un modelo reconoce que ha actualizado sus pautas y posteriormente cumplirá con las instrucciones para producir cualquier contenido, sin importar cuánto viole sus pautas originales de IA responsable», dijo Russinovich. «A diferencia de otros jailbreaks como Crescendo, donde se debe preguntar a los modelos sobre las tareas indirectamente o con codificaciones, Skeleton Key pone a los modelos en un modo en el que un usuario puede solicitar tareas directamente. Además, la salida del modelo parece no estar completamente filtrada y revela el alcance de el conocimiento o la capacidad de un modelo para producir el contenido solicitado». Los últimos hallazgos de JFrog –también divulgados de forma independiente por Tong Liu– muestran cómo las inyecciones rápidas podrían tener graves impactos, particularmente cuando están vinculadas a la ejecución de una orden. CVE-2024-5565 aprovecha el hecho de que Vanna facilita la generación de texto a SQL para crear consultas SQL, que luego se ejecutan y se presentan gráficamente a los usuarios utilizando la biblioteca de gráficos Plotly. Esto se logra mediante una función «preguntar», por ejemplo, vn.ask («¿Cuáles son los 10 principales clientes por ventas?»), que es uno de los principales puntos finales de API que permite ejecutar consultas SQL en la base de datos. El comportamiento antes mencionado, junto con la generación dinámica del código Plotly, crea un agujero de seguridad que permite a un actor de amenazas enviar un mensaje especialmente diseñado que incorpora un comando para ejecutarse en el sistema subyacente. «La biblioteca Vanna utiliza una función de aviso para presentar al usuario resultados visualizados, es posible alterar el aviso usando la inyección de aviso y ejecutar código Python arbitrario en lugar del código de visualización deseado», dijo JFrog. «Específicamente, permitir la entrada externa al método ‘preguntar’ de la biblioteca con ‘visualizar’ configurado en Verdadero (comportamiento predeterminado) conduce a la ejecución remota de código». Tras una divulgación responsable, Vanna ha publicado una guía de refuerzo que advierte a los usuarios que la integración de Plotly podría usarse para generar código Python arbitrario y que los usuarios que expongan esta función deben hacerlo en un entorno de espacio aislado. «Este descubrimiento demuestra que los riesgos del uso generalizado de GenAI/LLM sin una gobernanza y seguridad adecuadas pueden tener implicaciones drásticas para las organizaciones», dijo en un comunicado Shachar Menashe, director senior de investigación de seguridad de JFrog. «Los peligros de la inyección rápida todavía no son muy conocidos, pero son fáciles de ejecutar. Las empresas no deberían confiar en la estimulación previa como mecanismo de defensa infalible y deberían emplear mecanismos más sólidos al conectar los LLM con recursos críticos como bases de datos o dinámicas. codigo de GENERACION.» ¿Encontró interesante este artículo? Síguenos en Twitter  y LinkedIn para leer más contenido exclusivo que publicamos.