Cosa succede quando un’azienda di intelligenza artificiale cade vittima di una vulnerabilità nella catena di approvvigionamento software
Quando un'azienda di intelligenza artificiale è colpita da una vulnerabilità nella catena di approvvigionamento software
Il 20 marzo 2023, OpenAI ha disattivato per alcune ore il popolare strumento di intelligenza artificiale generativa ChatGPT. In seguito ha ammesso che la causa dell’interruzione era una vulnerabilità nella catena di approvvigionamento del software che aveva origine nella libreria di memorizzazione dei dati in memoria ‘Redis’ open-source.
A causa di questa vulnerabilità, è esistito un intervallo di tempo (tra l’1 e le 10 del mattino, ora del Pacifico, il 20 marzo) in cui gli utenti potevano accidentalmente accedere ai titoli della cronologia delle chat di altri utenti e potenzialmente esporre informazioni relative ai pagamenti come nomi, indirizzi email, indirizzi di pagamento, tipo di carta di credito e gli ultimi quattro numeri della carta di pagamento.
Si trattava di un bug relativamente minore che è stato individuato e corretto rapidamente. Considerando la crescente popolarità di ChatGPT e di altre LLM generative, quali potrebbero essere le conseguenze di un attacco più mirato alla catena di approvvigionamento del software?
In questo articolo, esamineremo cosa è accaduto esattamente il 20 marzo e come sono state esposte le informazioni degli utenti. Faremo anche un breve viaggio immaginario in un potenziale attacco più grave e vedremo quali informazioni possono essere esposte e cosa può essere fatto per aiutare a prevenire tali casi. Concluderemo con alcune suggerimenti generali sulla sicurezza della catena di approvvigionamento del software che possono essere rilevanti indipendentemente dal software su cui la vostra azienda sta lavorando.
- OpenAI, Microsoft e Google formano un organismo per aiutare a regolamentare lo sviluppo dell’IA
- Padroneggiare l’arte dell’IA una guida concisa al percorso intermedio e all’ingegneria delle istruzioni
- I migliori generatori di giochi AI nel 2023
Ecco cosa è successo
Come quasi tutte le altre aziende di software, il codice di OpenAI dipende in gran parte da librerie e codice open-source. In questo caso, il bug è stato scoperto nella libreria open-source del client Redis, redis-py. Ecco la descrizione del bug come appare nel resoconto dell’azienda:
- OpenAI utilizza Redis per memorizzare nella cache le informazioni degli utenti sul proprio server, in modo da non dover controllare il database per ogni richiesta.
- I cluster Redis vengono utilizzati per distribuire il carico su più istanze Redis.
- La libreria redis-py viene utilizzata per interfacciarsi con Redis dal server Python dell’azienda, che funziona con Asyncio.
- La libreria mantiene un pool condiviso di connessioni tra il server e il cluster e ricicla una connessione per un’altra richiesta una volta completata.
- Quando si utilizza Asyncio, le richieste e le risposte con redis-py si comportano come due code: il chiamante inserisce una richiesta nella coda in ingresso, estrae una risposta dalla coda in uscita e quindi restituisce la connessione al pool.
- Supponiamo che una richiesta venga annullata dopo essere stata inserita nella coda in ingresso, ma prima che la risposta venga estratta dalla coda in uscita. In quel caso, si verifica il nostro bug: la connessione diventa corrotta e la prossima risposta che viene estratta per una richiesta non correlata può ricevere dati lasciati nella connessione.
- Nella maggior parte dei casi, ciò comporta un errore del server irreversibile e l’utente dovrà riprovare la propria richiesta.
- Ma in alcuni casi, i dati corrotti corrispondono al tipo di dati che il richiedente si aspettava, quindi ciò che viene restituito dalla cache sembra valido, anche se appartiene a un altro utente.
- All’1 del mattino, ora del Pacifico, lunedì 20 marzo, OpenAI ha introdotto involontariamente una modifica al proprio server che ha causato un aumento delle annullazioni delle richieste a Redis. Ciò ha creato una probabilità più alta del solito che ogni connessione restituisse dati errati.
Questo bug specifico è apparso solo nel client redis-py Asyncio per Redis Cluster ed è stato successivamente corretto grazie al lavoro congiunto degli ingegneri di OpenAI e degli sviluppatori della libreria Redis.
Come promemoria, questo bug poteva accidentalmente esporre il titolo di ricerca di un altro utente e parte delle informazioni di pagamento di quell’utente. Alcuni utenti stanno ora concedendo a ChatGPT il controllo completo o parziale delle proprie finanze personali, il che potrebbe avere conseguenze catastrofiche in caso di esposizione di tali informazioni.
Ecco cosa potrebbe accadere
In questo caso, il bug della catena di approvvigionamento del software ereditato da OpenAI dalla libreria open-source Redis era relativamente semplice e facilmente correggibile. Vi chiedo di immaginare un’ipotesi più grave, in cui si verifichi un attacco mirato alla catena di approvvigionamento del software, simile a quello subito da SolarWinds, e che rimanga indiscoperto per un periodo significativo di tempo, diciamo mesi.
Dato che gli utenti stanno ora pagando OpenAI per un accesso più diretto alle loro LLM, un tale attacco potrebbe potenzialmente rivelare le informazioni del cliente, compresi i dati di pagamento. Ma in realtà, queste non sono le informazioni che il nostro gruppo di hacker ipotetico è interessato a ottenere. ChatGPT attualmente conta 1,16 miliardi di utenti. Ha superato il miliardo di utenti nel marzo 2023. Questi numeri rappresentano un aumento di quasi il 55% da febbraio 2023 a marzo 2023. Con numerose persone che utilizzano ora l’intelligenza artificiale generativa per qualsiasi cosa, dall’arte ai compiti di storia fino alle finanze, l’accesso illimitato al database di OpenAI potrebbe rivelare informazioni potenzialmente compromettenti su un numero incalcolabile di utenti. L’episodio ‘Shut Up and Dance’ della serie Black Mirror (stagione 3, episodio 3, 2016) offre un’immagine piuttosto realistica delle conseguenze che tali informazioni esplicite possono avere nelle mani di persone senza scrupoli. Se cercate un parallelo più vicino alla realtà, la violazione dei dati di Ashley Madison del 2015 ha avuto conseguenze gravi, alcune delle quali ancora rilevanti anche anni dopo.
Andiamo un po’ oltre nella nostra immaginazione e diciamo che non solo questo gruppo di hacker senza nome può accedere al database di OpenAI, ma può anche influenzare i risultati delle richieste. Riesci a immaginare il potenziale di milioni di persone che ricevono consigli finanziari mirati realizzati su misura da un gruppo di hacker? O ricevere informazioni false sugli scanner di sicurezza o informazioni sui test del codice, ancora una volta, del nostro misterioso gruppo di hacker? Il fatto che ChatGPT possa ora accedere a Internet rende ancora più facile nascondere le informazioni in entrata o in uscita dai server di OpenAI come semplici dati innocui.
Mi fermo qui, ma penso che tu possa vedere l’enorme potenziale danno che un attacco alla catena di approvvigionamento del software contro un LLM di successo può causare.
Come Proteggere Te Stesso e la Tua Catena di Approvvigionamento del Software
Una delle prime cose che puoi fare per proteggerti è affinare il tuo senso di sospetto. Non fidarti implicitamente di qualsiasi strumento, per quanto benigno possa sembrare, a meno che tu non possa garantire di avere il pieno controllo su ciò che fa, su ciò che può potenzialmente fare e su quali risorse ha accesso. L’opzione di eseguire una versione open-source di ChatGPT in locale può darti un maggiore controllo sia sulle informazioni di addestramento che sul livello di accesso che ha.
Avere maggiore trasparenza su ciò che sta accadendo nella tua catena di approvvigionamento del software e costruire un flusso di lavoro è anche una buona idea. Puoi iniziare con un SBOM per ciascuna delle tue build, ma questo è solo un passo e ci sono molte altre cose che puoi fare per aumentare la trasparenza su ciò che sta succedendo nei tuoi server, cloud o rete.
Il Futuro dell’IA
L’IA è qui per restare, indipendentemente da ciò che facciamo. Il livello del suo coinvolgimento nella nostra vita quotidiana è oggetto di speculazione, ma basandoci solo sugli ultimi sei mesi, sembra certo che stiamo guardando a un potenziale momento di svolta per la tecnologia LLM e i suoi utilizzi. Con l’IA che rende la creazione di codice e app intere una questione di trovare le giuste indicazioni nel “linguaggio naturale”, potremmo trovarci di fronte a un’enorme quantità di applicazioni che non sono state testate adeguatamente né hanno le adeguate salvaguardie di sicurezza per proteggere sia i loro utenti che le persone o le aziende che le hanno create.
Fino al giorno in cui un’intelligenza vera ci ascolterà dietro i nostri schermi, dobbiamo trovare altri modi per affrontare la nostra sicurezza. Credo che promuovere la visibilità come precursore della fiducia sia un ottimo punto di partenza.