Immagina di chiedere a un’intelligenza artificiale di aiutarti a scrivere del codice, magari suggerendoti quali ‘mattoncini’ software (i cosiddetti package) usare. Fantastico, vero? Peccato che, a volte, queste AI si ‘inventino’ nomi di pacchetti che in realtà non esistono. È un fenomeno che i tecnici chiamano “package hallucination”.
Ora, qui arriva la parte meno piacevole. C’è chi è già pronto a sfruttare questa piccola ‘fantasia’ dell’AI. I pirati informatici, sempre a caccia di nuove falle, hanno notato questa cosa. Aspettano che l’AI “allucini” questi nomi finti, poi vanno subito a registrarli prima che lo faccia qualcun altro. E una volta che il nome del pacchetto fasullo è nelle loro mani, ci possono infilare dentro codice malevolo. È un attacco subdolo alla catena di fornitura del software, soprannominato “Slopsquatting”.
La cosa che rende questo trucco particolarmente insidioso è che i nomi inventati dall’AI spesso sembrano verissimi. Non sono semplici errori di battitura come “reactt” invece di “react”, ma nomi che “suonano” credibili, come se dovessero esistere per logica. Una ricerca ha mostrato che quasi il 40% dei nomi fasulli assomigliavano in modo inquietante a quelli reali, e solo una piccola parte erano semplici refusi. Questo rende fin troppo facile per uno sviluppatore, magari di fretta o poco attento, copiare e incollare il nome suggerito dall’AI senza verificare, cadendo nella trappola.
Dei ricercatori hanno fatto un test: hanno provato 16 diversi modelli di AI per la generazione di codice. Il risultato medio? Un pacchetto su cinque suggerito dall’AI non esisteva affatto! Curiosamente, i modelli open-source sembrano più inclini a queste “allucinazioni”: DeepSeek e WizardCoder hanno toccato picchi di oltre il 21%, mentre modelli commerciali come GPT-4 Turbo si sono dimostrati più cauti (solo il 3,59% di nomi inventati). Il fanalino di coda è stato CodeLlama, che ha “allucinato” oltre un terzo delle sue raccomandazioni. Pensate a ecosistemi come Python o JavaScript, dove si usano tantissimi pacchetti esterni: il rischio si moltiplica a dismisura.
C’è un altro dettaglio preoccupante: l’AI non si inventa nomi a caso ogni volta. Spesso, ripete la stessa “allucinazione”. Nelle prove, nel 43% dei casi lo stesso nome fasullo è comparso 10 volte di fila, e quasi il 60% delle “allucinazioni” si è ripresentato in test diversi. Questo, ovviamente, rende il lavoro sporco dei pirati informatici ancora più semplice: sanno quali nomi finti l’AI suggerirà più spesso e possono preparare l’attacco su misura, registrando proprio quei nomi.
Perché succede tutto questo? Probabilmente perché chi addestra queste AI non ha pensato abbastanza alla sicurezza sotto questo aspetto, concentrandosi più sulla correttezza del codice generato che sulla validità dei riferimenti esterni.
Per fortuna, finora non si sono visti attacchi “Slopsquatting” veri e propri nel mondo reale. Ma la tecnica è lì, pronta, e ha tutte le carte in regola per diventare un problema serio. Quindi, il consiglio per chiunque scriva codice, specialmente con l’aiuto dell’intelligenza artificiale, è uno solo: siate prudenti! Non fidatevi ciecamente dei suggerimenti. Controllate sempre, sempre, sempre se quel pacchetto esiste davvero nei repository ufficiali prima di installarlo o usarlo. È un piccolo sforzo che può salvarvi da un gran guaio.