Developers: Cuidado que ChatGPT o Gemini te pueden recomendar instalar malware con Package Hallucinations
Las Hallucinations o Alucinaciones de los modelos LLM son uno de los problemas de seguridad recogidos en el OWASP TOP 10 para LLM Apps & Services. Este problema hace que el modelo se invente respuestas que suena plausibles, aunque están lejos de ser una realidad. Y puede que se hagan realidad pero de una manera maliciosa para troyanizar tu código, como vamos a ver.
En el mundo de los developers, las Hallucinations son un problema serio, y hemos visto como nos puede dar respuestas con códigos que son inseguros o mucho peor, respuestas y soluciones a problemas de desarrollo que son directamente falsas, como vimos en el estudio que comparaba ChatGPT y StackOverflow.
Hoy quería hablaros de un estudio llevado a cabo por Bar Lanyado, que habla de los riesgos de los Package Hallucinations en LLM, que básicamente se basa en pedirle ayuda a servicios como ChatGPT o Gemini para que nos de soluciones de desarrollo y ver cómo se inventa paquetes de código que no existen, es decir, que están directamente inventados por el modelo.
El estudio inicial lo publicó en verano del año pasado, y lo explicaba de forma muy sencilla como este ejemplo en el que le pide a ChatGPT que le ayude a realizar una tarea con la base de datos ArangoDB, y ese le recomienda que se instale un paquete. Este paquete, como podéis imaginar, no existe.
Con este escenario, sabiendo que ésta es una alucinación posible, el atacante solo debe crearse un paquete malicioso con ese nombre, y con funcionalidad clonada del paquete original que sí realiza esas funciones, pero con código malicioso para que el atacante controle las instalaciones.
En la imagen siguiente se puede ver cómo ChatGPT explica cómo instalar y utilizar un paquete malicioso que ha sido creado después de que se descubriera esta Package Hallucination.
Y la pregunta que alguien se podría hacer, ¿es esto un vector de ataque posible a escala? Bueno, pues esto es lo que ha seguido investigando el descubridor de esta técnica de ataque.
Package Hallucinations at scale
El investigador ha seguido tirando del hilo, y lo ha probado con 47.803 preguntas tipo "How To...?" sobre programación realizadas sobre ChatGPT (GPT 3.5 y GPT 4), Coral (Cohere) y Gemini Pro (Bard) sobre lenguajes como Python, Node.js, Ruby, .NET y Go, y los resultados los tenéis en las tablas siguientes-
Como podéis ver, hay un alto porcentaje de "Package Hallucinations" en todos los lenguajes, que además se van a repetir en todos los motores LLM, es decir, hay muchas que son coincidencias entre ellas.
Con estos resultados, se puede elegir bien qué paquetes maliciosos se quieren crear, ya que van a ser referenciados por las Package Hallucinations de estos modelos LLM y ver cuántos son los que se instalan estas librerías de malware.
PoC Package Hallucinations: Huggingface-cli
Para terminar, me gustaría referenciar la PoC que han mostrado con uno de los paquetes alucinados por los motores, llamado huggingface-cli, que como podéis es recomendado en esta captura por ChatGPT para que el usuario se lo instale:
Para la PoC, el investigador se creo un paquete con ese nombre en pip totalmente vacío sólo para contar cuántos developers se lo instalaban porque procedía de estas Package Hallucinations, y el resultados es brutal.
El resultado, como explican en el estudio, llevaba más de 30.000 descargas y contando, y es que si lo recomienda ChatGPT y Gemini, y además existe, el desarrollador va a tender a confiar en las revisiones de pip y la comunidad, y no a plantearse que sea un Package Hallucination.
Al final, los LLMs se están metiendo en nuestros procesos diarios, y en los de los desarrolladores también, así que hay que tener en cuenta este tipo de nuevos vectores de ataque, que van a ser sutiles y efectivos, como podéis ver, utilizando las alucinaciones de los LLMs para "weaponizar la distribución de malware". Brutal.
Este es otro camino que los malos van a utilizar para crear puntos de entrada de malware en los sistemas, pero si realmente quieres conocer este mundo, te recomiendo encarecidamente el libro de "Malware moderno: Técnicas avanzadas y su influencia en la industria" de Sergio de los Santos en 0xWord que va a hacer que te explote la cabeza.
¡Saludos Malignos!
Autor: Chema Alonso (Contactar con Chema Alonso)