RSS

L’antivirus che non può esistere…

9 Giugno 2009

Varie

antivirus-64

Alle volte a vagare tra teoremi di matematica si possono scoprire cose che non avremmo mai immaginato!
Se vi siete mai chiesti quale sia il miglior antivirus da usarsi nel vostro eeepc, dato che non volete ancora passare a Linux e vi tenete stretto Windows ma temete che un virus vi possa distruggere tutto prima o poi…beh, non c’è da dormire sonni tranquilli… 😉

La matematica non lascia spazio a dubbi: non può esistere un antivirus efficiente e sicuro!!!

Questo è infatti quello che ha dimostrato nel 1989 William Dowling in un lavoro dal titolo “There Are No Safe Virus Tests”.  Mi sono imbattuto in questo lavoro mentre studiacchiavo la dimostrazione dei Teoremi di Godel sulla incompletezza della Matematica e in effetti questo è un lavoro affine, dato che utilizza concetti simili per la dimostrazione.

Ma come diavolo fa la matematica a dimostrare che non può esistere un antivirus efficiente? Che ne sa di come sono fatti i virus e di come si possono trovare?

Beh, la matematica semplicemente lavora ad alto livello e dice:
Un programma P è un virus se, dato un input x (che potremo vedere come una sequenza di operazioni dell’utente, o altro a piacimento), esso altera il sistema operativo. Certo, la definizione di virus che agisce solo sul sistema operativo può sembrare riduttiva, ma senza perdita di generalità si può poi adattare a qualsiasi programma che viene infettato.

In caso contrario (cioè non altera il sistema operativo) il programma è detto sicuro per l’input x.  A noi interessa quindi sapere che un programma è sicuro se lo è per qualunque sequenza di input x.
Questo è quello che permette alla matematica di non conoscere materialmente come è fatto un virus, ma di poterlo definire con certezza considerando tutti i possibili casi che possiamo mai immaginare.

Giusto per chiarezza il teorema afferma che non può esistere un antivirus che riconosca ogni tipo di virus immaginabile (da cui la definizione di efficiente) e che allo stesso tempo non sia lui stesso artefice della modifica al sistema operativo (da cui la definizione di non sicuro), ovvero si comporti lui stesso da virus.

In pratica un antivirus efficiente sarebbe lui stesso potenzialmente non sicuro, per cui un antivirus che ci risolva tutti i problemi è impossibile da ottenere qualunque sia la sua implementazione 🙁
E su questo non ci piove essendo la dimostrazione rigorosa.

Lascio però i dettagli della dimostrazione sul link precendete, dato che solo chi ha competenza matematiche può seguirla. In ogni caso si procede per assurdo supponendo che esista un antivirus efficiente e sicuro e si crea un programma particolare che, “autoreferenziandosi” (cioè passando come input se stesso), in base ad argomentazioni di tipo diagonale porta ad una contraddizione.

Nella dimostrazione non viene detto come un antivirus efficiente e sicuro si possa costruire, dato che essendo la dimostrazione per assurdo, viene dato per assodato che esista. Anche qui capiamo come la matematica bypassi il problema di come sia effettivamente realizzabile un antivirus.

Cosa significa questa dimostrazione per tutti noi?
Beh, alla fin fine direi ben poco, se non la possibilità per i produttori di Antivirus di farsi pubblicità gratuita:
“Se il nostro antivirus non è perfetto non è colpa nostra: così deve essere, come 1+1=2” 🙂

Tornando su un piano più serio: si sa che Godel ha detto che l’aritmetica è incompleta ed esistono teoremi indimostrabili, pur tuttavia vengono dimostrati ogni giorno teoremi su teoremi che ci aprono la stada a nuove conoscenze che potranno avere ripercussioni sul nostro futuro (pensate alla teoria delle corde, matematicamente ostica, ma che pian piano ci sta portando a conoscere meglio come funziona il mondo).

Esistono teoremi indimostrabili, ma forse essi sono poco utili per la nostra vita: quelli dimostrabili ci sono più utili.

Così non esistono antivirus efficaci e sicuri, ma per la sicurezza del nostro pc, o adottate Linux, o qualunque antivirus su Windows è sempre meglio di niente 🙂

ops, adottare Linux è un mio consiglio, non è un corollario del teorema 😉

, ,

No comments yet.

Leave a Reply