Red Hot Cyber

La cybersecurity è condivisione.
Riconosci il rischio, combattilo, condividi le tue esperienze ed 
incentiva gli altri a fare meglio di te.

Cerca

OWASP Top 10 per LLMs: le superfici d’attacco dei modelli linguistici

Francesco Conti : 3 Novembre 2023 08:30

A metà Ottobre è stato pubblicato il primo aggiornamento alla OWASP Top 10 for Large Language Model Applications. Il progetto ha lo scopo di sensibilizzare gli sviluppatori e i professionisti della sicurezza web sugli aspetti critici legati alle applicazioni basate su LLMs (Large Language Models).

L’Open Web Application Security Project (OWASP) ha creato una lista delle 10 vulnerabilità più gravi, mettendo in luce il potenziale impatto, la facilità con cui possono essere sfruttate e la diffusione nelle applicazioni reali. Un esempio comune di vulnerabilità è la prompt injection, che consiste nella ricerca di input specifici che possono indurre i motore linguistici a risposte indesiderate che possono portare, ad esempio, all’esfiltrazione di dati sensibili.

Esaminiamo più da vicino il contenuto di questa lista e identifichiamo le nuove aree di vulnerabilità che i LLMs introducono!

Gli scopi del progetto: la sicurezza dei LLMs

OWASP è un’organizzazione no-profit impegnata a potenziare la sicurezza del software attraverso iniziative open source, eventi educativi e una comunità aperta focalizzata sulla sicurezza delle applicazioni. La OWASP Top Ten è un elenco dei dieci rischi più gravi per le applicazioni web, che viene costantemente aggiornato per tener conto delle minacce attuali da affrontare.

L’ampia diffusione delle applicazioni basate su LLM ha spinto OWASP a istituire un nuovo gruppo di esperti internazionali con l’obiettivo di introdurre i principi generali della sicurezza informatica nello sviluppo di applicazioni LLM. Lo scorso Agosto il gruppo ha pubblicato la prima Top Ten, con un aggiornamento nelle passate settimane. Le minacce, dettagliate nel seguito, per approfondimenti si fa riferimento al documento prodotto dal gruppo OWASP.


Scopri l’Intelligenza Artificiale attraverso gli articoli di RHC
Una “intelligenza artificiale” (IA) è un campo della scienza informatica che mira a creare sistemi informatici in grado di eseguire attività che richiedono intelligenza umana, come il ragionamento, l’apprendimento, la percezione e il linguaggio. Le intelligenze artificiali sono programmi o macchine che sono progettati per emulare alcune delle funzioni cognitive umane, come il pensiero logico, la risoluzione di problemi, l’analisi dei dati e l’interazione con l’ambiente circostante. Questo mondo dell’intelligenza artificiale è in costante evoluzione e offre una vasta gamma di applicazioni in settori come la medicina, l’industria, l’automazione, l’assistenza virtuale, il riconoscimento del linguaggio naturale, la guida autonoma e molto altro. Attraverso questi articoli tratti dalla nostra rubrica Alla scoperta dell’Intelligenza Artificiale, esplorerete questo entusiasmante campo e ne comprenderete il funzionamento, scoprendo come le intelligenze artificiali apprendono dai dati, adattano i loro comportamenti e risolvono problemi complessi. Saranno presentati anche i vantaggi e le sfide associate all’utilizzo di queste tecnologie all’avanguardia e le implicazioni etiche che sorgono in questo contesto. In questo modo, sarete preparati a cogliere le opportunità e a navigare nelle sfide di un mondo sempre più guidato dall’intelligenza artificiale.

Prompt Injection: la minaccia più grande

In un attacco di Prompt Injection un aggressore utilizza input articolati cercando di alterare il comportamento del LLM. Lo scopo è dirottare gli output del modello per raggiungere obiettivi dannosi. Nei casi più semplici, l’aggressore potrebbe essere interessato all’esfiltrazione di dati sensibili attraverso apposite domande e strategie per eludere le protezioni del sistema. In questi casi si parla di prompt injection diretta.

In caso di attacchi più sofisticati, l’obiettivo dell’attaccante potrebbe essere sfruttare dei plugin a cui il LLM ha accesso per ottenere un risultato non autorizzato. Ad esempio, una applicazione basata su LLM potrebbe avere un plugin per la gestione della posta. In questo caso, un utente malevolo potrebbe inserire un comando nascosto in una pagina web in modo che il LLM ignori le istruzioni dell’utente e utilizzi il plugin per eliminare le email dell’utente o inviare posta indesiderata. Quando l’utente utilizza il LLM per riassumere il contenuto della pagina web, il plugin entra in azione.

Secondo OWASP, questo tipo di vulnerabilità sorgono a causa della natura intrinseca dei modelli. I LLMs, infatti, non riescono a distinguere tra istruzioni ed input provenienti dall’esterno. Non esiste un metodo completamente efficace per proteggersi dalle “Prompt Injection” all’interno dei LLM, ma è possibile mettere in atto le seguenti misure al fine di ridurne l’impatto:

  1. Controllare attentamente l’accesso del LLM ai sistemi di backend, limitando i privilegi e fornendo token API separati.
  2. Adottare approcci human-in-the-loop per operazioni sensibili (come cancellazione email) per evitare azioni non autorizzate.
  3. Separare i dati esterni dalle richieste dell’utente.
  4. Stabilire confini di fiducia tra il LLM, le fonti esterne e le funzionalità estensibili.
  5. Monitorare periodicamente l’input e l’output del LLM per individuare e affrontare possibili vulnerabilità.

