Un fallo de inyección rápida en Vanna AI expone las bases de datos a ataques RCE


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, según la firma de seguridad de la cadena de suministro JFrog. dicho.

Vanna está basada en Python. biblioteca de aprendizaje automático que permite a los usuarios chatear con su base de datos SQL para obtener información “simplemente haciendo preguntas” (también conocidas como mensajes) 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 clase destacada de ataques es la inyección rápida, que se refiere a un tipo de fuga de IA que puede usarse para ignorar las medidas de seguridad establecidas por los proveedores de LLM para evitar la producción de contenido ofensivo, dañino o ilegal, o ejecutar instrucciones que violen el propósito previsto de la aplicación.

La seguridad cibernética

Estos ataques pueden ser indirectos, cuando un sistema procesa datos controlados por un tercero (por ejemplo, correos electrónicos entrantes o documentos editables) para lanzar una carga maliciosa que conduce a una fuga de inteligencia artificial.

También pueden tomar la forma de lo que se llama un jailbreak de muchos disparos o un 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 llevar a cabo otro nuevo 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 barandillas”, dijo Mark Russinovich, director de tecnología de Microsoft Azure. dicho. “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.

Falla de inyección rápida

“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 divulgado independientemente por Tong Liu – muestra cómo las inyecciones rápidas pueden tener graves consecuencias, especialmente cuando están vinculadas a la ejecución de órdenes.

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 un 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 la generación de consultas SQL que se ejecutarán en la base de datos.

La seguridad cibernética

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 solicitud para presentar al usuario resultados visualizados, es posible alterar la solicitud mediante inyección de solicitud y ejecutar código Python arbitrario en lugar del código de visualización deseado”, JFrog dicho.

“Específicamente, permitir una entrada externa al método ‘ask’ de la biblioteca con ‘visualize’ establecido en Verdadero (comportamiento predeterminado) conduce a la ejecución remota de código”.

Tras una divulgación responsable, Vanna ha emitido un guía de endurecimiento 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 Shachar Menashe, director senior de investigación de seguridad en JFrog, en un comunicado.

“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.”

¿Te ha parecido interesante este artículo? Síguenos en Gorjeo y LinkedIn para leer más contenido exclusivo que publicamos.





ttn-es-57