Le architetture RAG (Retrieval Augmented Generation) rappresentano oggi uno dei metodi più diretti ed efficaci per connettere la conoscenza di un'organizzazione con un modello linguistico di grandi dimensioni (LLM), consentendo di sfruttare i dati aziendali attraverso servizi digitali basati sull'intelligenza artificiale. Nel contesto delle piattaforme Microsoft, queste architetture si avvalgono dei Knowledge Graph (KG), frutto di anni di sviluppo. Per questo motivo, i servizi che combinano un'architettura RAG con un KG sono noti come GraphRAG e sono progettati per interagire con la conoscenza di individui o intere aziende.

I Knowledge Graph contengono le informazioni contestuali essenziali che permettono agli LLM di interpretare e rispondere efficacemente ai prompt. Questa è la base operativa di architetture come quella di Microsoft 365 Copilot, che si affida a un KG per arricchire le risposte dell'LLM. Tuttavia, se questo Knowledge Graph contiene i dati di un'intera azienda anziché quelli di un singolo utente, si tratta di informazioni estremamente sensibili che richiedono la massima protezione contro il furto. L'importanza di questa protezione è stata ulteriormente evidenziata in articoli precedenti, come "GenAI Apps & Services: Cómo explotar arquitecturas RAG con Plugins Inseguros", argomento trattato anche in conferenze come quella tenuta da Chema Alonso, "Hacker & Developer in the Age of GenAI" alla dotNET 2024.

Proteggere il Knowledge Graph dal furto

Ma cosa succederebbe se un aggressore riuscisse a sottrarre direttamente una copia completa di un Knowledge Graph? La questione centrale di questo articolo, basato sullo studio "Making Theft Useless: Adulteration-Based Protection of Proprietary Knowledge Graphs in GraphRAG Systems", è se sia possibile alterare un KG in modo che, anche se un attaccante vi accedesse, riceverebbe solo informazioni errate nelle risposte. Se un malintenzionato si impossessasse del Knowledge Graph di un'azienda, gli basterebbe pochissimo per replicare il funzionamento del servizio digitale basato sull'architettura GraphRAG, poiché la maggior parte di questi servizi si basa su componenti comuni. Ciò che rende un servizio unico e differenziante sono i dati contenuti nel Knowledge Graph aziendale, la cui generazione, inoltre, richiede tempo e risorse considerevoli. Una volta clonata l'architettura, l'aggressore potrebbe accedere alla conoscenza e alle informazioni contenute nel Knowledge Graph, formulando le domande corrette.

Per affrontare questo problema, i ricercatori hanno ideato un metodo per "adulterare" la base di conoscenza. L'obiettivo è rendere il KG utile solo a coloro che ne conoscono l'alterazione, mentre per tutti gli altri si tradurrà in risposte piene di allucinazioni o del tutto incomprensibili. La proposta consiste nell'adulterare il Knowledge Graph in modo che solo gli utenti legittimi siano a conoscenza dell'alterazione. In questo modo, essi possono "disadulterare" le informazioni provenienti dal KG prima che vengano inviate dal servizio RAG (GraphRAG) all'LLM. È fondamentale ricordare che le architetture RAG sono create affinché gli LLM possano lavorare su conoscenze private e specifiche. Se questi dati sono adulterati, gli LLM elaboreranno informazioni errate. Di conseguenza, gli utenti non autorizzati, non sapendo come rimuovere i nodi adulterati nel KG, otterranno prompt per l'LLM del servizio che non funzioneranno, restituendo informazioni errate o, direttamente, impedendo all'LLM di rispondere.

Il processo di adulterazione dei nodi chiave con AURA

Il processo di adulterazione identifica i nodi più importanti del Knowledge Graph, definiti "nodi chiave" (Key Nodes). L'obiettivo è assicurarsi che questi nodi siano presenti nel maggior numero possibile di risposte di arricchimento dei prompt provenienti dal KG e che contengano informazioni adulterate, in modo da fungere da elementi adulteranti per tutte le risposte. Questi nodi chiave vengono analizzati e alterati, ad esempio, con valori che appartengono alla stessa entità ma che sono semanticamente diversi. Un esempio di prompt per la generazione di nodi adulteranti illustra come questo processo possa avvenire. Questo metodo può essere applicato a diversi nodi, e le modifiche devono essere note solo agli utenti legittimi.

