Los asistentes de código con IA están generando nombres de paquetes que no existen, y los atacantes están convirtiendo esas alucinaciones en riesgos reales para la cadena de suministro.

Cuando el investigador de seguridad Bar Lanyado, de Lasso Security, le pidió a una herramienta de programación impulsada por IA un cliente de Python, el modelo sugirió instalar huggingface-cli. El paquete es un fantasma; la biblioteca legítima existe bajo el nombre huggingface_hub. Para demostrar el peligro, Lanyado registró el nombre falso en el Python Package Index (PyPI) como un marcador de posición vacío. En tres meses, el marcador de posición acumuló más de 30.000 descargas, apareció en documentación pública e incluso en muestras de código extraídas de los repositorios de Alibaba.

Cómo un paquete fantasma se convierte en una amenaza real

  1. Prompt → alucinación – Un desarrollador pide ayuda a una IA. El modelo, entrenado con datos ruidosos de internet, inventa un nombre de paquete que suena plausible.
  2. Copiar y pegar → documentación – La sugerencia termina en un README, en una respuesta de Stack Overflow o en una wiki interna. Una vez escrito, el nombre se propaga por la comunidad.
  3. Integración de código – El desarrollador, confiando en la IA, añade el nombre a un archivo de requisitos y lo lanza a producción.

Por qué las defensas actuales no detectan el problema

Las herramientas de análisis estático y los escáneres de vulnerabilidades buscan CVE conocidos y bibliotecas con un historial de lanzamientos. Un paquete recién publicado con cero descargas antes de la sugerencia de la IA no tiene CVE, ni reputación y, por lo tanto, parece limpio. La comprobación estándar de "¿es vulnerable la versión?" devuelve "falso", lo que otorga a los desarrolladores una falsa sensación de seguridad.

Lo que demuestra el experimento

  • Los nombres inventados por la IA llegan a producción – Las más de 30.000 descargas demuestran que los desarrolladores realmente están descargando estos paquetes fantasma.
  • Las alucinaciones se convierten en documentación – Una vez que un nombre falso aparece en una guía pública, puede persistir indefinidamente, propagando el error.
  • El registro es trivial – Publicar un paquete en PyPI no cuesta nada y toma solo unos minutos, lo que reduce la barrera para el abuso de la cadena de suministro.

Medidas defensivas que realmente funcionan

  • Valida cada dependencia – Antes de añadir un nuevo requisito, busca en el índice de paquetes y confirma que el nombre coincida con una biblioteca existente y documentada.
  • Verifica con fuentes oficiales – Compara el nombre sugerido con el repositorio del proveedor o la guía de instalación oficial.
  • Trata los paquetes nuevos y de baja adopción como de alto riesgo – Marca cualquier dependencia que tenga menos de un puñado de descargas o una fecha de lanzamiento muy reciente para una revisión manual.

Qué observar a continuación

La conclusión es sencilla: una sugerencia de IA no es una garantía. Trata cada nueva dependencia como un componente de terceros no verificado, comprueba su procedencia y vigila la cadena de suministro antes de permitir que un paquete fantasma se filtre en producción.