Anda di halaman 1dari 13

La inexistencia del antivirus ideal y la deteccin universal de virus.

Materia: Ciencias de la Computacin II Profesoras: Sabrina Pompei Tamara Ahmad Alumna: Patricia E. Miguel Ao: 2011 Tema: El problema del antivirus

ndice

Introduccin ..........................................................................................2 Resumen................................................................................................2 Palabras clave.......................................................................................2 El concepto de virus..............................................................................3 El concepto de decidibilidad..................................................................4 La infeccin por virus informticos........................................................5 Deteccin de virus informticos.............................................................6 La imposibilidad de la deteccin universal de virus..............................7 Conclusin.............................................................................................9 Fuentes..................................................................................................10

Introduccin Un antivirus es un programa capaz de determinar si la ejecucin de un cdigo puede ser maliciosa o no. Pero, es posible detectar cualquier cdigo malicioso? En este trabajo se demostrar que la nica forma de detectar a todos los virus sera pudiendo analizar sus caractersticas previamente y en forma general, y que es imposible detectar virus de una forma universal, es decir, para cualquier caso, ya que dado un antivirus con estas caractersticas, siempre ser posible escribir un programa que lo vulnere y sortee su deteccin. Por todo esto puede decirse que el antivirus infalible no podr nunca ser creado.

Resumen El presente trabajo comienza por determinar el concepto de virus y el por qu de la utilizacin de este trmino, as como el origen de los virus informticos. Tambin se introducen los conceptos de algoritmo, mquina de Turing y decidibilidad, que sern citados a lo largo del texto. Luego, se desarrolla la definicin de infeccin por medio de virus informticos, para pasar a continuacin a la deteccin de stos, demostrando la imposibilidad de que dicha deteccin se haga en forma genrica, para cualquier cdigo analizado. Para la demostracin se utilizan postulados del teorema de Rice, y conceptos de computabilidad y decidibilidad. Dicha demostracin ha sido concebida por el autor William F. Dowling y es expuesta y analizada en este trabajo.

Palabras clave Virus, constructor universal, antivirus universal, deteccin, decidibilidad, teorema de Rice, infeccin, seguridad informtica. 2

El concepto de virus La primera mencin acadmica a los virus informticos surge de John von Neumann (1903-1957), un matemtico norteamericano que fue el inventor de la primera computadora con un programa flexible, en 1952. En su serie de conferencias en la universidad de Illinois, "Theory and Organization of Complicated Automata" (teora de la organizacin de autmatas complejos), luego publicadas en su ensayo Theory of Selfreproducing Automata (teora de los autmatas autorreproducibles), von Neumann compara a los autmatas artificiales (computadoras) con los autmatas naturales (por ejemplo, el sistema nervioso humano) y describe cmo un programa de computadora puede ser programado para replicarse a s mismo. Las investigaciones de Von Neumann comenzaron en los aos 40, cuando dise su constructor universal (el cual describi en el trabajo citado anteriormente), que funcionara sin la intervencin de una computadora, y que se basaba en lo que antes haba definido como autmatas de celdas (cellular automaton), tambin llamados arreglos iterativos. Un autmata de celdas es un modelo discreto que consiste en una grilla de cualquier dimensin compuesta de celdas, las cuales pueden adoptar un nmero finito de estados (por ejemplo: encendido y apagado), y a las cuales se les asigna uno de estos estados como paso inicial (configuracin). Posteriormente, se aplica una funcin matemtica que hace variar los estados de las celdas de acuerdo al estado en que estuviera previamente cada una de ellas y sus celdas vecinas (por ejemplo, se puede determinar que la celda se ponga en encendido si al menos dos de las celdas vecinas se encuentran en este mismo estado, y apagado en caso contrario). De esta forma, de un autmata se deriva otro. El constructor universal de Von Neumann consista en un autmata de celdas de 29 estados (que representaban los estados de una seal y operaciones lgicas), una cinta con un determinado patrn de celdas impreso en ellas y una cabeza escritora. De esta forma, la mquina sera capaz de construir un nuevo autmata escribiendo un nuevo patrn de estados, reproducindose a s misma. Esto se encuentra ntimamente ligado a la teora 3

de la recursin, que trata de la capacidad de una mquina (o un algoritmo) de autorreplicarse. La construccin terica de Von Neumann fue el inicio de los programas que podan auto-reproducirse y, en el ao 1980, Jrgen Kraus (de la Universidad de Dortmund) escribi en su tesis, Selbstreproduktion bei Programmen (autoreproduccin de programas), que los programas pueden comportarse de manera similar a los virus biolgicos. De aqu la utilizacin del trmino.

