Seguridad

Exploiting Package Hallucination at Scale contra Vibe Coders con LLMs

Las técnicas de Package Hallucination comenzaron a hacerse muy famosas justo hace un año, cuando un grupo de investigadores comenzaron a pedirle crear programas a los generadores de código basados en LLMs y estos generaban nombres de paquetes que no existían. Y cómo no, alguien pensó… ¿podríamos utilizar esto para distribuir malware «at scale» masivamente? Por supuesto que sí.
Como esto ya es conocido, las herramientas de Coge Generation basadas en LLMs tienen presente este vector de ataque, pero aún adolecemos de benchmarks claramente definidos para esto, por lo que un grupo de investigadores ha publicado un trabajo el mes pasado, titulado: «We Have a Package for You! A Comprehensive Analysis of Package Hallucinations by Code Generating LLMs» donde han analizado y comparado estos modelos.
Esta es solo uno de los problemas a los que se enfrentan los desarrolladores que usan los generadores de código, tanto como si lo hacen con modelos entrenados con datos de terceros, como si lo hacen con modelos conectados a sus propios repositorios de código, donde se pueden ver afectados por problemas de privacidad, problemas de filtrado de API Keys, generación de código inseguro o, cómo vamos a ver hoy, generación de alucinaciones en el nombre de las librerías. Para Developers, recomendado leer estos artículos:
Esto es especialmente importante con la tendencia que está arrasando Internet últimamente de programar haciendo Vibe Coding, y la nueva generación de «Vibe Coders» que pueden tener un desconocimiento alto de cómo se programa, y cómo se debe hacer de forma segura.  Hablo mucho de esto en esta charla que di en la pasada DotNetConference.
Es cierto que la potencia es brutal – yo probé a hacer mi Trabajo de Fin de Carrera en Geometría Computacional con ChatGPT -, pero  podríamos decir que el Vibe Coding en producción debe ser justo para lo contrario, para expertos programadores, o para aprender, hacer experimentos, pruebas de concepto, etcétera, pero no para poner software empresarial en producción directamente, sino como ayudante de programadores experimentados.
El caso es que el grupo de investigación ha estado probando todos los modelos en generación de código, y la conclusión es: Todos los modelos meten Package Hallucinations que pueden ser explotadas de forma automatizada tal y como se puede ver en la imagen anterior. 
El trabajo hace un análisis concienzudo desde diferentes tipos de métricas, que van desde el número de paquetes alucinados únicos, el número de paquetes alucinados que se repiten más de diez veces, el número de paquetes alucinados dependiendo del lenguaje de programación – probados Pyhton y JavaScript -, el número de paquete alucinados por número de líneas de código, etcétera.
Además, cuando se hace Fine-Tuning  del modelo y se tocan variables como la Temperature que impacta directamente en la frescura, novedad y aleatoriedad de las respuestas – que impacta positivamente en reducir el «leakage» de los datos de entrenamiento cuando se sube, impacta negativamente en el número de Pacakage Hallucinations.
Al final hace algunas métricas curiosas, como saber si los modelos son capaces de detectar sus Package Hallucinations, y cómo de buenos son detectando los Package Hallucinations de otros modelos, para obtener unos resultados curiosos.
Final Thoughts
Yo he mirado todas las gráficas, he buscando sacar algunas conclusiones personales, y el resultado es que:
  • Todos tienen alucinaciones incluidos los más caros, más modernos y con más parámetros.
  • Cuanto más parámetros, más moderno y más pasta te gastas reduces un poco el grado de Package Hallucinations.
  • Programar Vibe Coding en producción directamente es un riesgo.
  • Queda investigación por hacer en este área de conocimiento para mejorar la seguridad.
De nuevo, la era de los LLMs, la Inteligencia Artificial con la llegada del GenAI nos ha traído muchos avances, pero se nota que la seguridad no estaba en el diseño para nada, y lo estamos viendo hoy en día con la cantidad de trabajo que tenemos por delante en privacidad y control de acceso a la información, fortificación contra ataques, control de la calidad de los resultados, así que esto promete ser un área de mucha diversión para los expertos en Ciberseguridad & Hacking.
¡Saludos Malignos!
Autor: Chema Alonso (Contactar con Chema Alonso)  

Powered by WPeMatico

Gustavo Genez

Informático de corazón y apasionado por la tecnología. La misión de este blog es llegar a los usuarios y profesionales con información y trucos acerca de la Seguridad Informática.