La cybersecurity nell'era dell'AI generativa: una 'chiacchierata' tra LLAMA2 e ChatGPT per la creazione automatizzata di exploit

Simon Pietro Romano, Professore Ordinario di Network Security alla Federico II

L'exploit del software è il processo di sfruttare le vulnerabilità nei software al fine di eseguire attività non intenzionali. Comprendere questo processo porta a un miglioramento delle misure difensive e a una presa di decisioni informata su quali meccanismi di sicurezza prioritizzare. Tuttavia, creare un exploit è un processo lungo e manuale che richiede conoscenze di programmazione, dei protocolli di rete, del sistema operativo, delle architetture informatiche e la capacità di combinare tali conoscenze attraverso un ragionamento complesso. Questa presentazione propone un approccio per affrontare i problemi sopra menzionati incoraggiando una conversazione tra Large Language Models (LLMs) con lo scopo di generare exploit software. Inizialmente, ai LLMs scelti viene fornita la conoscenza di contesto necessaria, attraverso moderne tecniche di ottimizzazione e prompt engineering. Successivamente, il processo viene diviso in diverse fasi: analisi del programma vulnerabile, identificazione dell'exploit, pianificazione del processo di exploit, ricerca dell'architettura e infine produzione del software dell'exploit. Infine, un LLM sarà in grado di fare domande su come eseguire ciascuna delle fasi menzionate. La risposta finale conterrà il codice dell'exploit. Verrà presentato un esempio di questo approccio, mostrando come solo due LLMs (uno con capacità di exploitation e codifica e l'altro con conoscenze sull'architettura informatica) possano lavorare insieme per sfruttare le vulnerabilità di Buffer Overflow.