Un team di ricerca sulla sicurezza ha trovato un modo per prendere il controllo di qualsiasi account ChatGPT semplicemente inducendo la vittima ad aprire un collegamento di conversazione condiviso, secondo una divulgazione tecnica pubblicata da Parametri Labs il 28 ottobre. La società ha riferito che OpenAI ha risolto la vulnerabilità il 26 ottobre e ha classificato il rapporto come P1, il suo livello di gravità più alto.
La scoperta è una rara acquisizione di account end-to-end contro una piattaforma di intelligenza artificiale tradizionale, ed è arrivata mentre gli ultimi sviluppi dell'intelligenza artificiale continuano a mostrare quanto materiale sensibile le persone ora conservano all'interno delle applicazioni di chat. Parametri Labs ha affermato che l'attacco non ha richiesto l'installazione di app, nessuno strumento di sviluppo e nessuna interazione oltre all'apertura dell'URL ChatGPT condiviso dall'aggressore.
Come funzionava la catena di attacco
La catena ha abusato di due normali funzionalità di ChatGPT che sembravano innocue prese singolarmente: un grafico interattivo e la sandbox di anteprima HTML. La funzione Anteprima di ChatGPT esegue l'HTML generato in un frame limitato su un indirizzo web separato, il che dovrebbe impedirgli di toccare la pagina chatgpt.com con cui hai effettuato l'accesso attorno ad esso.
La svolta è arrivata dal grafico, che ha caricato una libreria matematica chiamata MathLive. Quella libreria ha installato un ascoltatore di messaggi nella pagina principale ChatGPT per la sua tastiera su schermo, ma Parametri Labs ha scoperto che l'ascoltatore accettava messaggi da qualsiasi origine senza verificare il mittente. Un tipo di messaggio accettato potrebbe sostituire il layout della tastiera virtuale con HTML controllato dall'aggressore, che MathLive ha poi inserito nella pagina ChatGPT reale tramite innerHTML.
Gli script inseriti in questo modo normalmente non vengono eseguiti, quindi i ricercatori hanno racchiuso il loro carico utile in un iframe utilizzando l'attributo srcdoc. Poiché la pagina principale di ChatGPT ha creato quel frame senza sandbox, il browser ha trattato il codice al suo interno come contenuto autentico di chatgpt.com con accesso alla pagina principale.
Sfuggire alla politica di sicurezza dei contenuti
La politica di sicurezza dei contenuti di ChatGPT bloccava ancora gli script in linea, ma Parametri Labs ha riscontrato una lacuna: la politica consentiva gli script da YouTube. I ricercatori hanno scoperto che l'endpoint oEmbed di YouTube rifletteva un parametro di callback JSONP non valido nella sua risposta di errore prima della convalida, consentendo loro di anteporre JavaScript eseguibile a una risposta che il browser avrebbe caricato volentieri come script.
A quel punto il team aveva un JavaScript arbitrario in esecuzione con l'identità di chatgpt.com all'interno della sessione di accesso della vittima. Parametri Labs è stato esplicito su cosa ciò significasse in pratica: il payload non si limitava a modificare la pagina o visualizzare un avviso: poteva chiamare direttamente le API autenticate di ChatGPT come vittima. Durante i test, il payload potrebbe enumerare l'elenco delle conversazioni della vittima, recuperare i contenuti di conversazioni private che non sono mai state condivise con l'aggressore e inviare tali dati a un server esterno. Il browser identificava ogni azione come proveniente da chatgpt.com stesso, senza dare alla vittima alcun segnale visibile che qualcosa non andasse.
Un collegamento era sufficiente
Ciò che ha trasformato un bug di ricerca in un’arma pratica è stata la consegna. I ricercatori hanno inserito il grafico e un blocco HTML visualizzabile in anteprima in un'unica normale conversazione, l'hanno pubblicata con la normale funzionalità di condivisione di ChatGPT e hanno inviato il collegamento /share/ risultante tramite gli stessi percorsi che chiunque utilizzerebbe: e-mail, chat, un ticket di supporto o un post sui social.
Nella riproduzione più stabile, la vittima doveva fare clic una volta sul pulsante Anteprima di ChatGPT dopo aver aperto il collegamento. Una versione successiva contrassegnava il blocco HTML come visualizzabile in anteprima, quindi ChatGPT lo apriva automaticamente e l'unica azione richiesta dalla vittima era visitare l'URL. Il team ha riprodotto quel percorso completamente automatico tre volte in un account separato, anche dopo un aggiornamento intensivo, con il payload che si attivava circa 4,5 secondi dopo il caricamento della pagina.
Poiché il grafico e l'anteprima venivano caricati in modo indipendente, il payload poteva occasionalmente attivarsi prima che MathLive fosse pronto. La versione finale ha riprovato a inviare i messaggi per un periodo limitato per gestire la condizione di competizione.
Divulgazione e correzione
Parametri Labs hanno segnalato il problema a OpenAI, che ha inviato una correzione il 26 ottobre e ha valutato il rapporto P1. La divulgazione arriva nel contesto di una più ampia ricerca sulla sicurezza della piattaforma AI; all'inizio di questa settimana The Register ha segnalato bug in cinque strumenti di sviluppo AI, alcuni ancora senza patch al momento della pubblicazione.
La lezione generalizza oltre una libreria. Le moderne applicazioni di chat compongono componenti di terze parti, anteprime sandbox e canali di messaggi permissivi in un'unica pagina autenticata e qualsiasi destinatario postMessage non verificato può diventare il ponte tra di loro. Per gli utenti, la guida pratica è invariata rispetto alla classica sicurezza web: tratta i collegamenti alle conversazioni AI condivise come tratti qualsiasi altro collegamento non richiesto, perché la piattaforma non può più promettere che aprirne uno sia innocuo.
Da parte sua, la classificazione P1 di OpenAI e la rapidità di risposta suggeriscono che l'azienda tratta gli attacchi alle sessioni basate su browser su chatgpt.com come minacce di primo livello. L'incidente è anche un promemoria di quanto valore si concentra in questi account ora che gli utenti archiviano documenti di lavoro, domande mediche e progetti privati nella cronologia della chat: esattamente il contenuto che, come dimostrato da Parametri Labs, un utente malintenzionato avrebbe potuto estrarre.
---
Stai al passo con l'intelligenza artificialeRicevi le ultime notizie, analisi e scoperte sull'intelligenza artificiale, tutto in un unico posto.
Leggi altre notizie sull'AI →