Le applicazioni LLM (Large Language Models) sono una novità nel panorama tecnologico, e come tutte le nuove tecnologie, sono soggette a vulnerabilità e rischi di sicurezza. La Open Web Application Security Project (OWASP) ha pubblicato una guida alle vulnerabilità per le applicazioni LLM, che identifica e analizza i 10 rischi più critici per la sicurezza. In questo articolo, esamineremo brevemente ciascuna vulnerabilità e forniremo suggerimenti, soluzioni, consigli e best practice per mitigare i rischi e garantire la sicurezza delle applicazioni LLM.
OWASP Top 10 per le applicazioni LLM
LLM01: Iniezione di prompt
Le iniezioni di prompt sono input dannosi che portano a un LLM che si esibisce in modi imprevisti che espongono dati o eseguono azioni non autorizzate come l’esecuzione di codice remoto. Non sorprende che la pronta iniezione sia la minaccia numero uno per i LLM perché sfrutta la progettazione dei LLM piuttosto che un difetto che può essere corretto. In alcuni casi non c’è modo di fermare la minaccia; puoi solo mitigare il danno che provoca.
Suggerimenti per la mitigazione
- Utilizzare tecniche di sanitizzazione e validazione degli input per prevenire iniezioni di prompt.
- Implementare meccanismi di controllo degli accessi e di autenticazione per limitare l’esecuzione di comandi non autorizzati.
- Utilizzare strumenti di monitoraggio per rilevare e rispondere rapidamente alle iniezioni di prompt.
LLM02: Trattamento non sicuro dell’output
La gestione dell’output non sicura descrive una situazione in cui plug-in o altri componenti accettano l’output LLM senza pratiche sicure come la sanificazione e la convalida. Ciò può portare a molteplici comportamenti indesiderati, tra cui lo scripting cross-site e l’esecuzione di codice remoto sui sistemi backend.
Suggerimenti per la mitigazione
- Implementare tecniche di sanitizzazione e validazione dell’output per prevenire l’esecuzione di comandi non autorizzati.
- Utilizzare strumenti di monitoraggio per rilevare e rispondere rapidamente a situazioni di trattamento non sicuro dell’output.
LLM03: Avvelenamento dei dati di formazione
L’avvelenamento dei dati di addestramento si verifica quando i dati coinvolti nella pre-formazione o nella messa a punto di un LLM vengono manipolati per introdurre vulnerabilità che influiscono sulla sicurezza, sul comportamento etico o sulle prestazioni del modello. L’avvelenamento dei dati è una vulnerabilità difficile da combattere a causa dell’enorme quantità di dati che gli LLM acquisiscono e della difficoltà nel verificare tutti tali dati. Lo scenario migliore in assoluto per l’addestramento all’avvelenamento dei dati è che il tuo modello finisca per non essere molto bravo nell’analizzare il testo e fare previsioni, ma ciò avrà comunque un impatto negativo sulla tua reputazione.
Suggerimenti per la mitigazione
- Verificare e validare i dati di formazione per prevenire l’avvelenamento.
- Implementare meccanismi di monitoraggio per rilevare eventuali modifiche non autorizzate ai dati di formazione.
LLM04: Denial of Service del modello
La negazione del servizio del modello si verifica quando le richieste dell’utente fanno sì che i modelli utilizzino troppe risorse, causando il peggioramento del servizio e causando problemi di disponibilità. La mancata limitazione del numero di prompt immessi, della lunghezza dei prompt, dell’analisi ricorsiva da parte di LLM, del numero di passaggi che un LLM può eseguire o delle risorse che un LLM può utilizzare possono tutti comportare un modello di negazione del servizio.
Suggerimenti per la mitigazione
- Implementare limiti di risorse e di utilizzo per prevenire il denial of service del modello.
- Utilizzare strumenti di monitoraggio per rilevare e rispondere rapidamente a situazioni di denial of service del modello.
LLM05: Vulnerabilità della catena di fornitura
Le vulnerabilità della catena di fornitura possono provenire da qualsiasi componente di terze parti, inclusi plug-in, piattaforme, modelli preaddestrati e dati di addestramento. I modelli e i dati di addestramento di terze parti possono essere soggetti ad attacchi velenosi e qualsiasi componente di terze parti non AI può contenere le classiche vulnerabilità che già conosciamo e detestiamo.
Suggerimenti per la mitigazione
- Verificare e validare i componenti della catena di fornitura per prevenire vulnerabilità.
- Implementare meccanismi di monitoraggio per rilevare eventuali modifiche non autorizzate ai componenti della catena di fornitura.
LLM06: Divulgazione di informazioni sensibili
Poni la domanda giusta e un LLM potrebbe finire per riversare tutto il suo cuore, il che potrebbe includere informazioni sensibili della tua organizzazione o di altre entità, come algoritmi proprietari o informazioni riservate che comportano violazioni della privacy.
Suggerimenti per la mitigazione
- Implementare meccanismi di controllo degli accessi e di autenticazione per limitare l’accesso alle informazioni sensibili.
- Utilizzare strumenti di monitoraggio per rilevare e rispondere rapidamente a situazioni di divulgazione di informazioni sensibili.
LLM07: Pianificazione non sicura
I plugin non sicuri rappresentano una vulnerabilità dei plugin che scrivi per i sistemi LLM, piuttosto che dei plugin di terze parti che rientrerebbero nelle vulnerabilità della catena di fornitura. I plugin non sicuri accettano testo senza parametri da LLM senza un’adeguata sanificazione e convalida, il che può portare a comportamenti indesiderati, inclusa la fornitura di un percorso per iniezioni tempestive per portare all’esecuzione di codice remoto.
Suggerimenti per la mitigazione
- Implementare tecniche di sanitizzazione e validazione degli input per prevenire l’esecuzione di comandi non autorizzati.
- Utilizzare strumenti di monitoraggio per rilevare e rispondere rapidamente a situazioni di pianificazione non sicura.
LLM08: Eccessiva autonomia
Quando si interfacciano con altri sistemi, gli LLM hanno bisogno di ciò di cui hanno bisogno e niente di più. Quando hanno troppe funzionalità, autorizzazioni o autonomia, hai tra le mani un’eccessiva vulnerabilità dell’agenzia.
Suggerimenti per la mitigazione
- Implementare meccanismi di controllo degli accessi e di autenticazione per limitare l’autonomia degli LLM.
- Utilizzare strumenti di monitoraggio per rilevare e rispondere rapidamente a situazioni di eccessiva autonomia.
LLM09: Dipendenza eccessiva
Anche i migliori LLM non sono infallibili. L’eccessivo affidamento si verifica quando gli utenti considerano i risultati LLM come vangelo senza verificarne l’accuratezza. L’eccessivo affidamento può portare a un processo decisionale inadeguato che può portare a danni finanziari o di reputazione.
Suggerimenti per la mitigazione
- Implementare meccanismi di controllo della qualità per garantire l’accuratezza delle informazioni fornite dagli LLM.
- Utilizzare strumenti di monitoraggio per rilevare e rispondere rapidamente a situazioni di dipendenza eccessiva.
LLM10: Furto del modello
Il furto del modello può verificarsi quando gli aggressori si muovono attraverso altre vulnerabilità della tua infrastruttura per accedere al repository del tuo modello, o anche attraverso l’iniezione tempestiva e l’osservazione dell’output quando gli aggressori raccolgono abbastanza della salsa segreta del tuo LLM da poter costruire il proprio modello ombra.
Suggerimenti per la mitigazione
- Implementare meccanismi di controllo degli accessi e di autenticazione per prevenire il furto del modello.
- Utilizzare strumenti di monitoraggio per rilevare e rispondere rapidamente a situazioni di furto del modello.
Le vulnerabilità delle applicazioni LLM possono avere conseguenze significative sulla sicurezza e sulla privacy delle informazioni. Implementare le best practice di sicurezza e utilizzare strumenti di monitoraggio e controllo degli accessi possono aiutare a prevenire e mitigare i rischi associati a queste vulnerabilità. La guida alle vulnerabilità OWASP per le applicazioni LLM fornisce una panoramica completa dei rischi più critici e delle best practice per la sicurezza delle applicazioni LLM.
Fonte: https://securityboulevard.com/2024/04/owasp-top-10-for-llm-applications-a-quick-guide/