Slopsquatting: la estafa de los paquetes que la IA inventa

Slopsquatting: la estafa de los paquetes que la IA inventa

Le pides al asistente de IA un ejemplo de código, te responde con un pip install confiado, lo copias, lo pegas y lo ejecutas. El detalle: ese paquete nunca existió — hasta que un criminal se dio cuenta de que la IA sugiere ese nombre todo el tiempo y lo registró en el repositorio oficial con malware adentro. Eso es el slopsquatting, una de las evoluciones más astutas del ataque de cadena de suministro, y nació directamente de un defecto conocido de los modelos de lenguaje: la alucinación.

Qué es el slopsquatting

Slopsquatting es el registro malicioso de nombres de paquetes que los asistentes de IA inventan al generar código. El atacante descubre qué nombres inexistentes alucinan los modelos con frecuencia, publica paquetes con esos nombres en npm, PyPI o similares, y espera a que los desarrolladores instalen la sugerencia sin verificar. El nombre es un juego de palabras con "slop" — el apodo del contenido de baja calidad generado por IA — sumado al viejo typosquatting.

La diferencia respecto al typosquatting clásico está en la fuente del error. En la estafa de la letra cambiada, el atacante apuesta a que tu dedo resbale en el teclado. En el slopsquatting, apuesta a que la IA se equivoque por ti — con una ventaja adicional: investigadores demostraron que los modelos alucinan los mismos nombres de paquete de forma consistente. Si la IA inventa requests-oauth-helper hoy, tiende a inventarlo de nuevo mañana, para otro desarrollador. El nombre alucinado se convierte en un punto de encuentro predecible entre víctima y atacante.

Y el problema tiene una magnitud medida: un estudio académico de 2025 que probó 16 modelos de generación de código encontró paquetes inexistentes en cerca del 20% de las muestras — cientos de miles de nombres alucinados en total —, y casi la mitad de esos nombres se repetía de forma consistente cuando se rehacía el mismo prompt. Es decir: no es un tropiezo raro y aleatorio del modelo, es un patrón lo bastante predecible como para convertirse en modelo de negocio criminal.

Por qué funciona tan bien

  • Confianza transferida: quien confía en la respuesta de la IA transfiere esa confianza al comando de instalación que vino con ella. Pocos desarrolladores verifican en el repositorio oficial si el paquete existe, quién lo mantiene y desde cuándo.
  • Nombres plausibles: la alucinación no genera nombres absurdos — genera nombres que parecen la convención del ecosistema (flask-json-utils, aws-s3-tools). La plausibilidad es el disfraz.
  • Instalar ya es ejecutar: tanto npm como pip permiten scripts de instalación. Ni siquiera hace falta importar la biblioteca — el install solo ya ejecuta código del atacante en tu máquina, con acceso a variables de entorno, tokens y claves SSH.
  • Escala: el mismo prompt popular ("cómo subo archivos a S3 en Python") genera la misma sugerencia alucinada para miles de personas. Un solo paquete registrado pesca a toda la fila.

El mecanismo recuerda lo que ya vimos en ataques reales al ecosistema de JavaScript, como el caso Miasma en npm: el repositorio oficial es el canal de distribución perfecto porque nadie desconfía del canal — solo que aquí el cebo está hecho a medida de los errores estadísticos de la IA.

Cómo protegerte (dev y empresa)

En el día a día del desarrollador

  • Verifica antes de instalar: abre la página del paquete en npm/PyPI y mira tres cosas — fecha de publicación, número de descargas y repositorio vinculado. Un paquete recién creado, con pocas descargas y sin repositorio público es una triple bandera roja.
  • Desconfía de la sugerencia exacta: si la IA sugirió una biblioteca de la que nunca oíste hablar, búscala antes del install. Cinco segundos de búsqueda desarman la mayoría de los casos.
  • Fija versiones y usa lockfile: package-lock.json y requirements.txt con versiones fijas impiden que una dependencia nueva entre al proyecto sin revisión.
  • Cuidado redoblado con código generado en lote: cuanto más código genera la IA de una vez, menor la probabilidad de que revises cada import — exactamente el escenario en que el paquete falso pasa desapercibido.

En el pipeline de la empresa

  • Registry interno o proxy con lista de permitidos — el paquete alucinado muere en la puerta si al build solo entran dependencias aprobadas.
  • Escaneo de dependencias en el CI con alerta para paquetes nuevos en el proyecto, especialmente los publicados hace poco.
  • Política clara para código generado por IA: los mismos cuidados al usar ChatGPT en el trabajo valen para el código que devuelve — la revisión humana de dependencias no es opcional.

El vínculo con los otros ataques a quienes usan IA

El slopsquatting cierra un patrón que ya vimos antes: la IA como superficie de ataque, no solo como herramienta. El prompt injection manipula lo que hace el modelo; el data poisoning corrompe lo que aprende; el slopsquatting arma lo que se equivoca. En todos los casos, la defensa es esencialmente la misma — tratar la salida de la IA como un borrador a verificar, nunca como una autoridad final.

La alucinación de los modelos no es un problema nuevo, y no va a desaparecer en la próxima versión. Lo que cambia es el costo de ignorarla: antes era un import roto en tu terminal; ahora puede ser un ladrón de credenciales corriendo con tus permisos. Verifica el paquete, después instálalo — en ese orden.

Comentarios