Riassunto analitico
Una delle sfide principali nell’ambito della sicurezza informatica consiste nella scoperta efficace ed efficiente delle diverse tipologie di vulnerabilità presenti in un sistema informatico. Tale attività è notoriamente difficoltosa e prona ad errori. La letteratura corrente propone diversi approcci basati su script, framework di orchestrazione del processo di indagine, sistemi basati sulla rappresentazione della conoscenza. Questi approcci presentano diverse limitazioni, in primis una scarsa flessibilità di utilizzo, la non riusabilità su sistemi simili, la configurazione manuale dei singoli sistemi da testare (laddove sarebbe auspicabile una scoperta semi automatica degli asset) ed, in definitiva, la necessità di supervisione dello strumento da parte di un essere umano. Lo scopo di questa tesi è quello di proporre un approccio innovativo per l’identificazione e l’esecuzione di verifiche di vulnerabilità e di attacchi informatici in modalità semi automatica. L’architettura proposta consiste in un sistema esperto facente uso di due basi di conoscenza implementate in Prolog. La prima base è statica e contiene i modelli di attacco più popolari; la seconda base è dinamica e contiene i fatti derivati esclusivamente dalle evidenze ottenute durante l’esecuzione delle verifiche. Combinando le due conoscenze è possibile intuire la direzione dei futuri attacchi e di penetrare le difese di un sistema informatico in modo mirato. L’architettura illustrata nella tesi non è ancora stata proposta nella letteratura (che, invece, offre una moltitudine di strumenti in grado di verificare l’esistenza di vulnerabilità o l’assenza di misure difensive). Si propone inoltre una implementazione prototipale del sistema proposto nei linguaggi Python e Prolog. La tesi si conclude con una dettagliata valutazione sperimentale dell’efficacia dell’architettura, facendo uso di singole sfide sintetiche (challenge) in ambito sistemistico e Web, nonché macchine virtuali vulnerabili (boot2root). I risultati iniziali sono incoraggianti e mostrano come il sistema proposto sia in grado non solo di penetrare le difese tramite attacchi noti a priori e variazioni di questi ultimi non immesse manualmente, bensı̀ anche in grado di violare sistemi strutturalmente simili (differenti solo nelle variabili di configurazione).
|