Il blog sulla sicurezza di FireAI

Di FireAI Security & Research Team · Pubblicato

Slopsquatting: quando il tuo assistente di codifica AI inventa un pacchetto e qualcun altro lo registra

Slopsquatting: quando il tuo assistente di codifica AI inventa un pacchetto e qualcun altro lo registra

Chiedi a un assistente di codifica di risolvere un problema e talvolta ti consiglierà di installare un pacchetto: quelli reali per attività comuni e, con una certa frequenza, pacchetti che non esistono affatto. Ha inventato un nome plausibile perché il modello di codice circostante richiedeva una dipendenza lì. Se tu o il tuo agente di codifica eseguite comunque il comando install, tutto ciò che è effettivamente registrato con quel nome su PyPI o npm è ciò che arriva sul tuo computer. Il ricercatore di sicurezza Seth Larson, sviluppatore residente presso la Python Software Foundation, ha chiamato l'attacco risultante "slopsquatting", registrando i nomi dei modelli allucinati, l'equivalente generato dall'intelligenza artificiale del typosquatting.

Quanto spesso ciò accade effettivamente

Un team dell’Università del Texas a San Antonio, Virginia Tech e dell’Università dell’Oklahoma lo ha misurato direttamente: “Abbiamo un pacchetto per te!”, accettato a USENIX Security 2025. Su 576.000 campioni di codice generati da 16 modelli popolari in due lingue, hanno trovato pacchetti allucinati in “almeno il 5,2% per modelli commerciali e il 21,7% per modelli open source”, per un totale di 205.474 nomi di pacchetti allucinati univoci. Questo non è un caso limite raro; per alcuni modelli open source è circa una su cinque dipendenze suggerite.

Spracklen et al., USENIX Security 2025, arXiv:2406.10279. Medie tra i 16 modelli testati; i singoli modelli variavano.
Classe modelloTasso di allucinazioni (delle raccomandazioni del pacchetto)
Modelli commerciali (media)almeno il 5,2%.
Modelli open source (media)almeno il 21,7%.

Perché questo è squattabile, non solo sbagliato

Un nome inventato una tantum sarebbe un fastidio, non una superficie di attacco. Ciò che lo rende sfruttabile è la ripetizione: come Lo riferisce il Registro il 12 aprile 2025, quando i ricercatori hanno ripetuto lo stesso messaggio dieci volte, "il 43% dei pacchetti allucinari si ripete ogni volta e il 39% non riappare mai". Quasi la metà dei nomi allucinati non sono rumori casuali; sono la stessa ipotesi che il modello raggiunge per un codice simile fornito in modo affidabile. Un utente malintenzionato non ha bisogno di indovinare cosa digiterà uno sviluppatore specifico. Possono eseguire gli stessi modelli rispetto a prompt comuni, raccogliere i nomi che si ripetono e registrarli in anticipo nell'indice del pacchetto reale.

Esempio: il momento del rischio
pip install fast-json-normalizer   # suggested by a coding assistant
Collecting fast-json-normalizer
  Downloading fast-json-normalizer-0.3.1.tar.gz
Running setup.py install for fast-json-normalizer ... done
# Nothing here indicates whether this name was ever a real, reviewed project
# or was registered specifically because models keep suggesting it.

Perché questo si adatta allo schema che OWASP già traccia

Questa è una variante di ciò che La Top 10 di OWASP per le applicazioni LLM chiama rischio della catena di fornitura per lo sviluppo assistito dall'intelligenza artificiale: il confine di fiducia che prima si trovava su "un essere umano ha scelto di aggiungere questa dipendenza" si sposta in "il completamento del modello di un modello lo ha scelto" e il completamento del modello non ha il concetto se un nome sia reale.

Cosa fare effettivamente al riguardo

  • Tratta ogni nome di pacchetto suggerito da un agente di codifica come un suggerimento da verificare, non come una dipendenza nota, nello stesso modo in cui tratteresti un nome digitato a memoria da un collaboratore junior.
  • Controlla la data di registrazione e la cronologia dei download prima di installare qualcosa di non familiare; un pacchetto apparso di recente e sospettosamente ben abbinato a un modello di prompt comune generato dall'intelligenza artificiale merita una seconda occhiata.
  • Blocca le dipendenze e usa un file di blocco, quindi un nome allucinato che è scivolato una volta non viene risolto nuovamente in silenzio in seguito.
  • Guarda cosa fa effettivamente un pacchetto appena installato al primo avvio. Una dipendenza appena registrata che raggiunge un server che non ha contatti commerciali è un segnale che un firewall può rilevare anche quando una revisione del codice non ha rilevato il nome.

Il ruolo di FireAI e di HisnLabs

A squatted package that phones home still has to make a connection to do it, from a Python or Node process you just ran; FireAI shows you that connection, the process behind it and where it is going, before you decide whether it belongs there.

FireAI è il prodotto di HisnLabs: un firewall con IA che funziona direttamente sul Mac. Mostra in linguaggio chiaro ogni connessione che le tue app effettuano e ti lascia decidere cosa esce dal tuo Mac — la sua IA lavora in locale, quindi il tuo traffico non viene mai inviato a noi né a nessun altro. Il team di ricerca sulla sicurezza di HisnLabs è quello che mantiene affidabili queste decisioni: cataloga quali domini sono semplice telemetria e quali un servizio reale, traccia il Paese e la rete dietro una connessione e addestra il modello locale (la funzione Autopilot) su schemi di traffico reali, senza che nulla lasci il tuo Mac.

Puoi leggere le scelte tecniche che ci stanno dietro, oppure provare FireAI per 17 giorni, su FireAI, di HisnLabs.

Fonti