Slopsquatting
El slopsquatting es un ataque a la cadena de suministro de software que aprovecha nombres de paquetes inventados por la IA para engañar a los desarrolladores e inducirles a instalar dependencias maliciosas.
El slopsquatting es un ataque a la cadena de suministro de software en el que un atacante publica un paquete malicioso con un nombre inventado por un asistente de programación con IA y luego confía en que los desarrolladores o las herramientas automatizadas lo instalen. La trampa convierte una recomendación de dependencia verosímil en código ejecutable de terceros. Conecta las alucinaciones en los LLM—información fabricada presentada como si fuera cierta—con los gestores de paquetes que se utilizan para crear software.
El investigador de seguridad Seth Larson acuñó el término en abril de 2025, y Andrew Nesbitt lo popularizó a través de su definición original de slopsquatting, atribuyendo el término a Larson. El nombre combina el contenido basura generado por IA con «ocupación», en referencia a apropiarse de un nombre de software que otras personas buscarán.
Cómo funciona el slopsquatting#
Un modelo de lenguaje grande genera código que contiene un nombre de paquete inventado o un comando de instalación. Un atacante identifica ese nombre y publica un paquete con él en un registro como PyPI o npm. Cuando la recomendación vuelve a aparecer, la instalación obtiene el paquete del atacante. Las alucinaciones de paquetes pueden repetirse en distintas indicaciones y modelos, concentrando la demanda en nombres de los que los atacantes pueden apropiarse.
El estado del registro determina el resultado. Si el nombre no está registrado, la instalación falla; si está controlado por un atacante, se resuelve correctamente e introduce código malicioso en el entorno. La confianza del desarrollador en el asistente se convierte en una vía de entrada a la cadena de suministro de software.
Este riesgo afecta tanto al desarrollo asistido por personas como a la programación agéntica. Un agente de IA con capacidades de uso de herramientas puede convertir una dependencia generada en una acción de instalación. El código malicioso de un paquete puede ejecutarse durante la instalación o en usos posteriores, y acceder a archivos, credenciales y resultados de compilación en función de los permisos del entorno.
Cómo llegó a los desarrolladores un paquete inventado#
Bar Lanyado publicó un paquete Python vacío llamado huggingface-cli después de que los modelos de IA recomendaran esa dependencia inexistente. Para el 28 de marzo de 2024, el paquete alucinado había recibido más de 30 000 descargas legítimas en tres meses. Las instrucciones de instalación también aparecieron en el README de un repositorio de investigación de Alibaba. La adopción del paquete vacío demostró que el nombre de una dependencia inventada podía llegar a flujos de trabajo de desarrollo reales.
Los nombres de los paquetes añaden otra fuente de confusión: un ejecutable de línea de comandos, un módulo importable y una distribución instalable pueden tener nombres distintos. Esto es importante en el desarrollo de visión artificial cuando los asistentes generan instrucciones para configurar entornos. Ultralytics YOLO es compatible con YOLO26 a través del paquete Python ultralytics, que ofrece flujos de trabajo de entrenamiento, predicción y exportación; comprobar que las instrucciones de instalación generadas coinciden con la identidad de ese paquete permite abordar la fase de selección de dependencias en la que aparece el slopsquatting.
El slopsquatting y otros ataques relacionados#
Estos términos describen mecanismos distintos que afectan a la seguridad de las dependencias:
- Alucinación de paquetes: El modelo inventa una dependencia. El slopsquatting convierte ese error de denominación en un arma mediante un registro malicioso.
- Typosquatting: Un atacante registra un nombre parecido al de un paquete existente para aprovecharse de los errores ortográficos. El slopsquatting se dirige a nombres generados por IA.
- Confusión de dependencias: Un gestor de paquetes obtiene un paquete público cuando se pretendía utilizar una dependencia privada.
- Inyección de instrucciones: El contenido controlado por un atacante redirige el comportamiento de un sistema de IA. El slopsquatting aprovecha una recomendación de paquete generada mediante el registro.
Cómo prevenir el slopsquatting en las canalizaciones de compilación#
La aprobación de dependencias identifica el proyecto, el editor, el repositorio de origen y el historial de versiones previstos antes de la instalación. La revisión de dependencias centrada en la seguridad se aplica a las incorporaciones generadas por IA igual que al código escrito por personas. La disponibilidad en un registro confirma que existe un nombre; comprobar quién es su propietario permite saber qué software se ejecutará. Fundamentar un asistente en la documentación de paquetes aprobados proporciona las identidades de los paquetes necesarias para esta revisión.
En la integración continua, las barreras de revisión controlan los cambios en las dependencias antes de que se incorporen a una compilación. Las versiones fijadas identifican las versiones aprobadas, mientras que los hashes de los artefactos identifican sus archivos exactos. El aislamiento de agentes, el acceso restringido a la red y las credenciales con los mínimos privilegios limitan los recursos disponibles para el código de las dependencias y reducen su acceso a datos confidenciales y credenciales de despliegue.
El modo de instalación con comprobación de hashes de Python utiliza --require-hashes para comprobar los archivos de los paquetes descargados frente a los hashes registrados en un archivo de requisitos. Todas las dependencias, incluidas las transitivas —las bibliotecas que necesitan otras bibliotecas—, deben tener una versión exacta y hashes de artefactos permitidos. Si el hash de un paquete descargado no coincide con ninguno de los hashes permitidos, pip rechaza el archivo y detiene la instalación.










