Slopsquatting
Lo slopsquatting è un attacco alla catena di fornitura del software che sfrutta i nomi di pacchetti inventati dall'IA per indurre gli sviluppatori a installare dipendenze dannose.
Lo slopsquatting è un attacco alla catena di fornitura del software in cui un aggressore pubblica un pacchetto dannoso con un nome inventato da un assistente di programmazione basato sull'IA, contando poi sul fatto che sviluppatori o strumenti automatizzati lo installino. La trappola trasforma una raccomandazione plausibile di una dipendenza in codice eseguibile di terze parti. Collega le allucinazioni degli LLM—informazioni inventate presentate come fattuali—ai gestori di pacchetti usati per creare software.
Il ricercatore di sicurezza Seth Larson ha coniato il termine nell'aprile 2025 e Andrew Nesbitt lo ha reso popolare attraverso la sua definizione originale di slopsquatting, attribuendone il merito a Larson. Il nome combina AI slop con «squatting», che si riferisce alla registrazione di un nome software che altre persone cercheranno.
Come funziona lo slopsquatting#
Un modello linguistico di grandi dimensioni genera codice contenente il nome di un pacchetto inventato o un comando di installazione. Un aggressore individua quel nome e pubblica un pacchetto con tale nome su un registro come PyPI o npm. Quando la raccomandazione ricompare, l'installazione recupera il pacchetto dell'aggressore. Le allucinazioni sui pacchetti possono ripresentarsi con prompt e modelli diversi, concentrando la domanda su nomi che gli aggressori possono registrare.
L'esito dipende dallo stato del registro. Un nome non registrato causa un errore di installazione; un nome controllato da un aggressore viene risolto correttamente e introduce codice dannoso nell'ambiente. La fiducia dello sviluppatore nell'assistente diventa una via d'accesso alla catena di fornitura del software.
Questo rischio riguarda sia lo sviluppo assistito da persone sia la programmazione agentica. Un agente di IA con capacità di usare strumenti può trasformare una dipendenza generata in un'azione di installazione. Il codice di un pacchetto dannoso può essere eseguito durante l'installazione o l'uso successivo, esponendo file, credenziali e artefatti di compilazione in base ai permessi dell'ambiente.
Come un pacchetto inventato è arrivato agli sviluppatori#
Bar Lanyado ha pubblicato un pacchetto Python vuoto denominato huggingface-cli dopo che i modelli di IA avevano consigliato quella dipendenza inesistente. Entro il 28 marzo 2024, il pacchetto allucinato aveva ricevuto oltre 30.000 download reali nell'arco di tre mesi. Le istruzioni di installazione comparivano anche nel README di un repository di ricerca di Alibaba. L'adozione del pacchetto vuoto ha dimostrato che un nome di dipendenza inventato poteva raggiungere flussi di lavoro di sviluppo reali.
La denominazione dei pacchetti aggiunge un'altra fonte di confusione: un eseguibile da riga di comando, un modulo importabile e una distribuzione installabile possono avere nomi diversi. Questo è importante nello sviluppo di visione artificiale, quando gli assistenti generano istruzioni per configurare l'ambiente. Ultralytics YOLO supporta YOLO26 tramite il pacchetto Python ultralytics, che offre flussi di lavoro per l'addestramento, la predizione e l'esportazione; verificare le istruzioni di installazione generate confrontandole con l'identità del pacchetto affronta la fase di selezione delle dipendenze in cui entra in gioco lo slopsquatting.
Slopsquatting e attacchi correlati#
Questi termini descrivono meccanismi distinti che incidono sulla sicurezza delle dipendenze:
- Allucinazione di pacchetti: il modello inventa una dipendenza. Lo slopsquatting sfrutta questo errore di denominazione tramite una registrazione malevola.
- Typosquatting: un aggressore registra un nome simile a quello di un pacchetto esistente per intercettare gli errori di battitura. Lo slopsquatting prende di mira i nomi generati dall'IA.
- Confusione delle dipendenze: un gestore di pacchetti recupera un pacchetto pubblico quando era prevista una dipendenza privata.
- Prompt injection: contenuti controllati da un aggressore reindirizzano il comportamento di un sistema di IA. Lo slopsquatting sfrutta una raccomandazione di pacchetto generata tramite il registro.
Prevenire lo slopsquatting nelle pipeline di compilazione#
L'approvazione delle dipendenze identifica il progetto previsto, l'editore, il repository sorgente e la cronologia delle release prima dell'installazione. La revisione delle dipendenze incentrata sulla sicurezza si applica alle aggiunte generate dall'IA tanto quanto al codice scritto da persone. La disponibilità nel registro conferma che un nome esiste; verificarne la proprietà stabilisce di chi sarà eseguito il software. Ancorare un assistente alla documentazione approvata dei pacchetti fornisce le identità dei pacchetti necessarie per questa revisione.
Nell'integrazione continua, i controlli di revisione gestiscono le modifiche alle dipendenze prima che entrino in una compilazione. Le versioni bloccate identificano le release approvate, mentre gli hash degli artefatti identificano i file esatti. La sandboxizzazione degli agenti, l'accesso di rete limitato e le credenziali con privilegi minimi riducono le risorse disponibili al codice delle dipendenze e, di conseguenza, il suo accesso ai dati sensibili e alle credenziali di distribuzione.
La modalità di installazione di Python con verifica degli hash usa --require-hashes per confrontare gli hash dei file dei pacchetti scaricati con quelli registrati in un file dei requisiti. Ogni dipendenza, comprese quelle transitive—le librerie richieste da altre librerie—deve avere una versione esatta e hash degli artefatti consentiti. Se l'hash di un pacchetto scaricato non corrisponde ad alcuno degli hash consentiti, pip rifiuta il file e interrompe l'installazione.










