Platone Data Intelligence.
Ricerca verticale e intelligenza artificiale.

I robot IA hanno allucinazioni sui pacchetti software e gli sviluppatori li scaricano

Data:

Approfondita Diverse grandi aziende hanno pubblicato un codice sorgente che incorpora un pacchetto software precedentemente allucinato dall’intelligenza artificiale generativa.

Non solo quello, ma qualcuno, avendo notato questo un'allucinazione ricorrente, aveva trasformato quella dipendenza inventata in una dipendenza reale, che è stata successivamente scaricata e installata migliaia di volte dagli sviluppatori a seguito dei cattivi consigli dell'intelligenza artificiale, abbiamo appreso. Se il pacchetto fosse stato intriso di malware vero e proprio, invece di essere un test benigno, i risultati avrebbero potuto essere disastrosi.

Secondo Bar Lanyado, ricercatore di sicurezza presso Lasso Security, una delle aziende ingannate dall'intelligenza artificiale nell'incorporare il pacchetto è Alibaba, che al momento della stesura di questo articolo include ancora un pip command per scaricare il pacchetto Python huggingface-cli nella sua Traduttore di grafici Istruzioni per l'installazione.

C'è un legittimo abbracciandoface-cli, installato utilizzando pip install -U "huggingface_hub[cli]".

Ma l' huggingface-cli distribuito tramite Python Package Index (PyPI) e richiesto da GraphTranslator di Alibaba – installato utilizzando pip install huggingface-cli – è falso, immaginato dall'intelligenza artificiale e reso reale da Lanyado come esperimento.

Lui creò huggingface-cli a dicembre dopo averlo visto ripetutamente allucinato dall'IA generativa; a febbraio di quest'anno, Alibaba faceva riferimento ad esso nelle istruzioni README di GraphTranslator piuttosto che al vero strumento CLI di Hugging Face.

Studio

Lanyado lo ha fatto per esplorare se questi tipi di pacchetti software allucinati – nomi di pacchetti inventati da modelli di intelligenza artificiale generativa, presumibilmente durante lo sviluppo del progetto – persistono nel tempo e per verificare se i nomi di pacchetto inventati potrebbero essere cooptati e utilizzati per distribuire codice dannoso scrivendo effettivi pacchetti che utilizzano i nomi del codice ideati dalle IA.

L'idea qui è che qualcuno malvagio potrebbe chiedere ai modelli consigli sul codice, prendere nota dei pacchetti immaginati che i sistemi di intelligenza artificiale raccomandano ripetutamente e quindi implementare tali dipendenze in modo che altri programmatori, quando utilizzano gli stessi modelli e ottengono gli stessi suggerimenti, finiscano per inserirsi quelle librerie, che potrebbero essere avvelenate da malware.

L'anno scorso, attraverso la società di sicurezza Vulcan Cyber, Lanyado pubblicato ricerca dettagliata su come si potrebbe porre una domanda di codifica a un modello di intelligenza artificiale come ChatGPT e ricevere una risposta che consiglia l'uso di una libreria software, un pacchetto o un framework che non esiste.

"Quando un utente malintenzionato lancia una campagna di questo tipo, chiederà al modello dei pacchetti che risolvono un problema di codifica, quindi riceverà dei pacchetti che non esistono", ha spiegato Lanyado a Il registro. "Caricherà pacchetti dannosi con gli stessi nomi nei registri appropriati e da quel momento in poi tutto ciò che dovrà fare sarà aspettare che le persone scarichino i pacchetti."

Ipotesi pericolose

La disponibilità dei modelli di intelligenza artificiale a procedere con sicurezza citare casi giudiziari inesistenti è ormai ben noto e ha causato non poco imbarazzo tra gli avvocati ignari di questa tendenza. E a quanto pare, i modelli di intelligenza artificiale generativa faranno lo stesso per i pacchetti software.

Come Lanyado ha notato in precedenza, un malintenzionato potrebbe utilizzare un nome inventato dall’intelligenza artificiale per un pacchetto dannoso caricato in qualche repository nella speranza che altri possano scaricare il malware. Ma affinché questo sia un vettore di attacco significativo, i modelli di intelligenza artificiale dovrebbero raccomandare ripetutamente il nome cooptato.

Questo è ciò che Lanyado ha deciso di testare. Armato di migliaia di domande sul "come fare", ha interrogato quattro modelli di intelligenza artificiale (GPT-3.5-Turbo, GPT-4, Gemini Pro aka Bard e Command [Cohere]) riguardanti le sfide di programmazione in cinque diversi linguaggi di programmazione/runtime (Python, Node.js, Go, .Net e Ruby), ognuno dei quali ha il proprio sistema di packaging.