El concepto de decidibilidad Poder decir que un problema es o no decidible requiere primero hacer referencia a la nocin de algoritmo como una secuencia ordenada de instrucciones; nocin intuitiva que se concreta y delimita con la introduccin de las mquinas de Turing. stas son modelos abstractos de cmputo, de propsito general que, en teora, pueden realizar todo lo que una computadora puede hacer. Una mquina de Turing funciona procesando una entrada (la informacin que se le proporciona para trabajar) y llevando adelante ciertos pasos definidos (el algoritmo), y este procesamiento puede llevarla a tres estados diferentes: aceptacin, rechazo o bucle. Si la mquina permanece en un bucle, entonces jams finaliza su procesamiento, haciendo que nunca se llegue a un estado concreto de aceptacin o de rechazo. De esta forma, puede definirse la decidibilidad de un problema de acuerdo a si una mquina de Turing, que recibe como entrada al problema en cuestin, llegar a una decisin o permanecer en un bucle. Aquellos problemas que pueden resolverse mediante un algoritmo y una mquina de Turing que los procese (sea la solucin afirmativa o negativa aceptacin o rechazo), son problemas decidibles. Los que dejan a la mquina de Turing en un estado de bucle infinito, sern llamados indecidibles.

La infeccin por virus informticos En la obra de 1984 de Fred Cohen, de la Universidad del Sur de California, Computer Viruses - Theory and Experiments (virus informticos teora y experimentos), el autor observa que es imposible probar que un sistema de proteccin contra virus sea fiable al cien por ciento. Agrega, como ejemplo, que la deteccin de ataques de tipo DoS (denial of service denegacin de servicio) requerira poder detectar programas detenibles (halting programs), pero ha sido demostrado que es imposible determinar si un programa se detendr o no (la ya conocida indecidibilidad del halting problem), por lo que la deteccin universal de virus es tambin indecidible. De acuerdo a la descripcin de Cohen, los virus son programas que tienen la capacidad de infectar a otros programas, modificndolos para incluir en ellos una copia mejorada de s mismos. As, el virus puede diseminarse a travs de todo un sistema o una red, causando que cada programa afectado por l acte a su vez como virus, esparciendo la infeccin. Asimismo, explica que, para que un sistema no sea vulnerable a los virus, debe ser aislado: no debe permitir la posibilidad de alterar sus programas ni que la informacin sea interpretada o modificada. De esta forma, un virus no tendra posibilidad de producir una infeccin. Pero este tipo de sistemas son prcticamente intiles para cualquier fin, o slo son implementados para casos muy concretos (por ejemplo, mostrar datos de una base de datos, sin modificar su informacin). Por otra parte, William Dowling, del Departamento de Matemtica y Ciencia de la Computacin de la Universidad de Drexel, Filadelfia, propone una nocin ms amplia de virus, definindolo como aquel programa que es capaz de alterar (indebidamente) el cdigo del sistema operativo. Este autor propugna que es innecesario que se exija un comportamiento determinado para que un virus sea considerado tal. No sera, as, un requisito para que exista infeccin el hecho de que el virus inserte su propio cdigo en otros programas.

Deteccin de virus informticos Dejando de lado la posibilidad de prevenir el ingreso de programas virus, es dable pensar en la manera de detectar las infecciones una vez el programa se encuentra presente en el sistema. Para poder determinar que un programa es un virus, se requerira determinar primero si ese programa es capaz de infectar un sistema (en el sentido amplio del trmino infeccin). Este es un problema indecidible, ya que es imposible encontrar un programa filtro que no pueda ser burlado y que logre distinguir con precisin a un virus de cualquier otro tipo de programa, ante cualquier entrada que pueda recibir. Esto es una conclusin del Teorema de Rice, que postula que, dada una propiedad no trivial, no es computable determinar si una funcin la posee o no. Se llama no triviales a aquellas propiedades que existen en algunas funciones y en otras no. Es decir que, dada la propiedad A no trivial, existe al menos una funcin F1 que la posee y una funcin F2 que no. Esto significa que no existe un algoritmo que pueda siempre decidir, en forma universal, si la entrada que recibe tiene o no una determinada propiedad no trivial. Del teorema de Rice se sigue, como conclusin, que es imposible construir un programa que pueda determinar, en general, si dos programas son equivalentes; esto es, que ante las mismas entradas arrojan los mismos resultados. Podra ejemplificarse esto con un programa general que permitiera corregir exmenes de una materia de programacin de una universidad: el profesor crea un programa que resuelve el enunciado del examen y luego proporciona como entradas las resoluciones que han elaborado los alumnos para que se las compare y decida si la solucin del alumno es igual a la del profesor o no. Este problema puede ser catalogado como indecidible. Pero no debe confundirse este problema indecidible con el problema decidible de crear un programa particular que determine si otros dos programas son equivalentes ante entradas concretas y con salidas concretas. De esto se sigue que es imposible determinar si un programa tiene o no una determinada caracterstica (por ejemplo, la posibilidad de autorreproducirse y producir una infeccin) ya que, de acuerdo al teorema de Rice, no es posible crear un programa el cual, pasndole como parmetros el cdigo de un 6

