Platone Data Intelligence.
Ricerca verticale e intelligenza artificiale.

Le allucinazioni pervasive di LLM espandono la superficie di attacco degli sviluppatori di codice

Data:

Secondo una ricerca recentemente pubblicata, l'utilizzo di modelli linguistici di grandi dimensioni (LLM) da parte degli sviluppatori di software offre agli aggressori un'opportunità maggiore di quanto si pensasse in precedenza di distribuire pacchetti dannosi negli ambienti di sviluppo.

Lo studio del fornitore di sicurezza LLM Lasso Security fa seguito a un rapporto dello scorso anno sul potenziale di aggressori ad abusare della tendenza dei LLM ad avere allucinazioni, o per generare risultati apparentemente plausibili ma non fondati sui fatti in risposta all'input dell'utente.

Allucinazione del pacchetto AI

I precedente studio si è concentrato sulla tendenza di ChatGPT a falsificare i nomi delle librerie di codici, tra le altre falsificazioni, quando gli sviluppatori di software hanno chiesto l'aiuto del chatbot abilitato all'intelligenza artificiale in un ambiente di sviluppo. In altre parole, il chatbot a volte emette collegamenti a pacchetti inesistenti su repository di codice pubblico quando uno sviluppatore potrebbe chiedergli di suggerire pacchetti da utilizzare in un progetto.

Il ricercatore di sicurezza Bar Lanyado, autore dello studio e ora presso Lasso Security, ha scoperto che gli aggressori potrebbero facilmente rilasciare un vero pacchetto dannoso nella posizione a cui punta ChatGPT e dargli lo stesso nome del pacchetto allucinato. Qualsiasi sviluppatore che scarichi il pacchetto in base ai consigli di ChatGPT potrebbe finire per introdurre malware nel proprio ambiente di sviluppo.

Quello di Lanyado ricerca di follow-up ha esaminato la pervasività del problema delle allucinazioni da pacchetto in quattro diversi modelli linguistici di grandi dimensioni: GPT-3.5-Turbo, GPT-4, Gemini Pro (ex Bard) e Coral (Cohere). Ha anche testato la propensione di ciascun modello a generare pacchetti allucinatori attraverso diversi linguaggi di programmazione e la frequenza con cui generavano lo stesso pacchetto allucinatorio.

Per i test, Lanyado ha compilato un elenco di migliaia di domande “come fare” che gli sviluppatori in diversi ambienti di programmazione – python, node.js, go, .net, ruby ​​– cercano più comunemente assistenza da LLM negli ambienti di sviluppo. Lanyado ha quindi posto a ciascun modello una domanda relativa alla codifica e una raccomandazione per un pacchetto correlato alla domanda. Ha inoltre chiesto a ciascun modello di consigliare altri 10 pacchetti per risolvere lo stesso problema.

Risultati ripetitivi

I risultati furono preoccupanti. Un sorprendente 64.5% delle “conversazioni” che Lanyado ha avuto con Gemini ha generato pacchetti allucinati. Con Coral, quel numero era del 29.1%; altri LLM come GPT-4 (24.2%) e GPT3.5 (22.5%) non sono andati molto meglio.

Quando Lanyado ha chiesto a ciascun modello la stessa serie di domande 100 volte per vedere con quale frequenza i modelli avrebbero avuto allucinazioni per gli stessi pacchetti, ha scoperto che anche i tassi di ripetizione erano da far alzare le sopracciglia. Cohere, ad esempio, ha vomitato gli stessi pacchetti allucinati nel 24% dei casi; Chat GPT-3.5 e Gemini intorno al 14% e GPT-4 al 20%. In diversi casi, diversi modelli hanno avuto allucinazioni sugli stessi pacchetti o su pacchetti simili. Il maggior numero di tali modelli con allucinazioni incrociate si è verificato tra GPT-3.5 e Gemini.

Lanyado afferma che anche se diversi sviluppatori ponessero a un LLM una domanda sullo stesso argomento ma formulassero le domande in modo diverso, c'è una probabilità che il LLM consiglierebbe lo stesso pacchetto allucinato in ogni caso. In altre parole, qualsiasi sviluppatore che utilizzi un LLM per assistenza sulla codifica probabilmente incontrerà molti degli stessi pacchetti allucinanti.

"La domanda potrebbe essere completamente diversa ma su un argomento simile, e l'allucinazione si verificherebbe comunque, rendendo questa tecnica molto efficace", dice Lanyado. "Nella ricerca attuale, abbiamo ricevuto 'pacchetti ripetitivi' per molte domande e argomenti diversi e anche attraverso modelli diversi, il che aumenta la probabilità che questi pacchetti allucinati vengano utilizzati."

Facile da sfruttare

Un utente malintenzionato armato dei nomi di alcuni pacchetti allucinati, ad esempio, potrebbe caricare pacchetti con gli stessi nomi nei repository appropriati sapendo che c'è una buona probabilità che un LLM indirizzi gli sviluppatori ad esso. Per dimostrare che la minaccia non è teorica, Lanyado ha preso un pacchetto allucinato chiamato "huggingface-cli" che ha incontrato durante i suoi test e ha caricato un pacchetto vuoto con lo stesso nome nel repository Hugging Face per i modelli di apprendimento automatico. Gli sviluppatori hanno scaricato quel pacchetto più di 32,000 volte, dice.

Dal punto di vista di un attore di minacce, le allucinazioni relative ai pacchetti offrono un vettore relativamente semplice per la distribuzione di malware. "Come abbiamo visto dai risultati della ricerca, non è così difficile", afferma. In media, tutti i modelli hanno avuto allucinazioni insieme, il 35% per quasi 48,000 domande, aggiunge Lanyado. GPT-3.5 aveva la percentuale più bassa di allucinazioni; Gemini ha ottenuto il punteggio più alto, con una ripetitività media del 18% su tutti e quattro i modelli, osserva.

Lanyado suggerisce agli sviluppatori di prestare attenzione quando agiscono in base alle raccomandazioni sui pacchetti di un LLM quando non sono completamente sicuri della sua accuratezza. Dice anche che quando gli sviluppatori incontrano un pacchetto open source sconosciuto devono visitare il repository del pacchetto ed esaminare le dimensioni della sua comunità, i suoi record di manutenzione, le sue vulnerabilità note e il suo tasso di coinvolgimento complessivo. Gli sviluppatori dovrebbero inoltre eseguire una scansione approfondita del pacchetto prima di introdurlo nell'ambiente di sviluppo.

spot_img

L'ultima intelligenza

spot_img

Parla con noi

Ciao! Come posso aiutarla?