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.
1<br />
Introduzione<br />
Dai tempi della “dot-com bubble” stiamo assistendo ad una crescita enorme del-<br />
la diffusione di dispositivi informatici di ogni tipo e, a differenza di dieci anni fa,<br />
è abbastanza diffic<strong>il</strong>e pensare di poter vivere senza interagire ogni giorno con un<br />
computer potenzialmente connesso alla rete. Router casalinghi e telefonini montano<br />
CPU sufficientemente potenti da poter far girare un kernel <strong>Un</strong>ix, <strong>per</strong> non parlare di<br />
televisori e media-center. Se pensiamo a quanti di questi dispositivi ognuno di noi<br />
ha in casa e, soprattutto, alla quantità di dati <strong>per</strong>sonali che essi manipolano, la loro<br />
protezione da attacchi informatici diventa un obiettivo primario. Le minacce <strong>per</strong> un<br />
computer, comprendendo negli oggetti indicati con questa parola anche i dispositivi<br />
appena citati, sono dei tipi più svariati ed impensab<strong>il</strong>i e le tecniche di difesa sono<br />
letteralmente centinaia, ognuna volta a proteggere da determinati tipi di attacchi.<br />
Volendo prescindere dalla tipologia d’attacco possiamo distinguere due metodo-<br />
logie fondamentali nel r<strong>il</strong>evamento, la misuse detection, altrimenti detta signature-<br />
based detection e la anomaly detection. Gli antivirus in buona approssimazione fanno<br />
un lavoro di misuse detection: essi infatti, dato ad esempio un f<strong>il</strong>e eseguib<strong>il</strong>e, sono<br />
in grado di cercare al suo interno delle sequenze di byte corrispondenti a payload<br />
malevoli già noti. Il confronto è puramente sintattico e quindi una “versione B”<br />
del payload sintatticamente diversa ma semanticamente equivalente potrebbe non<br />
venire r<strong>il</strong>evata. Prendiamo i due frammenti di assembler x86 di Figura 1.1:<br />
jmp 0x01ab23cd<br />
(a)<br />
push 0x01ab23cd<br />
ret<br />
(b)<br />
Figura 1.1: Codice semanticamente equivalente.<br />
l’effetto netto del codice è esattamente lo stesso, quindi semanticamente sono identici