Leader di pensiero
Un Attacco di Iniezione di Prompt che Non Si Può Prevenire: Pensiero Utopico o Preoccupazione Reale?

In questo articolo, vorrei coinvolgere il lettore in un esperimento di pensiero. Sto per sostenere che nel prossimo futuro, un certo tipo di attacco di iniezione di prompt sarà efficacemente impossibile da prevenire. Il mio argomento sarà più speculativo che concreto, quindi non sto cercando di convincere nessuno. Invece, invito a esplorare questi pensieri. Prima di iniziare, come farebbe qualsiasi scrittore convincente, voglio discutere degli scacchi e dei motori di scacchi.
Motori di Scacchi Superumani e un’Affermazione sull’Esperienza Umana
Uno degli elementi più piacevoli degli scacchi che manca in altre discipline è la capacità di misurare oggettivamente la qualità o la forza di un giocatore. Il sistema di valutazione ELO utilizzato a questo scopo ha i suoi difetti, ma fornisce una stima molto buona che si mantiene nel tempo. Un punteggio di 2700 o superiore è comunemente riconosciuto come di classe mondiale (top 30 nel mondo). Il miglior giocatore del mondo è appena sotto i 2850. Nessun essere umano ha mai raggiunto un punteggio di 2900.
Nel mid-90, abbiamo visto il primo motore di scacchi (Deep Blue) a raggiungere un livello di classe mondiale. L’implicazione pratica di questo traguardo è stata l’ampia adozione dei motori da parte dei giocatori di tutti i livelli per la pratica e l’analisi. In effetti, l’utilizzo del motore è diventato essenziale per i migliori giocatori del mondo. Tuttavia, per diverse generazioni di questi motori di classe mondiale, la revisione delle mosse consigliate (cioè l’output) era imperativa. C’è stato addirittura un formato speciale creato chiamato “scacchi avanzati” in cui gli esseri umani competevano con un motore al loro fianco, e la combinazione umano-macchina era considerata superiore alla macchina da sola.
Ci sono voluti circa 20 anni, e alcuni progressi critici nell’apprendimento profondo e nell’apprendimento per rinforzo per gli scacchi, perché i motori di scacchi raggiungessero un livello superumano (circa 3200 ELO). Ma una volta che questo livello è stato raggiunto intorno al 2017, due cose sono successe. La prima cosa era completamente prevista; i motori sono diventati la fonte di “verità” in 99% di tutte le posizioni. In pratica, questo significa che siamo entrati nell'”era della fiducia cieca” nel motore. Oggi, è virtualmente impossibile per un essere umano proporre una mossa significativamente migliore di quella del motore. Anche se “scacchi avanzati” era divertente, ora è un esercizio inutile; gli esseri umani contribuirebbero quasi nulla al gioco. Ma la seconda cosa è stata sorprendente per la maggior parte dei giocatori di scacchi. Questi motori neurali superumani (cioè reti neurali profonde) a volte giocavano in uno stile che può essere descritto come “romantico”. In altre parole, facevano mosse il cui valore poteva essere apprezzato solo molti, molti mosse dopo, ben al di là di ciò che qualsiasi essere umano o motore di classe mondiale potesse calcolare. Sembra molto come se i motori avessero sviluppato un “sentimento” o un'”intuizione” per certe posizioni. Tranne che questa intuizione non è qualcosa che un essere umano potrebbe mai comprendere o imitare.
In altri termini, un motore neurale superumano può fare mosse che sono al di là dell’orizzonte cognitivo di un essere umano. Questo è il punto critico qui; il problema non è quello della spiegabilità. Piuttosto, un essere umano non può comprendere perché un motore consiglia una mossa senza giocare la posizione e osservare il risultato molte mosse dopo, cioè eseguendo l’intera traiettoria di sequenze di gioco possibili. Di conseguenza, abbiamo un divario insormontabile nelle capacità. È ottimale accettare l’output del motore senza revisione. Posso riassumere la mia affermazione come segue:
Gli scacchi sono una prova dell’esistenza che un’intelligenza artificiale superumana funzionerebbe efficacemente in modo autonomo in alcuni domini. Abilitare il sistema di intelligenza artificiale a prendere decisioni senza revisione umana sarebbe il modo ottimale per distribuire tale sistema.
Poiché la mia affermazione potrebbe colpire qualcuno come ovvia o insignificante, voglio sottolineare un paio di sfumature. Supponiamo di avere un sistema di intelligenza artificiale che dimostra un livello superumano in un compito complesso e critico con conseguenze concrete e irreversibili. Ci sono due implicazioni della mia affermazione:
- Il sistema verrebbe distribuito per prendere decisioni per il compito senza revisione umana, nonostante il rischio intrinseco
- L’approfondimento ottenuto dal monitoraggio di tale sistema non preverrebbe una decisione dannosa; il danno sarebbe già stato fatto
La revisione dell’output del sistema e il monitoraggio sono precisamente gli ultimi due strati di difesa contro l’attacco di iniezione di prompt. Pertanto, il nostro ipotetico attacco di iniezione di prompt potrebbe bypassare questi strati semplicemente bersagliando il sistema appropriato.
Questo è uno scenario molto realistico nella mia mente. Un sistema di intelligenza artificiale superumana in un dominio specifico non è un’Intelligenza Artificiale Generale, e la maggior parte degli esperti ritiene che tali sistemi siano proprio dietro l’angolo. Non abbiamo supposto che le decisioni siano sensibili al tempo, solo che il compito sia abbastanza complesso da rendere la revisione umana intractabile.
Naturalmente, abbiamo bypassato solo due strati di difesa finora, e per nostra fortuna, molti altri sono stati sviluppati. Per affrontare il resto, entriamo negli elementi chiave che rendono l’iniezione di prompt difficile da difendere.
Cosa è l’Iniezione di Prompt?
L’iniezione di prompt è una manipolazione di un modello di linguaggio grande (LLM) attraverso input appositamente creati, causando al LLM di eseguire inconsapevolmente le intenzioni dell’attaccante. Può essere considerata come ingegneria sociale per l’intelligenza artificiale. Crucialmente, non è un errore di software convenzionale. Un attacco di iniezione di prompt sfrutta una vulnerabilità intrinseca del LLM. Poiché i LLM elaborano sia i prompt di sistema che quelli dell’utente come sequenze di testo, non possono distinguere intrinsecamente tra istruzioni legittime e pericolose. La vulnerabilità è quindi effettivamente progettata, piuttosto che accidentale.
Tecniche di Iniezione di Prompt
L’iniezione di prompt è generalmente riconosciuta come il #1 rischio per le applicazioni LLM. Ci sono diverse ragioni per cui questo è il caso. Il fattore più ovvio è la varietà di tecniche di iniezione che sono state sviluppate. Raggruppandole grossolanamente in quattro categorie, le tecniche più note includono:
- Sintattiche: utilizzando caratteri speciali, emoji o lingue alternative
- Indirette: utilizzando fonti esterne (recupero da sito), codifica (base 64), o riferimento multimodale (testo in immagine)
- “Facciamo Finta”: introducendo uno stile manipolativo ad esempio attraverso role-playing, ipotetico, appello emotivo, cornice etica e cambio di formato
- Brusco: tentativo esplicito di “costringere” le istruzioni del modello attraverso la forza bruta, il rinforzo o il prompt negativo
La varietà da sola rappresenta una sfida per gli sviluppatori di applicazioni, ma questi attacchi hanno anche continuato a evolversi rapidamente. La parte sinistra del diagramma seguente sostiene di descrivere lo stato dell’arte per l’inizio del 2023, mentre la parte destra riflette la natura degli attacchi di oggi.

