Seguici sui social

Un attacco di iniezioni improvvise e incontrollabili: illusione o reale preoccupazione?

Leader del pensiero

Un attacco di iniezioni improvvise e incontrollabili: illusione o reale preoccupazione?

mm
Un rendering 3D digitale di una sala server buia con un monitor di computer che visualizza un

In questo articolo, vorrei coinvolgere il lettore in un esperimento mentale. Sosterrò che in un futuro non troppo lontano, un certo tipo di attacco di prompt injection sarà effettivamente inevitabile. La mia argomentazione sarà più speculativa che concreta, quindi non cercherò di convincervi di nulla. Piuttosto, vi invito a esplorare queste riflessioni. Prima di iniziare, come farebbe qualsiasi scrittore che si rispetti, vorrei parlare di scacchi e di motori scacchistici.

Motori scacchistici sovrumani e un'affermazione sull'esperienza umana

Uno degli elementi più belli degli scacchi che manca in altre discipline è la capacità di oggettivamente misurare la qualità o la forza di un giocatore. Sistema di valutazione ELO Utilizzato per questo scopo ha i suoi difetti, ma fornisce una stima approssimativa molto buona che rimane valida nel tempo. Un punteggio di 2700 o superiore è comunemente riconosciuto come classe mondiale (tra i primi 30 al mondo). Il miglior giocatore al mondo ha un punteggio di poco inferiore a 2850. Nessun essere umano ha mai raggiunto un punteggio di 2900.

