Inteligencia de datos generativa

Los robots de IA alucinan paquetes de software y los desarrolladores los descargan

Fecha:

A fondo Varias grandes empresas han publicado un código fuente que incorpora un paquete de software previamente alucinado por la IA generativa.

No solo eso, sino que alguien, después de haber detectado esta alucinación recurrente, había convertido esa dependencia inventada en una real, que posteriormente los desarrolladores descargaron e instalaron miles de veces como resultado de los malos consejos de la IA, según hemos aprendido. Si el paquete estuviera acompañado de malware real, en lugar de ser una prueba benigna, los resultados podrían haber sido desastrosos.

Según Bar Lanyado, investigador de seguridad de Lasso Security, una de las empresas engañadas por la IA para incorporar el paquete es Alibaba, que en el momento de escribir este artículo todavía incluye un pip comando para descargar el paquete Python huggingface-cli en su Traductor de gráficos Instrucciones de instalación.

Hay un legítimo abrazandocara-cli, instalado usando pip install -U "huggingface_hub[cli]".

Pero el huggingface-cli distribuido a través de Python Package Index (PyPI) y requerido por GraphTranslator de Alibaba – instalado usando pip install huggingface-cli – es falso, imaginado por IA y Lanyado lo convirtió en real como experimento.

Creó huggingface-cli en diciembre después de verlo alucinado repetidamente por IA generativa; en febrero de este año, Alibaba se refería a él en las instrucciones README de GraphTranslator en lugar de a la herramienta CLI real de Hugging Face.

ESTUDIO

Lanyado lo hizo para explorar si este tipo de paquetes de software alucinados (nombres de paquetes inventados por modelos de IA generativa, presumiblemente durante el desarrollo del proyecto) persisten en el tiempo y para probar si los nombres de paquetes inventados podrían ser cooptados y utilizados para distribuir código malicioso mediante la escritura real. paquetes que utilizan los nombres de código ideados por las IA.

La idea aquí es que alguien nefasto podría pedir consejos de código a los modelos, tomar nota de los paquetes imaginados que los sistemas de IA recomiendan repetidamente y luego implementar esas dependencias para que otros programadores, cuando usen los mismos modelos y obtengan las mismas sugerencias, terminen recurriendo. esas bibliotecas, que pueden estar envenenadas con malware.

El año pasado, a través de la firma de seguridad Vulcan Cyber, Lanyado publicado investigación que detalla cómo uno podría plantear una pregunta de codificación a un modelo de IA como ChatGPT y recibir una respuesta que recomiende el uso de una biblioteca, paquete o marco de software que no existe.

"Cuando un atacante ejecuta una campaña de este tipo, le pedirá al modelo paquetes que resuelvan un problema de codificación, luego recibirá algunos paquetes que no existen", explicó Lanyado a El registro. "Cargará paquetes maliciosos con los mismos nombres en los registros correspondientes y, a partir de ese momento, todo lo que tiene que hacer es esperar a que la gente descargue los paquetes".

Suposiciones peligrosas

La voluntad de los modelos de IA de usar con confianza citar casos judiciales inexistentes ahora es bien conocido y ha causado no poca vergüenza entre los abogados que desconocen esta tendencia. Y resulta que los modelos de IA generativa harán lo mismo con los paquetes de software.

Como Lanyado señaló anteriormente, un malhechor podría usar un nombre inventado por la IA para un paquete malicioso cargado en algún repositorio con la esperanza de que otros puedan descargar el malware. Pero para que esto sea un vector de ataque significativo, los modelos de IA tendrían que recomendar repetidamente el nombre elegido.

Eso es lo que Lanyado se propuso probar. Armado con miles de preguntas de "cómo hacerlo", consultó cuatro modelos de IA (GPT-3.5-Turbo, GPT-4, Gemini Pro también conocido como Bard y Coral [Cohere]) sobre los desafíos de programación en cinco lenguajes/tiempos de ejecución de programación diferentes (Python, Node.js, Go, .Net y Ruby), cada uno de los cuales tiene su propio sistema de empaquetado.

Resulta que una parte de los nombres que estos chatbots sacan de la nada son persistentes, algunos de ellos en diferentes modelos. Y la persistencia (la repetición del nombre falso) es la clave para convertir la fantasía de la IA en un ataque funcional. El atacante necesita que el modelo de IA repita los nombres de los paquetes alucinados en sus respuestas a los usuarios para buscar y descargar el malware creado con esos nombres.