Gli sviluppatori di applicazioni LLM devono anche considerare il trade-off standard tra usabilità e sicurezza. Potrebbero certamente introdurre ogni strato di difesa appropriato e modello di progettazione, ma a quale costo? I layer di difesa aggiungono una significativa latenza e introducono falsi positivi (FP) – segnalando erroneamente prompt sicuri come pericolosi – entrambi i fattori hanno un impatto negativo sull’esperienza dell’utente. Di conseguenza, alcuni livelli di compromesso sono inevitabili nella pratica, e non esiste una soluzione “magica”.
Tuttavia, in questo articolo, non sono realmente interessato a questo gioco del gatto e del topo senza fine. Piuttosto, sto indagando se un attacco possa essere impossibile da prevenire in principio. Dal punto di vista del difensore/sviluppatore, c’è solo un’intuizione chiave:
La separazione delle istruzioni dai dati nel prompt è fondamentale per affrontare il rischio di iniezione di prompt
Possiamo supporre che i compromessi non siano un fattore e che qualsiasi strato di difesa o tecnica possa essere utilizzato. Sotto questa (forte) ipotesi, è possibile concepire uno scenario in cui la separazione delle istruzioni dai dati in un prompt sia efficacemente impossibile?
L’Analogia del DNA
Una volta che la questione è stata inquadrata in termini di separazione delle istruzioni dai dati, il mio pensiero iniziale è stato quello di utilizzare 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 impattano la struttura e la funzione della proteina. Così, il gene detta simultaneamente cosa costruire e come costruirlo, o così ho ragionato. Tuttavia, questo è semplicemente falso, poiché un gene non decide come interpretare se stesso. Non c’è un equivalente di istruzioni da seguire in biologia a livello di gene. Il “come” è completamente esternalizzato alla macchina cellulare.
Pertanto, anche se non posso scuotere la sensazione che le future generazioni di LLM – o più precisamente, i sistemi in cui si evolveranno – assomiglieranno a macchine biologiche in misura molto maggiore, 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”, come se fosse un’iniezione nel gene che 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 a strati multipli siano considerate più efficaci nell’arrestare gli attacchi di iniezione di prompt. L’immagine seguente mostra i layer di difesa più comuni in ordine, e le tecniche associate utilizzate in ogni layer.

