03.06.2013 Views

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 ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!