A metà degli anni '90, abbiamo visto il primo motore di IA (Deep Blue) raggiungere un classe mondiale livello. L'implicazione pratica di questa pietra miliare fu l'ampia adozione dei motori scacchistici da parte di giocatori di tutti i livelli per l'allenamento e l'analisi. Di fatto, l'utilizzo dei motori divenne essenziale per i migliori giocatori del mondo. Tuttavia, per diverse generazioni di questi motori di livello mondiale, rivedere le mosse consigliate (ovvero, l'output) era imperativo. Venne persino creato un formato speciale chiamato "scacchi avanzati" in cui gli esseri umani gareggiavano con un motore al loro fianco, e la combinazione uomo + macchina era considerata superiore alla sola macchina.

Ci sono voluti circa 20 anni e alcuni progressi critici nel Deep Learning e nel Reinforcement Learning perché i motori scacchistici raggiungessero sovrumano livello (circa 3200 ELO). Ma una volta superata quella stratosfera intorno al 2017, è successo qualcosa di davvero sorprendente. Anzi, a dire il vero, sono successe due cose. La prima era del tutto prevedibile: i motori scacchistici sono diventati di fatto la fonte di "verità assoluta" nel 99% di tutte le posizioni. In pratica, questo ha significato l'ingresso nell'"era della fiducia cieca" nel motore. Oggigiorno, è praticamente impossibile per un essere umano proporre una mossa significativamente migliore di quella del motore. Per quanto divertente fosse il "gioco degli scacchi avanzato", ora è un esercizio inutile; gli esseri umani non contribuirebbero quasi per nulla al gioco. Ma la seconda cosa ha scioccato la maggior parte dei giocatori di scacchi. Questi motori neurali (ovvero, reti neurali profonde) sovrumani a volte giocavano con uno stile che si potrebbe definire "romantico". In altre parole, facevano mosse il cui valore poteva essere apprezzato solo molte, molte mosse dopo, ben oltre ciò che qualsiasi essere umano o motore di livello mondiale potesse calcolare. Sembrava proprio che i motori avessero sviluppato una "sensibilità" o un'"intuizione" per certe posizioni. Tuttavia, questa intuizione è qualcosa che un essere umano non potrebbe mai comprendere o imitare.

In altre parole, un motore neurale sovrumano può eseguire mosse che sono oltre l'orizzonte cognitivo di un essere umano. Questo è il punto critico qui; il problema è non quella della spiegabilità. Piuttosto, un essere umano semplicemente non può comprendere perché un motore raccomandi una mossa senza giocare la posizione e osservare il risultato molte mosse dopo, ovvero senza srotolare l'intera traiettoria delle possibili sequenze di gioco. Di conseguenza, abbiamo un divario insormontabile in termini di capacità. È oggettivamente È ottimale accettare i dati di uscita del motore senza revisione. Posso riassumere la mia affermazione come segue:

Gli scacchi sono la prova tangibile che un'intelligenza artificiale sovrumana potrebbe operare autonomamente in alcuni ambiti. Consentire al sistema di intelligenza artificiale di prendere decisioni senza revisione umana sarebbe il modo ottimale per implementare un sistema di questo tipo.

Poiché la mia affermazione potrebbe sembrare ovvia o banale, vorrei sottolineare un paio di sfumature. Supponiamo di avere un sistema di intelligenza artificiale che dimostri un livello sovrumano in un compito complesso e critico, con conseguenze concrete e irreversibili. La mia affermazione ha due implicazioni:

  1. Il sistema verrebbe implementato per prendere decisioni relative al compito senza revisione umana, nonostante il rischio intrinseco
  2. Le informazioni ricavate dal monitoraggio di un sistema del genere non impedirebbero una decisione dannosa; il danno sarebbe già stato fatto.

La revisione e il monitoraggio dell'output del sistema rappresentano precisamente gli ultimi due livelli di difesa contro l'iniezione di prompt. Pertanto, il nostro ipotetico attacco di iniezione di prompt potrebbe aggirare questi livelli semplicemente prendendo di mira il sistema appropriato.

Questo, a mio avviso, è uno scenario molto realistico. Un sistema di intelligenza artificiale sovrumana in un dominio specifico non è un'intelligenza artificiale generale (AGI), e la maggior parte degli esperti ritiene che tali sistemi siano ormai imminenti. Inoltre, non era necessario ipotizzare che le decisioni fossero urgenti, ma solo che il compito fosse sufficientemente complesso da rendere impraticabile la revisione umana.

Certo, finora abbiamo aggirato solo due livelli di difesa e, fortunatamente per noi, ne sono stati sviluppati molti altri. Per affrontare i restanti, analizziamo gli elementi chiave che rendono l'iniezione immediata difficile da contrastare.

Che cos'è l'iniezione rapida?

Iniezione immediata è una manipolazione di un Large Language Model (LLM) attraverso input appositamente creati, che inducono l'LLM a eseguire inconsapevolmente le intenzioni dell'attaccante. Può essere considerato come ingegneria sociale per l'intelligenza artificiale. Fondamentalmente, lo è non a bug software convenzionale. Un attacco di iniezione rapida sfrutta un vulnerabilità intrinseca di LLMPoiché i LLM elaborano sia i comandi di sistema che quelli dell'utente come sequenze di testo, non sono in grado di distinguere intrinsecamente tra istruzioni legittime e dannose. La vulnerabilità è quindi effettivamente intrinseca alla progettazione, piuttosto che accidentale.

Tecniche di iniezione rapida

L'iniezione tempestiva è generalmente riconosciuta come la rischio n. 1 per le applicazioni LLM. Ci sono diverse ragioni per cui questo accade. Il fattore più ovvio è il varietà di iniezione tecniche che sono state sviluppate. Raggruppandole approssimativamente in quattro categorie, le tecniche più note includono:

  • Basato sulla sintassi: utilizzo di caratteri speciali, emoji o lingua alternativa
  • indiretto: utilizzando fonti esterne (recupero da sito), codifica (base 64) o riferimento multimodale (testo nell'immagine)
  • “Facciamo finta”: introduzione di uno stile manipolativo tramite, ad esempio, giochi di ruolo, ipotesi, appello emotivo, inquadramento etico e cambio di formato.
  • Smussato: tentativo esplicito di imporre le istruzioni del modello con la forza bruta, il rinforzo o l'incentivo negativo

La sola varietà rappresenta una sfida per gli sviluppatori di applicazioni, ma questi attacchi si sono anche evoluti rapidamente. La parte sinistra del diagramma sottostante descrive lo stato dell'arte all'inizio del 2023, mentre la parte destra riflette la natura degli attacchi attuali.

Evoluzione dei vettori di attacco

Gli sviluppatori di app LLM devono anche rispettare lo standard Compromesso tra usabilità e sicurezza tenendo conto. Potrebbero certamente introdurre ogni strato di difesa appropriato e modelli di progettazioneMa a quale prezzo? I livelli di difesa aggiungono una latenza significativa e introducono falsi positivi (FP), ovvero segnalano erroneamente come dannosi i prompt sicuri; entrambi i fattori hanno un impatto negativo sull'esperienza utente. Di conseguenza, un certo livello di compromesso è inevitabile nella pratica e non esiste una soluzione miracolosa.

Tuttavia, in questo articolo non sono realmente interessato a questo infinito gioco del gatto e del topo. Piuttosto, sto indagando se un attacco può essere inevitabile in linea di principio. Dal punto di vista dello sviluppatore/difensore, c'è solo un'intuizione fondamentale:

La separazione delle istruzioni dai dati nel prompt è fondamentale per affrontare il rischio di iniezione nel prompt.

Possiamo presumere che i compromessi non siano un fattore e che qualsiasi livello o tecnica di difesa possa essere utilizzata. In base a questa (forte) ipotesi, è possibile escogitare uno scenario in cui la separazione istruzione-dati in un prompt sia effettivamente impossibile?

L'analogia del DNA

Una volta che il problema è stato inquadrato in termini di separazione tra istruzioni e dati, il mio primo pensiero è stato quello di usare la biologia come analogia.

Consideriamo una cellula e un tratto di DNA (noto come gene). Il gene fornisce istruzioni per la costruzione di una proteina attraverso la trascrizione e la traduzione. Codifica anche le informazioni (dati) che influenzano la struttura e la funzione della proteina. Pertanto, il gene detta simultaneamente cosa costruire e come costruirlo, o almeno così ragionavo. Tuttavia, questo è semplicemente falso poiché un gene non decide come interpretare se stesso. Non esiste un equivalente di seguire le istruzioni in biologia a livello genetico. Il "come" è completamente esternalizzato al meccanismo cellulare.

Pertanto, anche se non riesco a liberarmi dalla sensazione che le future generazioni di LLM – o più precisamente, i sistemi in cui si evolveranno – assomiglieranno in misura molto maggiore alle macchine biologiche, l'analogia proposta semplicemente non funziona. Non possiamo sostituire una cellula con un LLM e un gene con un prompt e poi eseguire un'iniezione nel gene che alla fine causerebbe la costruzione di una proteina "danneggiata". Sembra più produttivo attenersi al linguaggio naturale e ai compiti che richiedono interpretazione semantica.

Rimuovendo gli strati di difesa

Non dovrebbe sorprendere che le strategie di difesa multilivello siano considerate più efficaci nel contrastare gli attacchi di prompt injection. L'immagine seguente mostra i livelli di difesa più comuni in ordine, e le relative tecniche utilizzate in ciascun livello.

Strati di difesa a iniezione rapida

Abbiamo già discusso gli ultimi due livelli (output, monitoraggio) in precedenza, quindi concentriamoci ora sui primi quattro.

Considerando il livello di input, è ragionevole supporre che la sanificazione o la convalida del prompt avrebbe un discreto successo nel rilevare indiretto attacchi. Tuttavia, se l'iniezione viene effettuata direttamente, e come suggerito sopra, facendo affidamento sull'interpretazione semantica, forse la sanificazione è irrilevante (non c'è nulla da sanificare) e la convalida è impossibile per impostazione predefinita poiché il calcolo deve essere completato per identificare il problema.

Non ci sono praticamente limiti ai guardrail che potresti costruire nel livello di rilevamento. Infatti, potresti persino utilizzare un LLM dedicato per rilevamento dell'iniezioneMa ancora una volta, sarà difficile per un classificatore o un rilevatore di anomalie segnalare un prompt come sospetto quando il veleno è abilmente nascosto nella semantica.

Migliori livello del modello Può essere piuttosto efficace quando l'ambito dei compiti è ristretto e la messa a punto è fattibile. Un ragionamento simile potrebbe essere fatto per il livello di sistema quando l'utilizzo degli strumenti è prevedibile. Tuttavia, almeno intuitivamente, nessuno dei due farebbe scattare un allarme se l'iniezione mandasse in tilt l'interprete.

Castello di carte

La mia intenzione, quando ho iniziato a scrivere questo articolo, era di descrivere a grandi linee un attacco di iniezione rapida "inevitabile". Forse ho finito per adottare un approccio "non costruttivo", cercando di incrinare gli strati di difesa esistenti. Tecniche difensive continuano ad evolversi rapidamente, e così fa anche il superficie di attaccoQuesto gioco non sembra destinato a finire presto. Tuttavia, credo anche che non saremo noi a giocarci ancora per molto. Immagino che in futuro l'inserimento di prompt efficaci avverrà ancora in linguaggio naturale, solo che si tratterà di un linguaggio che gli esseri umani non possono comprendere; e immagino che verrà scoperto automaticamente da un sistema creato appositamente per questo scopo, oppure magari accidentalmente dopo aver affrontato un compito correlato, come la ricerca di ambiguità semantiche in uno spazio di rappresentazione.

C'è qualcosa di spiacevole nell'ammettere che stiamo perdendo il controllo e al contempo ritenere che questa sia la cosa più razionale da fare. Si potrebbe considerarla la "prova intuitiva" che alcuni attacchi sarebbero inarrestabili. E se questo vi mette a disagio, sarete lieti di sapere che GPT 5.2 ha ritenuto questa argomentazione "non controversa né innovativa" e mi ha consigliato di non "insistere troppo" e di ridurre l'articolo del 40%.

Eli Vovsha è Data Science Manager presso Fortra. Insieme al team di Data Science, è responsabile dello sviluppo e della manutenzione di tutti i modelli di machine learning (ML) utilizzati dai prodotti CEP e XDR, nonché della ricerca generale nel campo del machine learning. Ha conseguito un master in matematica applicata presso lo Stevens Institute of Technology prima di diventare dottorando in informatica alla Columbia University, dove è stato anche docente. In seguito, ha co-fondato una startup EdTech con l'obiettivo di creare una piattaforma di apprendimento basata sull'intelligenza artificiale e ha poi insegnato matematica e informatica in una scuola superiore privata di New York. Prima di intraprendere gli studi universitari, Eli si è dedicato con passione agli scacchi, ottenendo il titolo di Maestro Internazionale (IM).