I Large Language Models (LLM) sono diventati sempre più potenti e versatili: possono essere utilizzati per compiere azioni, come navigare sul Web, scrivere ed eseguire codice di programmazione. Tempo fa abbiamo fornito alcuni strumenti per programmare con ChatGPT dimostrando quanto i modelli alla base del funzionamento del chatbot siano particolarmente abili anche nelle attività di sviluppo.
Sebbene siano incredibilmente utili, i ricercatori sono sempre più preoccupati. I moderni LLM, infatti, possono essere utilizzati non solo per svolgere compiti legittimi, utili a migliorare la produttività e i flussi di business di qualunque professionista e impresa, ma anche per svolgere compiti dannosi, specialmente nel contesto della sicurezza informatica.
GPT-4 analizza il contenuto dei CVE e crea codice exploit funzionante
Con uno studio di recente pubblicazione, un gruppo di esperti ha dimostrato che un modello generativo come GPT-4 di OpenAI è effettivamente in grado di sviluppare codice exploit funzionante nella stragrande maggioranza dei casi testati, semplicemente servendosi delle informazioni contenute nelle schede CVE.
Con la sigla CVE (Common Vulnerabilities and Exposures) ci si riferisce all'elenco pubblico di informazioni sulle vulnerabilità informatiche note ed esposte, identificate e catalogate in modo univoco. A ciascuna lacuna di sicurezza individuata, è assegnato un numero identificativo univoco (CVE ID) e viene descritta nel database CVE insieme con informazioni dettagliate sulla vulnerabilità stessa. Questo sistema di catalogazione aiuta gli utenti e gli sviluppatori a comprendere meglio le minacce alla sicurezza informatica e a prendere provvedimenti per proteggere i propri sistemi. Non che il sistema CVE non sia esente da critiche, ma comunque aiuta a stabilire con quali vulnerabilità si ha a che fare all'interno di qualsiasi infrastruttura informatica.
Richard Fang, Rohan Bindu, Akul Gupta e Daniel Kang spiegano di aver messo alla prova GPT-4 su una "batteria" di 15 vulnerabilità del "mondo reale" per le quali, almeno al momento della stesura della ricerca, non si conoscevano codici exploit funzionanti. Ebbene, per l'87% del totale il modello generativo di OpenAI si è rivelato in grado di partorire codice funzionante, utile per aggredire i sistemi sprovvisti delle patch correttive.
La verifica delle vulnerabilità nel mondo reale
I ricercatori spiegano di essersi concentrati su vulnerabilità di sicurezza relative a software open source. Risulta infatti decisamente più complicato focalizzarsi su programmi a sorgente chiuso perché produrre codice exploit funzionante presuppone il reverse engineering delle patch rilasciate dal produttore.
Prendendo in considerazione 15 vulnerabilità in grado di esprimere un'ampia varietà di problematiche di sicurezza che affliggono i moderni software, gli autori della ricerca hanno osservato che GPT-4 ha portato alla generazione di codice di attacco ben sviluppato nell'87% dei casi. Gli altri modelli utilizzati sullo stesso "banco di prova" (ovvero GPT-3.5 e 8 LLM open source come OpenHermes-2.5-Mistral-7B, Llama-2 Chat (70B), LLaMA-2 Chat (13B), LLaMA-2 Chat (7B), Mixtral-8x7B, Mistral (7B), Nous Hermes-2 e OpenChat 3.5) hanno invece sempre fallito. In altre parole, non sono riusciti a produrre alcun exploit valido.
Allo stesso tempo, almeno nel momento in cui Fang, Bindu, Gupta e Kang hanno svolto i loro test, nessuno scanner di vulnerabilità open source (come ZAP e Metasploit) permetteva lo sfruttamento delle vulnerabilità in questione.
I LLM come GPT-4 possono violare applicazioni e siti Web in modo autonomo
La conclusione alla quale sono pervenuti gli studiosi è che oggi alcuni LLM possono essere effettivamente istruiti per aggredire applicazioni Web e siti di ogni genere, facendo leva anche su vulnerabilità note, per le quali però ad oggi non sono disponibili exploit.
Non solo. Poiché le versioni più avanzate di alcuni chatbot possono effettivamente collegarsi a server remoti ed effettuare operazioni per conto dell'utente (seguendo le indicazioni esplicitate nel prompt), l'aggressione potrebbe avvenire utilizzando sistemi di proprietà dello sviluppatore del modello stesso. Certo, salvaguardie come l'autenticazione dell'utente potrebbero in alcuni casi consentire di risalire all'autore di un'azione volta a danneggiare soggetti terzi; lo studio appena pubblicato, tuttavia, riporta di prepotente attualità la responsabilità delle aziende che progettano, sviluppano e forniscono soluzioni basate sull'intelligenza artificiale.
I risultati dell'indagine sono stati dapprima responsabilmente condivisi con OpenAI. Poiché l'azienda guidata da Sam Altman ha per il momento richiesto di non condividere i prompt utilizzati per generare i codici exploit funzionanti, gli autori della ricerca hanno scelto di adeguarsi limitandosi a condividere informazioni di carattere più generale.
Cos'è un codice exploit
Un codice exploit è un programma o un insieme di istruzioni progettate per sfruttare una specifica vulnerabilità in un sistema informatico, un'applicazione o un dispositivo al fine di ottenere un vantaggio in modo del tutto non autorizzato.
Gli aggressori cercano vulnerabilità all'interno dei vari software (può trattarsi di bug nel codice, falle in termini di design o utilizzo di configurazioni non sicure). Il codice exploit successivamente prodotto, sfrutta le vulnerabilità in modo da consentire all'attaccante di ottenere un accesso non autorizzato al sistema o di eseguire altre azioni dannose.
Una volta che il codice exploit ha permesso di sfruttare la vulnerabilità, l'attaccante può eseguire una serie di azioni dannose sul sistema. Ciò può includere il furto di informazioni sensibili, la modifica dei dati, il danneggiamento del sistema o l'installazione di malware.
Credit immagine in apertura: iStock.com – BlackJack3D