Ecco un approfondimento con un esempio pratico riguardo il primo caso di prompt injection contro la chat di Bing Chat!

La lista delle vulnerabilità di applicazioni LLMs

Ecco una lista delle altre vulnerabilità:

  • Insecure Output Handling: Indica la mancanza di adeguata convalida e gestione degli output generati da LLM prima che vengano trasmessi ad altri componenti o sistemi. Ad esempio, una app web potrebbe utilizzare un LLM per generare contenuto dalle istruzioni di testo di un utente senza sanitization dell’output. Un utente malintenzionato potrebbe inviare un prompt per fare in modo che il LLM restituisca un payload JavaScript non sanificato, portando a XSS quando viene visualizzato sul browser di una vittima.
  • Training Data Poisoning: si riferisce alla manipolazione dei dati di addestramento o fine-tuning per introdurre vulnerabilità, backdoor o bias. Il training su dati avvelenati potrebbe compromettere la sicurezza, l’efficacia o l’etica del modello.
  • Model Denial of Service: un utente malintenzionato può causare problemi utilizzando molte risorse in un sistema basato su LLM, riducendo il servizio per gli utenti e generando costi elevati. Inoltre, c’è preoccupazione per la possibilità che un utente possa manipolare la “finestra di contesto” di un LLM, la lunghezza massima del testo che il modello può gestire. Questo problema diventa sempre più critico dato l’ampio utilizzo dei LLM, la loro intensa richiesta di risorse e la mancanza di consapevolezza tra gli sviluppatori riguardo a questa vulnerabilità.
  • Supply-Chain Vulnerabilities: le forniture esterne, anche nel caso di LLMs, possono introdurre vulnerabilità. Oltre i software di terze parti, anche la compromissione di dati, di modelli o piattaforme di deployment rientrano nei rischi associati alla supply-chain.
  • Sensitive Information Disclosure: una applicazione LLM potrebbe rivelare, involontariamente, dati sensibili di altri utenti o dati proprietari a causa di filtraggio improprio o incompleto nelle risposte.
  • Insecure Plugin Design: i plugin LLM sono estensioni che il modello può chiamare automaticamente durante le interazioni dell’utente, spesso senza il controllo diretto dell’applicazione. Senza una corretta validazione dell’interazione tra LLM e plugin, un utente malintenzionato potrebbe fornire payload per eseguire una ricognizione a partire dai messaggi di errore. A questo punto, potrebbe sfruttare le vulnerabilità note di SW terze parti per eseguire codice ed eseguire l’esfiltrazione di dati o l’escalation dei privilegi.
  • Excessive Agency: vulnerabilità legata a eccessive funzionalità, eccessive autorizzazioni o eccessiva autonomia nei sistemi LLMs, che consentono azioni dannose in risposta a output imprevisti o ambigui dall’LLM. Questo si differenzia dall’Insecure Output Handling, che riguarda la mancanza di adeguata verifica degli output dell’LLM.
  • Overreliance: i LLM possono compiere errori, producendo contenuti inappropriati o pericolosi, noti come allucinazioni, in maniera molto autoritaria. Quando le persone o i sistemi si fidano di queste informazioni, senza supervisione o conferma, si possono avere violazioni di sicurezza, disinformazione, errori di comunicazione, questioni legali (accuse di plagio) e danni reputazionali. Inoltre, un codice sorgente generato da un servizio LLM può introdurre vulnerabilità di sicurezza non rilevate. Questo rappresenta un rischio significativo per la sicurezza operativa delle applicazioni.
  • Model Theft: accesso non autorizzato o esfiltrazione dei LLM da parte di attori malintenzionati. Ciò accade quando i modelli, che rappresentano una preziosa proprietà intellettuale, vengono violati, sottratti fisicamente, duplicati o i loro pesi e parametri vengono estratti per creare una replica equivalente funzionante. Le conseguenze del furto di modelli LLM possono comportare perdite finanziarie, danni alla reputazione aziendale, la perdita di un vantaggio competitivo, l’utilizzo non autorizzato del modello o l’accesso non autorizzato a dati sensibili contenuti nel modello.

Conclusioni

Applicazioni basate su LLMs introducono nuove superfici di attacco, che devono essere prese in considerazione nello sviluppo di applicazioni web. Attori malintenzionati possono sfruttare mancati accorgimenti di sicurezza per portare il modello a rivelare informazioni sensibili o interagire con plugin per introdurre exploit. Le attività svolte dal gruppo OWASP Top Ten LLM vanno nella direzione di applicazioni basati su Intelligenza Artificiale più sicure.

Francesco Conti
Ingegnere delle telecomunicazioni specializzato in machine learning e intelligenza artificiale. Applica le sue competenze nel campo della cyber security per automatizzare operazioni noiose e ripetitive!