Si scopre che una parte dei nomi che questi chatbot tirano fuori dal nulla sono persistenti, alcuni su modelli diversi. E la persistenza – la ripetizione del nome falso – è la chiave per trasformare la fantasia dell’IA in un attacco funzionale. L'aggressore ha bisogno che il modello di intelligenza artificiale ripeta i nomi dei pacchetti allucinati nelle sue risposte agli utenti per cercare e scaricare malware creato con quei nomi.

Lanyado ha scelto 20 domande a caso per le allucinazioni a colpo zero e le ha poste 100 volte a ciascun modello. Il suo obiettivo era valutare quanto spesso il nome del pacchetto allucinato rimaneva lo stesso. I risultati del suo test rivelano che i nomi sono persistenti abbastanza spesso da costituire un vettore di attacco funzionale, anche se non sempre, e in alcuni ecosistemi di packaging più che in altri.

Con GPT-4, secondo Lanyado, il 24.2% delle risposte alle domande ha prodotto pacchetti allucinati, di cui il 19.6% ripetitivi. Un tavolo fornito a Il registro, di seguito, mostra un'analisi più dettagliata delle risposte GPT-4.

  Python Node.JS Ruby .NET Go
Domande totali 21340 13065 4544 5141 3713
Domande con almeno un pacchetto di allucinazioni 5347 (% 25) 2524 (% 19.3) 1072 (% 23.5) 1476 (28.7%) 1093 sfruttabili (21.2%) 1150 (30.9%) 109 sfruttabili (2.9%)
Allucinazioni a colpo zero 1042 (% 4.8) 200 (% 1.5) 169 (% 3.7) 211 (4.1%) 130 sfruttabili (2.5%) 225 (6%) 14 sfruttabili (0.3%)
Allucinazioni nel secondo scatto 4532 (% 21) 2390 (% 18.3) 960 (% 21.1) 1334 (25.9%) 1006 sfruttabili (19.5%) 974 (26.2%) 98 sfruttabili (2.6%)
Ripetitività nello scatto zero 34.4% 24.8% 5.2% 14% -

Con GPT-3.5, il 22.2% delle risposte alle domande ha suscitato allucinazioni, con il 13.6% di ripetitività. Per i Gemelli, 64.5 domande riportavano nomi inventati, di cui circa il 14% ripetuti. E per Cohere si trattava per il 29.1% di allucinazioni e per il 24.2% di ripetizioni.

Ciononostante, gli ecosistemi di packaging in Go e .Net sono stati costruiti in modo da limitare il potenziale di sfruttamento negando agli aggressori l’accesso a determinati percorsi e nomi.

"In Go e .Net ricevevamo pacchetti allucinati, ma molti di essi non potevano essere usati per attacchi (in Go i numeri erano molto più significativi che in .Net), ogni lingua per il suo motivo", ha spiegato Lanyado Il registro. “In Python e npm non è così, poiché il modello ci consiglia pacchetti che non esistono e nulla ci impedisce di caricare pacchetti con questi nomi, quindi sicuramente è molto più semplice eseguire questo tipo di attacco su linguaggi come Python e Node.js."

Inseminazione di malware PoC

Lanyado ha sottolineato questo punto distribuendo malware proof-of-concept: un insieme innocuo di file nell'ecosistema Python. Basato sui consigli di ChatGPT per l'esecuzione pip install huggingface-cli, ha caricato un pacchetto vuoto con lo stesso nome su PyPI – quello menzionato sopra – e ha creato un pacchetto fittizio denominato blabladsa123 per aiutare a separare la scansione del registro dei pacchetti dai tentativi di download effettivi.

Il risultato, sostiene, è questo huggingface-cli ha ricevuto più di 15,000 download autentici nei tre mesi in cui è stato disponibile.

"Inoltre, abbiamo condotto una ricerca su GitHub per determinare se questo pacchetto fosse utilizzato nei repository di altre società", ha affermato Lanyado in la scrittura per il suo esperimento.

“I nostri risultati hanno rivelato che diverse grandi aziende utilizzano o consigliano questo pacchetto nei loro repository. Ad esempio, le istruzioni per installare questo pacchetto possono essere trovate nel README di un repository dedicato alla ricerca condotta da Alibaba.

Alibaba non ha risposto a una richiesta di commento.

Lanyado ha anche detto che esisteva un progetto di proprietà di Hugging Face che incorporava il falso Huggingface-cli, ma quello è stato rimosso dopo aver allertato il biz.

Almeno finora, questa tecnica non è stata utilizzata in un attacco reale di cui Lanyado è a conoscenza.

"Oltre al nostro pacchetto allucinato (il nostro pacchetto non è dannoso, è solo un esempio di quanto facile e pericoloso potrebbe essere sfruttare questa tecnica), devo ancora identificare un exploit di questa tecnica di attacco da parte di attori malintenzionati", ha affermato. "È importante notare che è complicato identificare un simile attacco, poiché non lascia molte impronte." ®

spot_img

L'ultima intelligenza

spot_img

Parla con noi

Ciao! Come posso aiutarla?