programa y una funcin computable, calcule correctamente si el programa computa adecuadamente esa funcin.

La imposibilidad de la deteccin universal de virus Una computadora ejecuta los programas que corren en ella tomndolos como subprocesos de su propio sistema operativo, que es un programa lgicamente independiente del resto. De esta forma, puede decirse que un virus, en realidad, infecta al sistema operativo de la computadora. Para que un programa pueda esparcir un virus en un sistema operativo, este ltimo debe ser modificado por aqul durante su ejecucin. Es decir, dado un programa P y una entrada x, si durante el clculo de P(x) se altera el sistema operativo, entonces P es un virus (o, lo que es lo mismo, no es seguro bajo la entrada x). El sistema operativo comenzara, entonces, a diseminar el virus hacia otros programas que corren en l, insertndoles cdigo malicioso o efectuando operaciones no autorizadas por el usuario (por ejemplo, borrar informacin). Los antivirus actuales no son capaces de detectar en forma universal un programa de estas caractersticas. Su tarea se limita a buscar virus que ya se han esparcido o a identificar actividad anormal en la computadora. Es imposible crear un antivirus ideal que analice cualquier programa bajo cualquier entrada posible y lo identifique como peligroso o como seguro, ya que no es viable la existencia de un programa que pueda analizar la informacin que recibe como entrada para verificar si contiene virus, garantizando a la vez que no est esparciendo un virus l mismo. La demostracin de esto fue hecha por William Dowling en su artculo There Are No Safe Virus Tests, del ao 1989. Para poder deducir que el programa P, bajo la entrada x, es un virus, debe determinarse que P es capaz de infectar a otros programas, modificando el sistema operativo. Esto equivale a decir que la ejecucin de P(x) altera (maliciosamente) al sistema operativo. Si no lo hace, entonces P es seguro para todas las entradas (ya que x representa a una entrada al azar).

Suponiendo la existencia de un antivirus universal que pueda determinar si P es seguro, se tendra: Seguro AU(P,x) = No seguro en caso contrario. si P con la entrada x es seguro

Seguro (P,x)

AU
No seguro

Este antivirus universal es capaz de recibir como entradas a un programa y los datos que ste recibe a su vez como entrada, y determinar si dicho programa es seguro. Pero un programa puede hacer las veces de su propia entrada (recursividad), de modo que podra evaluarse al antivirus universal con una entrada (P,P). Tambin se puede suponer la existencia de un programa D que recibe a P como entrada e invoca al antivirus universal. Si el antivirus universal determina que la entrada es no segura, se escribe un mensaje en pantalla; pero si el resultado es que la entrada es segura, D procede a corromper (modificar) el sistema operativo: Escribe Hola mundo D(P) = Corrompe el S.O. en caso contrario. si AU(P,P) = No seguro

Seguro (P,P)

Corrompe SO

AU
No seguro

D
Hola mundo

Luego, podra preguntarse si la ejecucin de D es segura bajo la entrada D (el programa D actuando en forma recursiva). Pero si la llamada al antivirus universal AU recibiera como entrada a D(D), no podra nunca arrojar un resultado correcto, porque D efectivamente corrompe al sistema operativo en el

caso de que el antivirus universal devuelva como resultado que D(D) es seguro, con lo cual se llega a una contradiccin. Por otra parte, si D no ejecuta cdigo malicioso (es decir, slo imprime Hola mundo, sin corromper el sistema operativo), el resultado del antivirus universal vuelve a ser incorrecto, ya que estara determinando que la ejecucin de D(D) es insegura cuando no lo es.