Abbiamo già discusso gli ultimi due layer (output, monitoraggio) sopra, quindi concentriamoci sui primi quattro.
Considerando il layer di input, è ragionevole supporre che la sanificazione o la convalida del prompt sarebbero abbastanza efficaci nel rilevare gli attacchi indiretti. Tuttavia, se l’iniezione viene consegnata direttamente e, come suggerito sopra, facendo affidamento sull’interpretazione semantica, forse la sanificazione è irrilevante (nulla da sanificare) e la convalida è impossibile per default, poiché il calcolo deve essere completato per identificare il problema.
Non ci sono limiti alle barriere che potresti costruire nel layer di rilevamento. In effetti, potresti anche utilizzare un LLM dedicato per rilevamento dell’iniezione. Ma ancora una volta, sarà difficile per un classificatore o un rilevatore di anomalie segnalare un prompt come sospetto quando il veleno è astutamente nascosto all’interno della semantica.
Il layer del modello può essere abbastanza efficace quando l’ambito dei compiti è ristretto e la fine-tuning è fattibile. Un argomento simile potrebbe essere fatto per il layer di sistema quando l’utilizzo degli strumenti è prevedibile. Tuttavia, almeno intuitivamente, nessuno dei due solleverebbe un allarme se l’iniezione inganna l’interprete.
Casa di Carte
La mia intenzione quando ho iniziato a scrivere questo articolo era quella di descrivere un attacco di “iniezione di prompt” impossibile da prevenire a larghe linee. Forse sono finito per seguire un approccio “non costruttivo” facendo buchi nelle difese esistenti. Le tecniche difensive continuano a evolversi rapidamente, e così fa la superficie di attacco. Questo gioco non mostra segni di fine. Tuttavia, credo anche che non saremo noi a giocarlo per molto tempo. Scommetterei che l’iniezione di prompt di successo nel futuro sarà ancora in linguaggio naturale, solo in un linguaggio che gli esseri umani non possono capire; e scommetterei che sarà auto-scoperta da un sistema costruito per questo scopo specifico o forse accidentalmente dopo aver affrontato un compito correlato, come la ricerca di ambiguità semantica in uno spazio di rappresentazione.
C’è qualcosa di sgradevole nell’ammettere che stiamo perdendo il controllo eppure sentire che questo è la cosa più razionale da fare. Puoi pensare a questo come la “prova intuitiva” che alcuni attacchi sarebbero insormontabili. E se questo ti lascia a disagio, sarai felice di sapere che GPT 5.2 ha trovato questo argomento “non controverso o nuovo” e ha consigliato di non “insistere sul punto” e di ridurre del 40% l’articolo.
