Un modello integrato control-flow e data-flow per il rilevamento ...
Un modello integrato control-flow e data-flow per il rilevamento ...
Un modello integrato control-flow e data-flow per il rilevamento ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
6 1. Introduzione<br />
1.3 Struttura della tesi<br />
La tesi si sv<strong>il</strong>uppa in 4 ulteriori capitoli oltre a quello presente.<br />
Nel secondo capitolo verranno esaminati alcuni modelli <strong>per</strong> <strong>il</strong> <strong>control</strong> <strong>flow</strong> presenti<br />
in letteratura, sia costruiti dinamicamente che staticamente. Verranno mostrate le<br />
tecniche necessarie alla loro costruzione e verranno discussi vantaggi e svantaggi dei<br />
modelli. Finita la discussione dei modelli <strong>control</strong> <strong>flow</strong> si osserverà come la protezione<br />
di quest’ultimo non sia sufficiente a impedire che un processo venga attaccato e verrà<br />
mostrato un semplice programma che è vulnerab<strong>il</strong>e ad un attacco che <strong>per</strong>mette di<br />
ottenere una shell senza che <strong>il</strong> suo <strong>control</strong> <strong>flow</strong> sia alterato. Si osserverà quindi<br />
che è necessario proteggere anche <strong>il</strong> <strong>data</strong>-<strong>flow</strong> e dopo una breve discussione verrà<br />
presentato un <strong>modello</strong> in grado di apprendere relazioni tra i parametri delle chiamate<br />
di sistema, anch’esso presente in letteratura.<br />
Il terzo capitolo si aprirà vedendo come anche unendo un execution graph (uno dei<br />
più potenti modelli <strong>control</strong> <strong>flow</strong>) con <strong>il</strong> <strong>modello</strong> <strong>data</strong> <strong>flow</strong> si possa comunque trovare<br />
dei casi in cui è possib<strong>il</strong>e attaccare <strong>il</strong> sistema senza essere sco<strong>per</strong>ti. Si osserverà<br />
quindi che questo è dovuto principalmente a due motivi che sono dati da un basso<br />
accoppiamento tra i due modelli e dalla relativa povertà delle informazioni <strong>data</strong> <strong>flow</strong><br />
raccolte. Il <strong>modello</strong> <strong>data</strong> <strong>flow</strong> può infatti trarre notevole vantaggio da informazioni<br />
già raccolte <strong>per</strong> la costruzione del <strong>modello</strong> <strong>control</strong> <strong>flow</strong>, inoltre verrà <strong>data</strong> la capacità<br />
al <strong>modello</strong> <strong>data</strong> <strong>flow</strong> di apprendere delle alternative. Senza <strong>il</strong> loro apprendimento vi<br />
sono casi in cui l’informazione raccolta è veramente povera. Si proporrà dunque un<br />
nuovo <strong>modello</strong> <strong>integrato</strong> <strong>per</strong> <strong>control</strong> <strong>flow</strong> e <strong>data</strong> <strong>flow</strong> in grado di risolvere i problemi<br />
osservati, assieme a tutti gli algoritmi necessari a costruirlo.<br />
Il quarto capitolo tratterà l’implementazione. In una prima parte verrà analizza-<br />
to <strong>il</strong> framework DTrace che <strong>per</strong>metterà la raccolta dati necessaria alla costruzione del<br />
<strong>modello</strong>. Dopo aver visto come specificare quali dati si vuole raccogliere si passerà<br />
ad alcuni dettagli di libdtrace(3LIB), necessaria <strong>per</strong> l’interfacciamento low-level<br />
al framework e <strong>per</strong> l’estrazione dei dati raw. Verranno poi trattati alcuni dei dettagli<br />
implementativi salienti del sistema e infine, in modo del tutto informale, si discuterà<br />
sulla complessità computazionale del <strong>modello</strong>, sia dal punto di vista del training sia<br />
dal punto di vista della verifica online.<br />
Il quinto capitolo è dedicato alle conclusioni e alla descrizione dei possib<strong>il</strong>i sv<strong>il</strong>up-<br />
pi futuri di questo lavoro. In particolare saranno proposte tre possib<strong>il</strong>i estensioni.<br />
La prima cerca di “spremere” ulteriormente i dati già raccolti <strong>per</strong> la costruzione<br />
del <strong>modello</strong> <strong>per</strong> carpire più informazioni sulla struttura interna del programma. La