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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

64 5. Conclusioni e sv<strong>il</strong>uppi futuri<br />

5.1 Riep<strong>il</strong>ogo del lavoro svolto<br />

5.1.1 Il <strong>modello</strong><br />

Lo studio dei modelli esistenti ha messo in luce vari casi in cui essi sono ciechi<br />

a certi tipi di attacchi e partendo da tre scenari e da una semplice osservazione<br />

sono venute alla luce le possib<strong>il</strong>i migliorie. L’osservazione è che l’apprendimento del<br />

<strong>control</strong> <strong>flow</strong> richiede l’acquisizione di informazioni relative allo stack al momento<br />

della chiamata di sistema, informazioni di cui <strong>per</strong>ò può beneficiare anche <strong>il</strong> <strong>modello</strong><br />

<strong>data</strong> <strong>flow</strong>. Il modo in cui questo può beneficiarne appare dai primi due scenari<br />

presentati, che riguardano le relazioni unarie: si è visto che l’uso dello stack <strong>per</strong>mette<br />

di classificare i parametri delle system call in base al <strong>per</strong>corso che <strong>il</strong> <strong>control</strong> <strong>flow</strong> ha<br />

seguito <strong>per</strong> arrivare a fare una certa chiamata. Nel caso delle relazioni binarie invece<br />

l’ut<strong>il</strong>ità dell’uso dello stack rimane poco chiara e deve essere ancora investigata ma<br />

si è comunque proposta una miglioria, la cui motivazione appare nel terzo scenario<br />

analizzato. L’osservazione in questo caso è stata che non è assolutamente garantito<br />

che le relazioni che coinvolgono i parametri delle chiamate di sistema siano invarianti<br />

rispetto al loro valore e dunque si è proposto un nuovo schema di apprendimento<br />

che tiene conto di questo fatto.<br />

5.1.2 L’implementazione<br />

Nel quarto capitolo sono stati presentati alcuni dei dettagli dell’implementazione,<br />

in particolare è stato mostrato come DTrace abbia <strong>per</strong>messo di non scrivere nem-<br />

meno una riga di codice in kernel space. Certamente in un’implementazione reale<br />

questo è inevitab<strong>il</strong>e ma <strong>per</strong> un proof-of-concept l’overhead imposto da DTrace è di<br />

tutto rispetto. Inizialmente si è quindi vista la struttura di DTrace <strong>per</strong> poi passare<br />

all’interfacciamento al framework tramite l’apposita libreria. Successivamente si è<br />

visto come la <strong>data</strong> collection ruoti interamente attorno ad uno script nel linguaggio<br />

di DTrace. Infine, dopo aver presentato una possib<strong>il</strong>e struttura dati <strong>per</strong> l’esecuzione<br />

efficiente di un’o<strong>per</strong>azione necessaria al <strong>modello</strong>, è stata discussa la complessità in<br />

modo del tutto informale, essendo questa dettata prevalentemente dalle strutture<br />

dati ut<strong>il</strong>izzate.<br />

5.2 Sv<strong>il</strong>uppi futuri<br />

In questa sezione verranno presentate alcune idee che si vorrebbe investigare ed<br />

eventualmente integrare nel <strong>modello</strong>.

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

Saved successfully!

Ooh no, something went wrong!