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