Logotipo de Zephyrnet

Las alucinaciones generalizadas de LLM amplían la superficie de ataque de los desarrolladores de código

Fecha:

Según una investigación publicada recientemente, el uso de modelos de lenguaje grande (LLM) por parte de los desarrolladores de software presenta una oportunidad mayor de lo que se pensaba anteriormente para que los atacantes distribuyan paquetes maliciosos en entornos de desarrollo.

El estudio del proveedor de seguridad LLM Lasso Security es una continuación de un informe del año pasado sobre el potencial de Los atacantes abusan de la tendencia de los LLM a alucinar., o para generar resultados aparentemente plausibles pero no fundamentados en hechos, en respuesta a la entrada del usuario.

Alucinación del paquete de IA

El estudio previo se centró en la tendencia de ChatGPT a fabricar los nombres de las bibliotecas de códigos, entre otras fabricaciones, cuando los desarrolladores de software solicitaron la ayuda del chatbot habilitado para IA en un entorno de desarrollo. En otras palabras, el chatbot a veces arrojaba enlaces a paquetes inexistentes en repositorios de código públicos cuando un desarrollador podía pedirle que sugiriera paquetes para usar en un proyecto.

El investigador de seguridad Bar Lanyado, autor del estudio y ahora en Lasso Security, descubrió que los atacantes podrían colocar fácilmente un paquete malicioso real en la ubicación a la que apunta ChatGPT y darle el mismo nombre que el paquete alucinado. Cualquier desarrollador que descargue el paquete siguiendo la recomendación de ChatGPT podría terminar introduciendo malware en su entorno de desarrollo.

Lanyado's investigación de seguimiento examinó la omnipresencia del problema de las alucinaciones del paquete en cuatro modelos de lenguaje grandes diferentes: GPT-3.5-Turbo, GPT-4, Gemini Pro (anteriormente Bard) y Coral (Cohere). También probó la propensión de cada modelo a generar paquetes alucinados en diferentes lenguajes de programación y la frecuencia con la que generaban el mismo paquete alucinado.

Para las pruebas, Lanyado compiló una lista de miles de preguntas de "cómo hacer" que los desarrolladores en diferentes entornos de programación (python, node.js, go, .net, ruby) suelen buscar ayuda de los LLM en entornos de desarrollo. Luego, Lanyado hizo a cada modelo una pregunta relacionada con la codificación, así como una recomendación para un paquete relacionado con la pregunta. También pidió a cada modelo que recomendara 10 paquetes más para resolver el mismo problema.

Resultados repetitivos

Los resultados fueron preocupantes. Un sorprendente 64.5% de las “conversaciones” que Lanyado tuvo con Géminis generaron paquetes alucinados. Con Coral, esa cifra fue del 29.1%; A otros LLM como GPT-4 (24.2%) y GPT3.5 (22.5%) no les fue mucho mejor.

Cuando Lanyado hizo a cada modelo el mismo conjunto de preguntas 100 veces para ver con qué frecuencia alucinaban los mismos paquetes, descubrió que las tasas de repetición también eran sorprendentes. Cohere, por ejemplo, arrojó los mismos paquetes de alucinaciones más del 24% de las veces; Chat GPT-3.5 y Gemini alrededor del 14% y GPT-4 al 20%. En varios casos, diferentes modelos alucinaron con paquetes iguales o similares. El mayor número de modelos con alucinaciones cruzadas se produjo entre GPT-3.5 y Gemini.

Lanyado dice que incluso si diferentes desarrolladores le hicieran una pregunta a un LLM sobre el mismo tema pero las formularan de manera diferente, existe la probabilidad de que el LLM recomiende el mismo paquete alucinado en cada caso. En otras palabras, cualquier desarrollador que utilice un LLM para obtener asistencia en codificación probablemente se encontrará con muchos de los mismos paquetes alucinados.

"La pregunta podría ser totalmente diferente pero sobre un tema similar, y la alucinación seguiría ocurriendo, lo que hace que esta técnica sea muy efectiva", dice Lanyado. "En la investigación actual, recibimos 'paquetes repetidos' para muchas preguntas y temas diferentes e incluso en diferentes modelos, lo que aumenta la probabilidad de que se utilicen estos paquetes alucinados".

Fácil de explotar

Un atacante armado con los nombres de algunos paquetes alucinados, por ejemplo, podría cargar paquetes con los mismos nombres en los repositorios apropiados sabiendo que existe una gran probabilidad de que un LLM indique a los desarrolladores cómo encontrarlos. Para demostrar que la amenaza no es teórica, Lanyado tomó un paquete alucinado llamado "huggingface-cli" que encontró durante sus pruebas y cargó un paquete vacío con el mismo nombre en el repositorio de Hugging Face para modelos de aprendizaje automático. Los desarrolladores descargaron ese paquete más de 32,000 veces, afirma.

Desde el punto de vista del actor de amenazas, las alucinaciones de paquetes ofrecen un vector relativamente sencillo para distribuir malware. "Como vimos en los resultados de la investigación, no es tan difícil", dice. De media, todas las modelos alucinaron juntas un 35% en casi 48,000 preguntas, añade Lanyado. GPT-3.5 tuvo el porcentaje más bajo de alucinaciones; Gemini obtuvo la puntuación más alta, con una repetitividad promedio del 18% en los cuatro modelos, señala.

Lanyado sugiere que los desarrolladores tengan cuidado al actuar según las recomendaciones de paquetes de un LLM cuando no estén completamente seguros de su precisión. También dice que cuando los desarrolladores encuentran un paquete de código abierto desconocido, necesitan visitar el repositorio de paquetes y examinar el tamaño de su comunidad, sus registros de mantenimiento, sus vulnerabilidades conocidas y su tasa de participación general. Los desarrolladores también deben escanear minuciosamente el paquete antes de introducirlo en el entorno de desarrollo.

punto_img

Información más reciente

punto_img