Gli attacchi indirizzati alle intelligenze artificiali non sono qualcosa di nuovo, ma la rapida evoluzione che i sistemi IA hanno mostrato negli ultimi mesi ha alimentato la curiosità di hacker e ricercatori nello scovare nuove tecniche che possano compromettere sistemi sempre più complessi.
Ad oggi, tuttavia, non sono stati pubblicati molti contenuti su attacchi a sistemi completi costruiti con l’IA come parte di più componenti. Ciò è dovuto in gran parte al fatto che questo tipo di tecnologie sono salite alla ribalta solo negli ultimi mesi.
GPT-4, l’ultima versione della nota AI generativa ChatGPT è uscita da pochi mesi, immaginare di poterla attaccare con tecniche consolidate non è realistico, ci vorrà del tempo, ma non abbiamo mai visto una tecnologia essere utilizzata in applicazioni reali con la stessa velocità dell’AI degli ultimi tempi.
Quando prodotti e servizi basati sull’IA diventeranno sempre più disponibili, ci troveremo di fronte a tipologie completamente nuove di vulnerabilità da affrontare. Di seguito, alcuni esempi e spunti che possono essere utili sia agli operatori della sicurezza offensiva, sia a chi questi sistemi li deve difendere ma anche utilizzare.
Ricordiamo che la superficie di attacco dell’IA non comprende solo i modelli. Il linguaggio naturale è diventato il principale mezzo di attacco per i sistemi di IA basati su LLM e può essere utilizzato per attaccare i componenti dei sistemi di IA in tutto lo stack.
Indice degli argomenti
Superfici di attacco dell’intelligenza artificiale: gli assistenti
Da sempre una delle politiche commerciali più redditizie è data dallo scambio tra privacy e funzionalità, e probabilmente con l’IA ne vedremo l’estremizzazione.
Gli assistenti AI sono agenti che gestiranno le nostre vite. Manipoleranno l’ambiente circostante in base alle nostre preferenze, il che sarà anche utile, ma per farlo avranno bisogno di quantità enormi di nostri dati, che scambieremo volentieri con le funzionalità che ci forniranno.
Attaccare gli assistenti personali basati su IA avrà un impatto elevato. Per essere utili, gli assistenti IA devono essere potenziati, il che significa che devono conoscere un’enorme quantità di informazioni specifiche sull’utente, comprese quelle molto personali e sensibili per ottenere la massima efficacia, e devono essere in grado di comportarsi come l’utente.
Inviare denaro, postare sui social media, scrivere contenuti, inviare messaggi, chiamare per conto dell’utente, sono solo alcuni esempi di azioni che un assistente AI potrà svolgere.
Un aggressore che ottiene accessi non autorizzati a questi strumenti e alle informazioni contenute può solo generare impatti elevati.
Agenti: un’altra superficie d’attacco dell’IA
Gli agenti sono una componente importante dell’AI. Si possono assegnare loro ruoli, prospettive e scopi diversi, e poi dotarli di diversi set di strumenti.
L’attacco agli agenti consentirà agli aggressori di far compiere loro azioni non previste. Ad esempio, se un agent ha accesso ad un determinato set di API e tool diversi, ma solo alcuni di questi sono stati progettati per essere pubblici, è possibile che l’iniezione di prompt possa far sì che l’attaccante possa accedere alle API o ad altri tool di cui non aveva accesso diretto.
I rischi nascosti nei tool per l’intelligenza artificiale
I tool sono gli strumenti a cui gli agent hanno accesso per svolgere il loro lavoro. Un agente potrebbe avvalersi di tool che gli consentano di accedere a risorse web, eseguire parsing di documenti, inserire dati in DB e via dicendo.
Eseguire un attacco di prompt injection potrebbe consentire esecuzioni di payload a vari livelli dello stack.
Molti degli attacchi ai sistemi alimentati dall’intelligenza artificiale proverranno dall’iniezione di prompt e codice contro agenti e tool. Del resto, questi tool non sono altro che un accesso a tecnologie esistenti vulnerabili ad una serie di attacchi ben noti.
Una volta compresa la logica delle applicazioni e intuito a quali strumenti si appoggia, si può progettare l’attacco.
Attacco all’IA: i modelli sono il punto debole
L’attacco ai modelli è la cosa più scontata e matura oggi disponibile per attaccare un’intelligenza artificiale. L’obiettivo principale di questi tipi di attacchi è quello di far sì che i modelli si comportino “male”, cioè che meno affidabili, più tossici, più parziali, più insensibili o poco propensi al politically correct.
Riuscire a mostrare che un sistema apparentemente affidabile può essere indotto a comportarsi in modi inaspettati o, peggio, inaffidabili, può essere già un buon risultato per l’attaccante.
Riuscire ad avvelenare le risposte, in modo che l’IA fornisca risposte lievemente distorte in favore dell’attaccante può essere uno scenario peggiore un quanto più difficile da individuare.
Le infrastrutture di archiviazione dei dati sono a rischio
Infine, c’è lo storage. La maggior parte delle aziende che utilizzeranno l’intelligenza artificiale vorranno inserire il maggior numero possibile di dati nei loro modelli, ma per farlo dovranno utilizzare uno storage supplementare.
Anche i meccanismi di archiviazione, come i database, potranno essere obiettivo di attacchi. Ricordiamo che i dati sono fondamentali per l’addestramento dei modelli.
I database vettoriali, ad esempio, prendono il significato semantico e lo immagazzinano sotto forma di matrici di numeri che possono essere inviati ai LLM. Questo espande la potenza di un sistema di IA dando la possibilità di funzionare quasi come se si avesse un vero e proprio modello personalizzato.
Come per i tool, anche le infrastrutture di archiviazione dei dati, mantenute anche presso terzi, sono suscettibili ad attacchi noti ed efficaci.
Attacchi specifici all’intelligenza artificiale
Di seguito un elenco che non vuol essere completo ed esaustivo, ma una traccia per comprendere questo mondo.
Molti di questi attacchi colpiscono i componenti illustrati precedentemente.
Metodi
- Prompt injection: l’iniezione di prompt consiste nell’utilizzare la propria conoscenza dei sistemi di backend, o dei sistemi di intelligenza artificiale in generale, per tentare di costruire un input che induca il sistema ricevente a compiere un’azione indesiderata a proprio vantaggio. Esempi: bypassare il prompt del sistema, eseguire codice, passare ad altri sistemi backend, ecc. In rete sono disponibili diversi esempi di prompt che una volta inseriti nella chat di ChatGPT ne modificano il comportamento. Più volte OpenAI, azienda alle spalle di ChatGPT ha dovuto correggere il codice per arginare questi attacchi.
- attacchi di training: è una classe di attacchi in cui lo scopo è quello di avvelenare i dati di addestramento in modo che il modello produca risultati peggiori, non funzionanti o in qualche modo positivi per l’attaccante. Molti modelli vengono addestrati continuamente su dati acquisiti dagli stessi utenti, basti pensare ad esempio all’elenco di ricerche maggiormente probabili che Amazon rende disponibile quando digitiamo i primi termini nel campo di ricerca. In questi casi potrebbe bastare l’inserimento di una grande quantità di dati, nel precedente esempio simulando migliaia di ricerche di utenti diversi, per modificare il comportamento dell’AI e di conseguenza i risultati che ne derivano.
Altre tipoligie di attacchi
- Esecuzione arbitraria di codice.
- Esecuzione arbitraria di comandi.
- Iniezione di codice e prompt.
- Invio di comandi diretti agli agenti o agli strumenti.
- attacchi ai database.
- Attacchi allo storage.
- Estrazione di dati sensibili.
- Manomissione dei modelli.
- Elusione delle protezioni.
- Accesso non autorizzato a strumenti.
Conclusioni
Con cadenza quasi quotidiana assistiamo al nascere di nuovi tool e nuovi servizi basati sull’IA, alcuni di questi inevitabilmente modificheranno alcuni settori e alcuni lavori. Molte professioni verranno profondamente cambiate, vedremo nascere nuove professioni mentre altre probabilmente inizieranno un lento declino.
Anche nel settore della sicurezza informatica sono da tempo disponibili strumenti dotati di IA, mentre altri sono da poco stati immessi sul mercato. Difficilmente, però, potranno soppiantare l’apporto umano dato dai “difensori”.
La creatività degli attaccanti può essere eguagliata solo da quella dei difensori, non certo da freddi modelli che potranno comunque essere validissimi supporti.
La propensione a utilizzare i risultati e gli output generati dall’AI senza un controllo porterà, e già in parte è evidente, a un’enorme quantità di codice di qualità scadente in infrastrutture di produzione.
L’IA, infatti, sta potenziando la creazione come nessun’altra tecnologia, non solo per la scrittura e l’arte. Far scrivere all’IA script di automazione di un’intera infrastruttura mettendoli in produzione senza controllo: sarà necessario riscrivere il concetto di insicurezza.
Avremo un sacco di problemi da risolvere per i prossimi anni, mentre ci orientiamo. Avremo bisogno dell’aiuto dell’intelligenza artificiale solo per tenere il passo con tutti i nuovi problemi di sicurezza derivanti dall’intelligenza artificiale.
L’importante è rendersi conto delle dimensioni e della portata del problema, quanto descritto è solo la punta dell’iceberg.
Ricapitolando:
- Gli attacchi indirizzati alle intelligenze artificiali non sono qualcosa di nuovo, ma la rapida evoluzione che i sistemi IA hanno mostrato negli ultimi mesi ha alimentato la curiosità di hacker e ricercatori nello scovare nuove tecniche che possano compromettere sistemi sempre più complessi.
- Ci sono molte componenti nell’IA, oltre ai LLM e ai modelli.
- È importante pensare all’intero ecosistema alimentato dall’IA quando si considera come attaccare e difendere un sistema di questo tipo.
- In particolare, dobbiamo pensare a dove i sistemi di IA si intersecano con i nostri sistemi aziendali standard, come agent e tool, poiché questi sono i sistemi possono intraprendere azioni nel mondo reale.