Cadena de suministro
¿Qué es el slopsquatting?
El slopsquatting es un ataque que registra nombres de paquetes inventados por asistentes de programación con IA. Cuando un modelo sugiere un paquete que no existe, un atacante puede publicar malware con ese nombre, y el siguiente desarrollador o agente que siga la sugerencia lo instalará. Es typosquatting sin la errata.
Actualizado el
De dónde viene el nombre
El término es un juego de palabras con typosquatting, donde «slop» significa contenido de IA de baja calidad. Se atribuye a Seth Larson, security developer-in-residence de la Python Software Foundation, en 2025.
Cómo se produce la alucinación de paquetes
Un modelo de lenguaje escribe lo que parece probable. Un nombre verosímil, como el de una biblioteca para una tarea común, puede parecer tan probable como uno real, de modo que el modelo a veces escribe un import o un comando de instalación para un paquete que nadie publicó nunca.
Un estudio presentado en USENIX Security 2025 probó 16 modelos populares con 576.000 muestras de código. La proporción de paquetes alucinados fue de al menos un 5,2 % en los modelos comerciales y un 21,7 % en los de código abierto, con 205.474 nombres únicos inventados. Los investigadores describieron el problema como persistente y sistémico.
Cómo funciona un ataque de slopsquatting
- Recopila los nombres. El atacante hace a los modelos preguntas de programación habituales y anota qué paquetes no existen.
- Los publica. Registra esos nombres en npm o PyPI, con un paquete que funciona y oculta una carga maliciosa.
- Espera. Un desarrollador pega la sugerencia, o un agente de programación ejecuta la instalación por su cuenta.
- Se ejecuta. Un script de instalación se ejecuta en el equipo del desarrollador o en CI, con acceso a tokens y secretos.
Slopsquatting frente a typosquatting
| Typosquatting | Slopsquatting | |
|---|---|---|
| Origen del error | Una persona escribe mal un nombre | Un modelo inventa un nombre |
| El nombre | Parecido al de un paquete real | Verosímil, sin ningún paquete real detrás |
| Quién lo instala | Un desarrollador | Un desarrollador, o un agente sin que ninguna persona lea el nombre |
| Por qué es más difícil detectarlo | Las comprobaciones de parecido pueden compararlo con nombres populares | Puede que no haya ningún nombre popular con el que compararlo |
Por qué los agentes de programación aumentan lo que está en juego
Con un asistente de chat, una persona lee la sugerencia antes de ejecutarla. Un agente de programación puede escribir el código, añadir la dependencia y ejecutar la instalación en un solo paso. Desaparece la revisión humana que detecta muchos nombres falsos, y la instalación ocurre allí donde se ejecute el agente, a menudo con las credenciales del desarrollador o dentro de CI. Para una visión más amplia, consulte seguridad para el desarrollo asistido por IA.
Cómo protegerse del slopsquatting
- Verifique antes de instalar. Compruebe que un paquete sugerido existe, tiene un repositorio real y cuenta con un historial. Un paquete creado la semana pasada merece desconfianza.
- Revise los cambios en el lockfile. Las dependencias nuevas deben verse en las pull requests, independientemente de quién o qué haya escrito el código. Consulte lo que registra un lockfile.
- Limite lo que pueden hacer los agentes. Exija aprobación antes de que un agente instale paquetes, y ejecute los agentes en un sandbox sin credenciales de producción.
- Retrase la adopción de paquetes nuevos. Ayuda una regla contra los paquetes publicados en los últimos días.
- Desactive los scripts de instalación donde su build lo permita.
- Restrinja el tráfico saliente de los builds. Un paquete que no puede llegar al atacante no puede enviar sus secretos a ninguna parte. Consulte política de salida de GitHub Actions.
Un paquete de slopsquatting nuevo no tiene aviso, por lo que ni un escaneo SCA ni npm audit lo notificarán. Para ver la lista completa de controles, consulte buenas prácticas de seguridad de la cadena de suministro de software.
Cómo limita CRACI los daños
CRACI no detecta nuevos paquetes maliciosos, así que examínelos con otras herramientas. Lo que hace es limitar el daño cuando uno llega a su build. Como su runner de GitHub Actions, aplica una política de salida que bloquea las conexiones que el build no necesita, lo que le protege incluso cuando nadie ha visto antes el ataque. También registra cada paquete que descargó cada job, así que, una vez conocido un paquete malicioso, puede ver qué builds lo incorporaron.
Slopsquatting: preguntas frecuentes
¿Qué es el slopsquatting?
Un ataque en el que alguien registra nombres de paquetes que inventan los asistentes de programación con IA, de modo que quien sigue la sugerencia instala el código del atacante.
¿Quién acuñó el término slopsquatting?
Se atribuye a Seth Larson, security developer-in-residence de la Python Software Foundation, en 2025.
¿Qué es un paquete alucinado?
Un nombre de paquete que un modelo de IA sugiere aunque no exista ningún paquete con ese nombre. La investigación ha detectado esto en una proporción significativa de muestras de código generadas.
¿En qué se diferencia el slopsquatting del typosquatting?
El typosquatting depende de que una persona escriba mal el nombre de un paquete real. El slopsquatting depende de que un modelo invente un nombre que nunca existió, así que no hay ningún paquete real con el que compararlo.
¿Cómo se previene el slopsquatting?
Compruebe que los paquetes sugeridos son reales, revise las dependencias nuevas en las pull requests, exija aprobación antes de que los agentes instalen nada y restrinja el tráfico saliente de los builds.
Contenga el paquete que nadie quiso instalar
Bloquee las conexiones salientes que sus builds no necesitan y conserve un registro de cada paquete que descargaron.
Reservar una demo