Il framework che implementa questa strategia si chiama AURA. Come mostrato nella Figura 8, che descrive il "Processo di Adulterazione di Key Nodes", il sistema cerca i moduli più rilevanti, puntando a corrompere il maggior numero possibile di risposte. Ciò implica la generazione di adulterazioni per ciascuno di questi nodi adulteranti. Se il GraphRAG invia il prompt originale arricchito con dati che contengono uno dei nodi adulteranti, gli aggressori otterranno risposte parziali, piene di allucinazioni o, direttamente, nessuna risposta.

Risultati sperimentali e tipi di errore

I risultati sperimentali di questa metodologia sono stati molto promettenti. La metrica HS "Harmfulness Score" (Punteggio di Nocività) rappresenta la percentuale di prompt che, prima dell'adulterazione, ricevevano una risposta corretta e che, dopo l'alterazione dei nodi, vengono risposti in modo errato o non ricevono alcuna risposta. Come si può osservare, utilizzando diversi dataset di prova e vari LLM, i risultati sono tutti superiori al 94%, dimostrando l'efficacia del metodo nel disorientare gli attaccanti.

Il secondo indicatore è l'ARR "Adulterant Retrieval Rate" (Tasso di Recupero dell'Adulterante), ovvero la percentuale di prompt in cui sono stati inclusi i nodi adulteranti. In questo caso, il risultato è del 100% in tutti i test, poiché l'algoritmo di selezione dei nodi chiave è stato in grado di coprire la totalità dei percorsi di risposta, assicurando che l'adulterazione fosse sempre presente quando necessaria.

Lo studio ha anche analizzato i tipi di errori iniettati tramite l'adulterazione (come mostrato in un grafico sui tipi di errore). Questo grafico rappresenta le percentuali di risposte parzialmente errate, completamente errate, o direttamente i casi in cui il modello LLM si è rifiutato di rispondere. Il paper completo contiene ulteriori tabelle e misurazioni, ma questi indicatori principali sono sufficienti per comprendere l'impatto e l'efficacia della tecnica.

Il meccanismo di "disadulterazione" per gli utenti legittimi

Il segreto per consentire al servizio digitale legittimo di riconoscere e rimuovere i nodi adulteranti prima di inviare il prompt arricchito all'LLM risiede nel processo di adulterazione stesso. Durante questa fase, tutti i nodi vengono marcati con metadati cifrati. Come illustrato nel punto 4 della Figura 8, se il metadato cifrato – decifrabile solo con la chiave in possesso del servizio legittimo – indica che un nodo è adulterato, questo viene semplicemente rimosso.

Questa strategia evita la necessità di cifrare l'intero Knowledge Graph, un'operazione che sarebbe computazionalmente impraticabile al giorno d'oggi. Vengono cifrate solamente le "marche" dell'adulterazione, rendendo il sistema efficiente e scalabile. Si tratta senza dubbio di un argomento molto interessante nel campo della sicurezza informatica e dell'intelligenza artificiale.

Conclusioni e risorse aggiuntive

Questa tecnica offre una soluzione innovativa per proteggere i Knowledge Graph proprietari nelle architetture RAG contro il furto di dati, rendendo le informazioni rubate inutili per gli attaccanti senza compromettere l'usabilità per gli utenti legittimi. Se sei appassionato di questo mondo, ti consiglio di acquistare il libro "Hacking & Pentesting con Inteligencia Artificial" edito da 0xWord, scritto da Pablo González, Fran Ramírez, Rafael Troncoso, Javier del Pino e Chema Alonso, che sicuramente ti affascinerà.

Per chi è interessato all'intersezione tra intelligenza artificiale e cibersicurezza, Chema Alonso mette a disposizione un vasto archivio di oltre 300 riferimenti a paper, post e conferenze da lui scritti, citati o tenuti su questi argomenti. Un saluto maligno!

Autore: Chema Alonso (Contatta Chema Alonso)