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.

3<br />

<strong>Un</strong> <strong>modello</strong> che integra <strong>control</strong><br />

<strong>flow</strong> e <strong>data</strong> <strong>flow</strong><br />

L’execution graph e <strong>il</strong> <strong>modello</strong> <strong>data</strong> <strong>flow</strong> visti, a patto di eseguire correttamente <strong>il</strong><br />

training, se uniti costituiscono uno strumento molto potente <strong>per</strong> <strong>il</strong> r<strong>il</strong>evamento di<br />

comportamenti anomali da parte del software che gira su un elaboratore. Il <strong>modello</strong><br />

costruito con questa tecnica rappresenta molto fedelmente e in modo molto sintetico<br />

quello che è concesso e quello che non è concesso fare ad un programma. Tuttavia,<br />

anche assumendo un training <strong>per</strong>fetto, vi sono situazioni in cui diventa impossib<strong>il</strong>e<br />

r<strong>il</strong>evare che <strong>il</strong> programma monitorato non sta facendo quello <strong>per</strong> cui è stato pensato.<br />

La debolezza sorge dal fatto che l’accoppiamento del <strong>modello</strong> <strong>data</strong> <strong>flow</strong> con <strong>il</strong> <strong>modello</strong><br />

<strong>control</strong> <strong>flow</strong> è relativamente basso.<br />

3.1 Debolezze dei modelli esistenti<br />

Il software, come è noto, è costruito “a strati” e tipicamente le parti più basse pos-<br />

sono essere richiamate da diverse parti che si collocano più in alto nell’architettura.<br />

Ad esempio, un web server avrà del codice dedicato alla gestione dei log, codice<br />

che viene richiamato dal codice che si occupa dell’autenticazione, da quello che si<br />

occupa dell’interazione con i client e così via. Pensando ad un’ipotetica funzione<br />

log event(), se questa viene chiamata dal codice di autenticazione provocherà la<br />

scrittura nel log-f<strong>il</strong>e che un dato utente, ad esempio, ha immesso la password errata,<br />

mentre se chiamata dal codice che interagisce con i client provocherà, ad esempio, la<br />

scrittura di un messaggio che informa l’amministratore che un dato client ha inviato<br />

una richiesta malformata. Le proprietà <strong>data</strong> <strong>flow</strong> apprese dal <strong>modello</strong> di [2] <strong>per</strong>ò<br />

non saranno in grado di dire nulla di più di qualcosa come

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

Saved successfully!

Ooh no, something went wrong!