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.

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

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

Saved successfully!

Ooh no, something went wrong!