Con lo sviluppo sempre maggiore degli strumenti di aiuto per il codice basati sull’intelligenza artificiale (AI) utilizzati da sviluppatori di tutto il mondo, emergono nuove minacce. Una di queste si chiama “slopsquatting”, un rischio nella catena di fornitura creato dagli errori di comprensione e generazione delle grandi reti di linguaggio (LLM).

Che cos’è lo slopsquatting

Lo slopsquatting è un nuovo tipo di attacco alla catena di fornitura che sfrutta le “hallucinazioni” delle LLM per inserire codice malevolo nei processi di sviluppo. Il termine unisce l’espressione “AI slop”, che indica output imprecisi generati dagli strumenti AI, e lo “typosquatting”, una pratica fuorviante in cui gli hacker registrano versioni malificate di popolari domini per trarre vantaggio da errori di battitura dell’utente.

L'attacco sfrutta la tendenza delle LLM a generare nomi di pacchetti software inventati, che gli aggressori possono quindi registrare e popolare con codice malevolo. Durante il coding supportato da AI, il modello potrebbe suggerire pacchetti open-source fittizi, spesso incomprensibili come raccolte di file, programmi e strumenti d’installazione. Questo di per sé non è dannoso. Tuttavia, se un malintenzionato registra un nome fittizio, può generare malware che venga integrato direttamente nel codice dell’utente.

Come l’AI crea un rischio per la catena di fornitura

I rischi di sicurezza legati all’AI emergono principalmente da queste hallucinazioni, che possono produrre informazioni errate considerate veritiere dagli utenti. Queste stesse hallucinazioni sono diventate vulnerabilità sfruttabili. Lo typosquatting tradizionale, anche se esistente da tempo, è stato riconosciuto e mitigato. Ma il modello di minaccia è cambiato.

Adesso gli aggressori non generano semplicemente varianti errate di pacchetti noti, bensì nomi plausibili che sembrano corretti in un contesto specifico. Una volta che un attaccante conosce i pacchetti inventari tipici generati dagli LLM, può registrare un pacchetto malevolo sotto il medesimo nome e installare malware.

In molti casi, i registri open-source non riconosceranno tali pacchetti come pericolosi perché non sono semplici varianti di errori. Per esempio, i registri riescono a bloccare “crossenv” invece di “cross-env”. Ma non sarebbero in grado di identificare pacchetti come “mpn install cross-env file” o “cross-env-extended” come minacce potenziali.

Le halluzinazioni sono persistenti

Gli hallucinations generati dagli LLM potrebbero ripetersi ripetutamente e, in caso di diffusione, possono rimanere nascosti per mesi o anni, dando agli aggressori possibilità di infiltrare malware in molteplici sistemi. Uno studio ha analizzato 31.267 vulnerabilità in 14.675 pacchetti e 10 diversi linguaggi di programmazione.

Secondo i dati, il numero totale di vulnerabilità riferite cresce del 98% ogni anno, molto più velocemente del tasso di crescita del 25% annuale nei pacchetti software open-source. L’età media delle vulnerabilità rilevate è aumentata dell’85%, segnalando un calo generale nella sicurezza. Questo mostra come gli strumenti AI richiedano misure di sicurezza più robuste.

I pericoli reali causati dall’hallucinazione dell’AI

I malintenzionati possono creare pacchetti accessibili pubblicamente con lo stesso nome di librerie comunemente generate dagli strumenti AI. Al posto del codice attendibile che i modelli immaginano di suggerire, però, questi pacchetti contengono malware. Questi modelli pensano di fare riferimento a librerie esistenti, ma ripetono lo stesso nome inventato.

Se gli hallucinations generati dagli strumenti AI non sono casuali, gli aggressori teoricamente potrebbero registrare pacchetti con nomi che traggono in inganno migliaia o addirittura centinaia di migliaia di sviluppatori. Questi pacchetti sembrano plausibili, con una bassa percentuale di errore che potrebbe ingannare anche un esperto.

Perché gli LLM inventano pacchetti?

I modelli LLM generano statisticamente la risposta più “probabile” piuttosto che la corretta. Questo fenomeno genera spesso hallucinations che non rappresenta errori casuali. Secondo uno studio, la percentuale di hallucinazioni può variare dal 50% all’82%, a seconda del modello utilizzato e del tipo di input. Anche il modello GPT-4o, di altissima qualità, può mostrare un tasso di generazione errata del 23% o meno, riuscendo a mantenerlo grazie a tecnologie di mitigazione basate su input mirati.

Quali modelli sono più colpiti dal rischio di slopsquatting?

Sebbene tutti i modelli LLM siano esposti al rischio di slopsquatting, alcuni sono più vulnerabili. La possibilità che un modello produca pacchetti hallucinati durante la generazione del codice dipende da diversi fattori. I modelli proprietari, ad esempio, sono quattro volte meno probabili di generare pacchetti “hallucinated” rispetto a quelli open-source.

Ricerche condotte su 30 diversi sistemi e 576.000 campioni di codice generati da 2,23 milioni di pacchetti hanno mostrato che il tasso di hallucination globale è del 19,7%. Il modello GPT-4.0 Turbo ha dimostrato un tasso di hallucination del 3,59%, mentre il modello open-source DeepSeek 1B ha mostrato un tasso molto più alto del 13,63%.

Questa situazione mette in evidenza che le aziende che si affidano principalmente agli strumenti di AI open-source sono più esposte a questo rischio. I modelli proprietari, però, non sono immuni, e una volta compresa questa vulnerabilità, gli aggressori potrebbero cominciare a manipolarli per sfruttare la fiducia che questi modelli ispirano agli sviluppatori.

Sviluppo di codice emotivo e problemi correlati

Troppo spesso, gli sviluppatori non verificano le proposte generate dagli strumenti di AI. Circa il 40% del codice che uno sviluppatore invia è stato scritto o modificato con una qualche forma di supporto AI. Secondo uno studio, il 72% di coloro che hanno sperimentato strumenti AI li utilizza quotidianamente. Questo livello di fiducia amplifica il pericolo rappresentato dagli hallucinations.

Con l’aumento del “vibe coding”, un metodo in cui gli sviluppatori si affidano fortemente al giudizio delle AI, la superficie attaccabile continua ad espandersi. Il non effettuando controlli rigorosi sui pacchetti AI raccomandati espone il codice finale a una minaccia reale.

C