Il 20 marzo OpenAI ha disattivato per alcune ore il popolare strumento di intelligenza artificiale generativa ChatGPT. Più tardi ammesso che il motivo dell'interruzione era una vulnerabilità della catena di fornitura del software che ha avuto origine nella libreria dati in memoria open source 'Redis'.
Come risultato di questa vulnerabilità, c'era una finestra temporale (tra l'1 e le 10 PST del 20 marzo) in cui gli utenti potevano accedere accidentalmente ai titoli della cronologia chat di altri utenti ed eventualmente esporre informazioni relative ai pagamenti come nomi, indirizzi email, indirizzi di pagamento. , tipo di carta di credito e ultime quattro cifre del numero della carta di pagamento.
Si trattava di un bug relativamente minore che è stato rilevato e corretto rapidamente. Considerando la crescente popolarità di ChatGPT e di altri LLM generativi, quali potrebbero essere le conseguenze di un approccio più mirato attacco alla catena di fornitura del software?
In questo articolo esamineremo cosa è successo esattamente il 20 marzo e come sono state esposte le informazioni dell'utente. Faremo anche un breve viaggio immaginario all'interno di un potenziale attacco più grave e vedremo quali informazioni possono essere esposte e cosa si può fare per aiutare a prevenire tali casi. Concluderemo con alcuni generali sicurezza della catena di fornitura del software suggerimenti che possono essere rilevanti indipendentemente dal software su cui sta lavorando la tua azienda.
Ecco cosa è successo
Come quasi tutte le altre società 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 così come appare in quella dell'azienda raccontare:
- OpenAI utilizza Redis per memorizzare nella cache le informazioni dell'utente nel proprio server in modo da non richiedere il controllo del proprio database per ogni richiesta.
- I cluster Redis vengono utilizzati per distribuire questo carico su più istanze Redis.
- La libreria redis-py viene utilizzata per interfacciarsi con Redis dal server Python dell'azienda, che viene eseguito con Asincio.
- La libreria mantiene un pool condiviso di connessioni tra il server e il cluster e ricicla una connessione da utilizzare per un'altra richiesta una volta eseguita.
- Quando si utilizza Asyncio, le richieste e le risposte con redis-py si comportano come due code: il chiamante invia una richiesta al coda in arrivo, viene visualizzata una risposta dal coda in uscita, e quindi restituisce la connessione al pool.
- Supponiamo che una richiesta venga annullata dopo essere stata inserita nella coda in entrata, ma prima che la risposta esca dalla coda in uscita. In tal caso, vediamo il nostro insetto: la connessione viene danneggiata e la risposta successiva estratta per una richiesta non correlata può ricevere i dati rimasti nella connessione.
- Nella maggior parte dei casi, ciò si traduce in un errore irreversibile del server e l'utente dovrà ritentare la richiesta.
- Ma in alcuni casi, capita che i dati danneggiati corrispondano al tipo di dati previsto dal richiedente, quindi ciò che viene restituito dalla cache appare valido, anche se appartiene a un altro utente.
- All'1:20 ora del Pacifico di lunedì XNUMX marzo, OpenAI ha inavvertitamente introdotto una modifica al proprio server che ha causato un picco nelle cancellazioni delle richieste Redis. Ciò ha creato una probabilità più elevata del solito per ciascuna connessione di restituire dati errati.
Questo bug specifico è apparso solo nel client Asyncio redis-py per Redis Cluster e da allora è stato risolto grazie al lavoro combinato degli ingegneri OpenAI e dei manutentori della libreria Redis.
Ti ricordiamo che questo bug potrebbe inavvertitamente esporre il titolo di ricerca di un altro utente attivo e parte delle informazioni di pagamento di quell'utente. Alcuni utenti ora danno a ChatGPT il controllo totale o parziale sui propri dati personali finanza, dando alla esposizione di queste informazioni risultati potenzialmente catastrofici.
Ecco cosa potrebbe succedere
In questo caso, il bug della catena di fornitura del software ereditato da OpenAi dalla libreria open source Redis era relativamente semplice e facilmente risolvibile. Vorrei chiedere la vostra indulgenza nell'immaginare uno scenario più grave, in cui un attacco mirato alla catena di fornitura del software, simile a quello visitato SolarWinds avviene e rimane nascosto per un periodo di tempo significativo, diciamo mesi.
Poiché gli utenti ora pagano OpenAI per un accesso più diretto al proprio LLM, un simile attacco potrebbe potenzialmente rivelare le informazioni del cliente, compresi i dati di pagamento. Ma queste non sono proprio le informazioni che interessano al nostro ipotetico gruppo di hacker. Attualmente è ChatGPT 1.16 miliardi di utenti. Ha superato 1 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 ora utilizzano l'intelligenza artificiale generativa per qualsiasi cosa, dall'arte ai compiti di storia alle finanze, l'accesso illimitato al database di OpenAI potrebbe rivelare potenziali informazioni di ricatto su innumerevoli utenti. IL Black Mirror l'episodio 'Shut Up and Dance' (Stagione 3, Episodio 3, 2016) dà un risultato fantasioso piuttosto buono a informazioni così esplicite che finiscono nelle mani di persone senza scrupoli. Se stai cercando un parallelo più reale, il Violazione dei dati di Ashley Madison dal 2015 ha avuto alcune gravi conseguenze, alcune delle quali ancora rilevanti anche anni dopo.
Andiamo un po' oltre nel nostro fantasioso hack e diciamo che non solo questo gruppo di hacker senza nome può ottenere l'accesso al database OpenAI, ma può anche influenzare i risultati delle richieste. Riesci a immaginare il potenziale di milioni di persone che ricevono consulenza finanziaria mirata e personalizzata da un gruppo di hacker? O ottenere false informazioni sulla scansione di sicurezza o informazioni sul test del codice per gentile concessione, ancora una volta, del nostro misterioso gruppo di hacker. Il fatto che ChatGPT possa ora accedere a Internet rende ancora più semplice nascondere le informazioni che entrano o escono dai server di OpenAI come nient'altro che dati normali e innocui.
Mi fermerò qui, ma penso che tu possa vedere l'enorme danno potenziale che un attacco alla catena di fornitura del software contro un LLM di successo può causare.
Come proteggere te stesso e la catena di fornitura del software
Una delle prime cose che puoi fare per proteggerti è acuire il tuo senso di sospetto. Non fidarti implicitamente di nessuno strumento, non importa quanto sembri benigno, a meno che tu non possa garantire di avere il pieno controllo su ciò che fa, cosa può potenzialmente fare e a quali risorse ha accesso. L'opzione per eseguire una versione open source di ChatGPT a livello locale può darti un maggiore controllo, sia sulle informazioni sulla formazione che sul livello di accesso che hanno.
Come azienda di software che desidera essere più attenta al potenziale rischi della catena di fornitura del software ereditato attraverso i pacchetti open source che utilizza, ti incoraggio a dare un'occhiata La soluzione di Scribe. Scribe ha sviluppato una piattaforma che consente una maggiore trasparenza nel tuo SDLC completo in termini di tutti i pacchetti e pacchetti ereditati che includi, nonché di eventuali test che desideri vengano eseguiti lungo il percorso. La piattaforma genera un SBO per ciascuna delle tue build e include tutte le informazioni sulla sicurezza raccolte per ciascuna build in un unico posto. Può anche dirti se la tua build è conforme a SLSA fino al livello 3 e a SSDF del NIST. Il nuovo Strumento Valentin ti permette anche di componi le tue politiche e applicali a qualsiasi parte della pipeline di creazione che desideri. Salvare tutte le informazioni di sicurezza in un unico posto, ordinate per build nel tempo, ti consente di osservare come cambia la tua applicazione man mano che matura sia in termini di dipendenze che di sicurezza.
Il futuro dell'IA
L’intelligenza artificiale è qui per restare, qualunque cosa facciamo. Il livello del suo coinvolgimento nella nostra vita quotidiana è oggetto di speculazione, ma basandosi solo sugli ultimi 6 mesi sembra certo che stiamo osservando un potenziale momento di svolta per la tecnologia LLM e i suoi usi. Poiché l'intelligenza artificiale rende la creazione di codice e di app integrali una questione di trovare le istruzioni giuste nel "linguaggio naturale", potremmo trovarci di fronte a un diluvio senza precedenti di applicazioni che non sono state adeguatamente testate né dispongono delle adeguate misure di sicurezza per proteggere sia i loro utenti e le persone o le aziende che li hanno creati.
Entro la fine del mese Scribe ospiterà un webinar affrontando specificamente la questione se puoi o meno fidarti dell'intelligenza artificiale per aiutarti a proteggere la catena di fornitura del software. Se hai domande in base a ciò che hai letto qui, questo sarebbe un buon posto e un buon momento per presentarle.
Poiché La piattaforma Scribe è gratuita da utilizzare per un massimo di 100 build al mese Incoraggio chiunque di voi, un singolo sviluppatore o un'azienda, a provarlo e vedere quante delle vostre esigenze di sicurezza e normative soddisfa la piattaforma. Fino al giorno in cui una vera intelligenza ci ascolterà dietro i nostri schermi, dovremo trovare altri modi per gestire la nostra sicurezza e credo che promuovere la visibilità come precursore della fiducia sia un buon punto di partenza.
Questo contenuto è offerto da Scribe Security, un fornitore leader di soluzioni di sicurezza end-to-end per la catena di fornitura di software, che offre sicurezza all'avanguardia per artefatti di codice e processi di sviluppo e distribuzione del codice attraverso le catene di fornitura di software. Per saperne di più.