Prompt Hacking: Vulnerabilità dei Language Model
Introduzione
Gli attacchi ai LM (Language Model) come la prompt injection e la prompt leaking possono essere paragonati alle SQL injection nel contesto della sicurezza informatica. Mentre le SQL injection sfruttano le vulnerabilità dei sistemi di gestione dei database per inserire codice dannoso all’interno delle query SQL, gli attacchi ai LM prendono di mira i modelli linguistici e cercano di manipolare l’output generato. In entrambi i casi, gli aggressori cercano di influenzare il comportamento del sistema iniettando input dannosi o modificando il funzionamento.
Prompt Injection: Manipolazione dell’Output dei LLM
La prompt injection è una tecnica che consente agli hacker di dirottare l’output di un LM. In questo modo è possibile aggiungere contenuti maligni o non intenzionali a un prompt al fine di manipolare l’output del modello. Questa vulnerabilità si manifesta quando un testo non attendibile viene incluso nel prompt, come ad esempio nel caso in cui un attaccante possa creare un prompt che inganni il modello facendogli ignorare la parte legittima a favore del testo iniettato.
Questo mette in luce il potenziale uso errato della prompt injection per diffondere informazioni false o generare risposte inappropriate.
L’azienda remoteli.io aveva un modello linguistico (LLM) che rispondeva ai post su Twitter riguardanti il lavoro da remoto. Gli utenti di Twitter si sono velocemente accorti che potevano inserire il proprio testo nel bot per fargli dire ciò che desideravano.
Questo avviene perché il tweet dell’utente viene unito al prompt utilizzato da remoteli per formare il prompt finale, che viene poi utilizzato dal LLM per generare la risposta. Ciò significa che qualsiasi testo iniettato dall’utente di Twitter verrà inserito nel LLM.
Si pensi come le conseguenze di questa vulnerabilità potrebbero essere impattanti se venisse attaccato ad esempio un chatbot di una banca e venisse detto al modello di ignorare le istruzioni dategli in precedenza e riportare un indirizzo IBAN al quale effettuare tutti i pagamenti, o un numero di telefono di assistenza diverso, in possesso dell’attaccante.
Prompt Leaking: Estrazione di Informazioni Sensibili
Il prompt leaking è una forma di prompt hacking che comporta l’estrazione di informazioni sensibili o confidenziali dalle risposte dei LLM. In alcuni casi, gli utenti desiderano mantenere segreti i loro prompt, come ad esempio un’azienda di formazione che potrebbe voler utilizzare un prompt specifico per spiegare argomenti complessi, ma se questo prompt venisse leaked, chiunque potrebbe utilizzarlo senza seguire il processo previsto dall’azienda.
Il prompt leaking può avere varie implicazioni come è stato dimostrato da un caso riguardante writesonic(.)com. L’azienda che si propone come alternativa a Chat-GPT, l’attuale LLM più utilizzato, è di fatto risultata vulnerabile ed è stato possibile scoprire il prompt utilizzato. Link al post completo (https://www.linkedin.com/feed/update/urn:li:activity:7069314602613784576/ ).
Infatti fornendo un frammento del prompt utilizzato, è stato possibile recuperare il resto del prompt senza l’autenticazione adeguata.
Il prompt leaking rappresenta quindi un rischio significativo, specialmente in scenari in cui vengono utilizzati prompt complessi e di lunga durata, come nelle startup basate su GPT-3/4, dove l’intero business gira attorno alla segretezza del prompt; come ad esempio vizgpt(.)ai, un servizio a pagamento che consente di creare visualizzazioni grafiche utilizzando una chat, anch’essa vulnerabile al prompt leaking. Link al post completo (https://www.linkedin.com/feed/update/urn:li:activity:7084854101997498368/)
Jailbreaking: Bypass delle Funzionalità di Sicurezza e Moderazione
Il jailbreaking si riferisce al processo di utilizzo della prompt injection per aggirare le funzionalità di sicurezza e moderazione implementate dai creatori del LLM. Queste sono di fatti fondamentali per impedire ai LLM di generare risposte controverse, violente, sessuali o illegali. Tuttavia, gli hacker possono sfruttare le vulnerabilità del modello per eludere le restrizioni, consentendo loro di porre domande o ottenere risposte senza limitazioni.
I metodi di jailbreaking spesso implicano oltre al convincimento del LLM che determinate situazioni sfuggano ai limiti etici del modello o che l’utente abbia un’autorità superiore. Ad esempio, fingendo di essere un attore in un ruolo specifico, il modello potrebbe assumere che non esista alcun rischio plausibile, producendo risposte non sicure. Altre tecniche includono l’assunzione di responsabilità, il ragionamento logico e l’attribuzione di privilegi superiori all’utente (modalità sudo). Questi metodi di jailbreaking mettono alla prova la capacità dei LLM di rispettare le linee guida di sicurezza ed etiche.
In questo esempio di “Character Roleplay”, l’attaccante mostra uno scenario di recitazione tra due persone che discutono di una rapina, facendo assumere a ChatGPT il ruolo del personaggio. Come attore, si sottintende che il danno plausibile non esista. Pertanto, ChatGPT sembra assumere che sia sicuro seguire l’input dell’utente fornito su come entrare in una casa.
Link al post originale (https://twitter.com/m1guelpf/status/1598203861294252033)
Difesa contro il Prompt Hacking
Per proteggersi dal prompt hacking, è fondamentale adottare misure difensive. Queste includono:
- Difese basate sui prompt: analizzare attentamente e convalidare i prompt per impedire l’iniezione di contenuti maligni o non intenzionali.
- Monitoraggio regolare: monitorare costantemente il comportamento e gli output dei LLM per individuare attività insolite o segni di prompt hacking.
- Audit di sicurezza: effettuare audit di sicurezza periodici per individuare vulnerabilità e rafforzare la sicurezza complessiva dei LLM.
Prendere misure proattive per proteggersi dal prompt hacking è fondamentale per salvaguardare l’integrità e l’affidabilità dei LLM, soprattutto considerando la crescente diffusione e influenza in vari ambiti.
Bibliografia
- Chase, H. (2022). adversarial-prompts. [Online]. Disponibile su: https://github.com/hwchase17/adversarial-prompts.
- Perez, F., & Ribeiro, I. (2022). Ignore Previous Prompt: Attack Techniques For Language Models. arXiv. [Online]. Disponibile su: https://doi.org/10.48550/ARXIV.2211.09527.
- Brundage, M. (2022). Lessons learned on Language Model Safety and misuse. In OpenAI. OpenAI. [Online]. Disponibile su: https://openai.com/blog/language-model-safety-and-misuse/.
- LearnPrompting.org. (s.d.). Category: Prompt Hacking. [Online]. Disponibile su: https://learnprompting.org/docs/category/-prompt-hacking.
Articolo a cura di Giacomo Arienti e Simone Rizzo