Alucinaciones de IA y Slopsquatting: El Cuento de Terror en la Cadena de Suministro del Software
Por Juan Manuel Castilla, Especialista en Ciberseguridad
Cuando la IA Tiene Alucinaciones
Imagina que le pides a una IA que te ayude a programar una aplicación sencilla. La IA responde velozmente y te entrega el código con una línea como esta:
pip install hyperfastify
¿Te suena ese paquete? A ti tampoco. Pero lo instalas sin pensarlo. Al fin y al cabo, ¿quién desconfiaría de una IA superavanzada que genera código de calidad?
Bienvenido al mundo de las alucinaciones de paquetes y su primo malicioso: el slopsquatting.
Qué Son las Alucinaciones de Paquetes?Una alucinación de IA ocurre cuando un modelo genera información incorrecta, aunque suene convincente. Cuando esto sucede en el contexto de código, el problema escala.
Las IAs como GPT-4 o CodeLlama pueden "imaginarse" paquetes que no existen... por ahora. Y si un atacante está atento, puede adelantarse y publicar ese paquete inexistente con contenido malicioso. Así, transforma una simple alucinación en un ataque a la cadena de suministro.
Esto representa un nuevo tipo de ataque de confusión de paquetes facilitado por modelos generativos.
Slopsquatting y Otras Formas de Confusión
Antes existía el typosquatting, donde se imitaban nombres populares con errores tipográficos (‘nump1y’ en vez de ‘numpy’). Pero el slopsquatting es más sutil y peligroso.
El atacante simplemente espera a que la IA invente un paquete. Entonces, lo publica en PyPI o npm con un código malicioso. El desarrollador lo instala sin sospechar.
Esto es posible gracias a la confianza ciega que muchos depositan en las recomendaciones de las IAs.
Según un estudio reciente en el que analizaron más de 500,000 muestras de código generadas por 16 modelos. El resultado fue alarmante: más de 205,000 paquetes eran ficticios.
Investigando un Problema Invisible
La Metodología utilizada por los investigadores fue que crearon dos datasets:
-
Preguntas reales de Stack Overflow.
-
Descripciones de paquetes de PyPI y npm.
Estos prompts se usaron con modelos como:
-
GPT-3.5, GPT-4, GPT-4 Turbo.
-
CodeLlama 7B/13B/34B.
-
DeepSeek Coder.
-
WizardCoder, entre otros.
En total, se generaron 576,000 muestras de código en Python y JavaScript.
Los resultados fueron espeluznantes:
-
IAs comerciales: ~5% de paquetes alucinados.
-
Modelos open-source: ~22%.
-
GPT-4 Turbo: solo 3.59% de alucinaciones.
-
CodeLlama: más del 25% en algunos casos.
Más del 80% de los paquetes alucinados fueron únicos de un solo modelo, aunque muchos se repetían bajo el mismo prompt.
El Riesgo Real
La cadena de ataque es la siguiente:
-
El desarrollador genera código con IA.
-
La IA recomienda un paquete ficticio.
-
El atacante ya lo ha publicado.
-
El desarrollador lo instala confiado.
-
Se ejecuta código malicioso.
-
Se propaga a otros proyectos vía dependencias.
⚡ Esto compromete no solo al desarrollador inicial, sino a cualquier proyecto que use su código.
Por Qué Sucede: La Ciencia DetrásLos LLMs funcionan de forma probabilística. Predicen la próxima palabra o token más probable.
Cuando el modelo no tiene suficiente información, genera contenido que suena plausible pero es falso. De ahí emergen las alucinaciones.
Estrategias de Mitigación
Pre-generación: Mejorando el Prompt
-
RAG (Retrieval-Augmented Generation): Se conecta la IA a una base de datos real de paquetes. Reduce alucinaciones.
-
Autoevaluación: Algunos modelos pueden verificar si un paquete existe si se les pregunta directamente.
Post-generación: Validaciones Manuales
-
Verificar manualmente los paquetes antes de instalarlos.
-
Usar herramientas de seguridad de dependencias.
-
Políticas internas para revisar nuevas dependencias.
Fine-Tuning
-
Reentrenar modelos con datos verificados.
-
Redujo alucinaciones en un modelo de 16% a 2.4%.
-
Pero también redujo la calidad del código en 26%.
Recomendaciones para Equipos de Desarrollo
Es necesario crear una lista de Verificación y llevarlo a rajatabla:
-
¿Validas cada dependencia nueva?
-
¿Usas herramientas para analizar
requirements.txt? -
¿Aplicas reglas de aprobación para paquetes externos?
-
¿Capacitas a tu equipo sobre amenazas de slopsquatting?
Las alucinaciones de paquetes no son una curiosidad técnica. Son un vector de ataque emergente y serio.
El slopsquatting aprovecha la confianza que tenemos en las IAs. Y aunque los modelos comerciales cometen menos errores, siguen siendo vulnerables.
La buena noticia es que podemos mitigar estos riesgos:
-
Con buenas prácticas.
-
Validaciones cruzadas.
-
Y una sana dosis de escepticismo ante cualquier recomendación de una IA.
Como dice un viejo proverbio hacker:
"Confía, pero verifica. Y si lo generó una IA... verifica dos veces."
Referencias y Recursos
-
Paper original: "We Have a Package for You! A Comprehensive Analysis of Package Hallucinations by Code Generating LLMs". Disponible en arXiv.
-
Dataset y herramientas: GitHub.
Comparte este artículo si te ha resultado útil. Y recuerda: la seguridad no es opcional.

Comentarios
Publicar un comentario