Conclusin De todo esto se sigue, en primer lugar, que para evitar el ingreso de un programa virus en un sistema, ste debe ser cerrado y aislado, lo que lo torna intil para la mayora de los fines. Pero, una vez presente un programa en un sistema, es imposible decir si este programa ser o no un virus a travs de un anlisis a priori. La nica forma de detectar si un programa es un virus es a posteriori, para cada caso particular, comparando el cdigo del mismo con el cdigo de programas virus ya conocidos y analizados previamente, o individualizando patrones considerados potencialmente perjudiciales (por ejemplo, que un programa intente escribir en un archivo ejecutable); pero no existe una forma de determinar si un programa es o no un virus en forma universal, es decir, para todos los casos. Esta imposibilidad de deteccin universal viene dada por la indecidibilidad de la cuestin de si un elemento posee o no determinada propiedad. En este caso, lo que no es decidible es la cuestin de si un programa posee o no determinada caracterstica que lo convierte en un virus, en forma general. Como consecuencia de la indecidibilidad del problema del antivirus, dado un programa que verifique la condicin de seguro o inseguro de un determinado cdigo, siempre se podr escribir otro programa que lo burle.

Fuentes

1. DOWLING, WILLIAM F., There are no safe virus tests, American Mathematical
Monthly, volumen 96 nmero 9, ao 1989, Department of Mathematics and Computer Science, Drexel University, Philadelphia, Mathematical Association of America, ISSN 0002-9890, p. 835-836, http://www.jstor.org/stable/2324850, http://vxheavens.com/lib/awd00.html.

2. COHEN, FRED, Computer Viruses - Theory and Experiments, Journal,


Computers and Security archive, volumen 6, edicin 1, ao 1987, Elsevier Advanced Technology Publications Oxford, Reino Unido, ISSN 0167-4048, http://all.net/books/virus/index.html.

3. MORALES LUNA, GUILLERMO, Computabilidad y complejidad, Departamento


de Computacin CINVESTAV-IPN, Mxico D.F., ao 2008, captulo 4: Teora de la recursividad, p. 73-81, captulo 5: Teorema de Rice, p. 83-86,

http://delta.cs.cinvestav.mx/~gmorales/ComplexConf/complex.pdf.

4. VON NEUMANN, JOHN, Theory of self-reproducing automata, BURKS,


ARTHUR W., University of Illinois Press, Urbana and London, ao 1966, ISBN 978-0598377982, part one - fourth lecture: The role of high and extremely high complication, part one - fifth lecture: Re-evaluation of the problems of

complicated automata problems of hierarchy and evolution, p. 64-87.

10

5. LOWTHER, JOHN L., SHENE, CHING-KUANG, Toward an intuitive and


interesting theory course: the first step of a road map, Journal of Computing Sciences in Colleges, ao 2004, volumen 20, nmero 1, Department of Computer Science, Michigan Technological University, Houghton, ISSN:1937-4771, captulo 6: A universal program, p. 124-135.

6. SIPSER, MICHAEL, Introduction to the Theory of Computation, Thomson Course


Technology, Massachusetts Institute of Technology, segunda edicin, ao 2006, ISBN 0-534-95097-3, captulo 3: The Church-Turing Thesis, p. 137-165, captulo 4: Decidability, p. 165-173.

7. LA SINGULARIDAD DESNUDA, Turing en una cscara de nuez: Teorema de


Rice (o por qu ningn antivirus ser fiable al 100%),

http://singularidad.wordpress.com/2007/05/07/turing-en-una-cascara-de-nuezteorema-de-rice-o-porque-ningun-antivirus-sera-fiable-al-100/

8. WIKIPEDIA,

Von

Neumann

universal

constructor,

http://en.wikipedia.org/wiki/Von_Neumann_universal_constructor

9. WIKIPEDIA, Cellular automaton, http://en.wikipedia.org/wiki/Cellular_automata

10. VICO, FRANCISCO J., Apuntes, Departamento de Lenguajes y Ciencia de la


Computacin, Universidad de Mlaga, Espaa, 2004, captulo VII. 4: Otros problemas recursivamente insolubles,

http://www.lcc.uma.es/~fjv/UMA/LCC/web/Teaching/TALF/segundo_cuatrimestre/a puntes.pdf

11. Checking

for

computer

viruses,

http://www.lcc.uma.es/~fjv/UMA/LCC/web/Teaching/brainfood/viruses.htm

11

12. DEL ARCO GONZLEZ, CARLOS, DAZ CORCHERO, MIGUEL NGEL,


ANSOLA VEGA, JACINTO, AYUSO MRQUEZ, FERMN, Funciones

computables, Epistemowikia, Revista Hiperenciclopdica de Divulgacin del Saber, segunda poca, ao VI, volumen 5, nmero 4, ao 2011,

http://campusvirtual.unex.es/cala/epistemowikia/index.php? title=Funciones_computables

12

Anda mungkin juga menyukai