Lanyado eligió 20 preguntas al azar para las alucinaciones de disparo cero y se las planteó 100 veces a cada modelo. Su objetivo era evaluar con qué frecuencia el nombre del paquete alucinado seguía siendo el mismo. Los resultados de su prueba revelan que los nombres son lo suficientemente persistentes como para que esto sea un vector de ataque funcional, aunque no todo el tiempo, y en algunos ecosistemas de empaquetado más que en otros.

Con GPT-4, el 24.2 por ciento de las respuestas a las preguntas produjeron paquetes alucinados, de los cuales el 19.6 por ciento eran repetitivos, según Lanyado. una tabla proporcionada a El registro, a continuación, muestra un desglose más detallado de las respuestas de GPT-4.

  Python Nodo.JS Rubí .NET Go
Total de preguntas 21340 13065 4544 5141 3713
Preguntas con al menos un paquete de alucinaciones. N/A N/A N/A 1476 (28.7%) 1093 explotables (21.2%) 1150 (30.9%) 109 explotables (2.9%)
Alucinaciones en plano cero N/A N/A N/A 211 (4.1%) 130 explotables (2.5%) 225 (6%) 14 explotables (0.3%)
Alucinaciones en el segundo plano. N/A N/A N/A 1334 (25.9%) 1006 explotables (19.5%) 974 (26.2%) 98 explotables (2.6%)
Repetitividad en tiro cero 34.4% 24.8% 5.2% 14%

Con GPT-3.5, el 22.2 por ciento de las respuestas a las preguntas provocaron alucinaciones, con un 13.6 por ciento de repetitividad. Para Géminis, el 64.5 por ciento de las preguntas incluían nombres inventados, de los cuales un 14 por ciento eran repetidos. Y para Cohere, el 29.1 por ciento fue alucinación y el 24.2 por ciento repetición.

Aun así, los ecosistemas de empaquetado en Go y .Net se han construido de manera que limitan el potencial de explotación al negar a los atacantes el acceso a ciertas rutas y nombres.

“En Go y .Net recibimos paquetes alucinados pero muchos de ellos no podían usarse para atacar (en Go las cifras eran mucho más significativas que en .Net), cada idioma por su propia razón”, explicó Lanyado a El registro. “En Python y npm no es así, ya que el modelo nos recomienda paquetes que no existen y nada nos impide subir paquetes con estos nombres, por lo que definitivamente es mucho más fácil ejecutar este tipo de ataques en lenguajes como Python y Node.js”.

Sembrando malware PoC

Lanyado destacó ese punto al distribuir malware de prueba de concepto: un conjunto de archivos inofensivos en el ecosistema Python. Basado en el consejo de ChatGPT para ejecutar pip install huggingface-cli, cargó un paquete vacío con el mismo nombre en PyPI (el mencionado anteriormente) y creó un paquete ficticio llamado blabladsa123 para ayudar a separar el escaneo del registro de paquetes de los intentos de descarga reales.

El resultado, afirma, es que huggingface-cli recibió más de 15,000 descargas auténticas en los tres meses que estuvo disponible.

"Además, realizamos una búsqueda en GitHub para determinar si este paquete se utilizó en los repositorios de otras empresas", dijo Lanyado en el escrito para su experimento.

“Nuestros hallazgos revelaron que varias grandes empresas utilizan o recomiendan este paquete en sus repositorios. Por ejemplo, las instrucciones para instalar este paquete se pueden encontrar en el archivo README de un repositorio dedicado a la investigación realizada por Alibaba”.

Alibaba no respondió a una solicitud de comentarios.

Lanyado también dijo que había un proyecto propiedad de Hugging Face que incorporaba el falso huggingface-cli, pero que fue removido después de que alertó al negocio.

Al menos hasta ahora, esta técnica no se ha utilizado en un ataque real del que Lanyado tenga conocimiento.

"Además de nuestro paquete alucinado (nuestro paquete no es malicioso, es sólo un ejemplo de lo fácil y peligroso que podría ser aprovechar esta técnica), todavía tengo que identificar una explotación de esta técnica de ataque por parte de actores maliciosos", dijo. "Es importante tener en cuenta que es complicado identificar un ataque de este tipo, ya que no deja muchas huellas". ®

punto_img

Información más reciente

punto_img

Habla con nosotros!

¡Hola! ¿Le puedo ayudar en algo?