Está en la página 1de 13

"El problema del antivirus"

La inexistencia del antivirus ideal y la deteccin universal de virus

Planteo del problema


No es posible crear un antivirus 100% infalible. Ante cualquier algoritmo de deteccin de virus, es posible crear un programa que lo vulnere. La deteccin universal de virus es un problema indecidible.

Qu es un virus?
Origen: modelo terico de Von Neumann. + Los "Autmatas de Celdas". + El "Constructor Universal".

Teora de larecursin
Programas autorreproducibles

Autmatas de Celdas

Constructor Universal

Intrprete

Descripcin del autmata

String de datos

Decidibilidad
Algoritmo:secuencia ordenada de instrucciones. Mquinas de Turing:modelos abstractos de cmputo. Procesan datos mediante algoritmos. Datos Mquina de Turing Estado aceptacin rechazo bucle
decidible indecidible

Infeccin por virus


1980: Jrgen Kraus (U. de Dortmund) asimil el concepto de virus informtico al de virus biolgico. 1984: Fred Cohen (U. de California) propugn la idea de que un virus se copia a s mismo en otro archivo y provoca que ste, a su vez, haga lo mismo. Sistemas invulnerables: slo los que sean cerrados. 1989: William Dowling (U. de Philadelphia) propone una nocin ms amplia: virus es todo programa que modifique al sistema operativo de forma indeseada.

Deteccin de virus
Deteccin: una vez el programa est presente en el sistema. Teorema de Rice: dada una propiedad no trivial, no es computable determinar si una funcin la posee o no. Conclusin 1: dados dos programas, no es posible determinar si ambos producirn el mismo resultado al procesar idnticas entradas. Conclusin2: no es posible determinar a priori si un programaes virus o no.

Antivirus actuales
El anlisis se realiza a posteriori: Comparar el cdigo de un programa con caractersticas de virus conocidos Detectar intentos de acciones consideradas "sospechosas" (modificar zonas reservadas de memoria, escribir en archivos ejecutables, etc.)

Es imposible analizar programas para detectar si son virus, garantizando que, a la vez, no se esparcir una infeccin.

Demostracin de Dowling
Condicin para que un virus infecte a un sistema: que aqul modifique al sistema operativo de ste en forma indeseada.

Esto es: Dado un programa P y una entrada x, si durante la ejecucin de P(x) se altera el sistema operativo, se dice que P es un virus, o que P no es seguro bajo x.

Suponiendo la existencia de un antivirus universal: Seguro siP, con la entrada x, es seguro AU(P,x) = No seguro en caso contrario Un programa puede actuar consigo mismo como entrada (recursividad), por lo que AU podra recibir a (P,P). Podra escribirse a un programa que invoque a AU: Escribe "Hola mundo" si AU(P,P) = No seguro D(P) = Corrompe el S.O. en caso contrario

Si AU retorna "Seguro", entonces D ejecuta la instruccin que corrompe el S.O., con lo que AU habr arrojado un diagnstico incorrecto. Si AU retorna "No seguro", entonces D no efecta actividad maliciosa y slo imprime un texto por pantalla, con lo que el diagnstico de AU vuelve a ser incorrecto.

Conclusiones
Para evitar el ingreso de virus, el sistema debe ser cerrado y de slo lectura. En presencia de un potencial virus, es imposible determinar si es seguro o no mediante el anlisis en busca de propiedades que lo caractericen como virus. Dado un programa antivirus universal, siempre ser posible escribir un virus que lo burle.

También podría gustarte