Todos los antivirus realizan trabajos similares,
pero difieren bastante en la manera de ejecutarlo. Las herramientas antivirus
pueden clasificarse en cinco categorías fundamentales:
a) Buscadores
Los buscadores, como su propio nombre indica, son programas diseñados para explorar los ficheros y el sector de arranque para intentar encontrar algún virus conocido. Su forma de actuar se basa en buscar determinadas marcas o señales que puedan conllevar a la detección de un virus. Los buscadores tienen ciertas ventajas pero también ciertos inconvenientes.
Entre las ventajas de los buscadores destacan la simplicidad de su funcionamiento, ya que son programas rápidos y fáciles de usar, y la facilidad que poseen para añadir nuevos virus a su lista de virus una vez conocidas sus marcas. Entre sus inconvenientes, que sólo son eficaces para detectar virus conocidos y que no detectan muchos virus que son mutaciones de otros o que utilizan métodos de cifrado y polimorfismo. Además, existe un exceso de buscadores mal documentados y de baja calidad.
Existen varios tipos de buscadores, según las características utilizadas en la búsqueda. Así, podemos distinguir entre la búsqueda de cadenas, búsqueda deductiva, o búsqueda de excepciones.
Búsqueda de cadenas: cada virus contiene en su código una identificación. Se trata de una cadena de caracteres que lo identifican de forma exclusiva, a esta cadena se la conoce como la firma del virus, que a su vez es la que utilizan los propios virus para detectar su presencia en un fichero y evitar la reinfección. Por eso, los antivirus incorporan un fichero con todas las cadenas de los virus conocidos denominado "Archivo de Identificadores de Virus". Cuando se disponen a analizar un archivo, comprueban si su código contiene alguna de estas cadena. Si no es así, se considera como un archivo limpio. Por el contrario, si detectan alguna, avisan de la posibilidad de que el archivo se encuentre infectado, identificando el posible virus.
Esto implica que los antivirus tengan que realizar la búsqueda de dichas cadenas en secciones concretas y no muy extensas del fichero analizado. Del mismo modo deben tener en cuenta que pueden existir dos variantes de un mismo virus, con la misma cadena a buscar, o pueden aparecer nuevos virus cuyas firmas aún no se conocen. Esto hace necesario que los programas antivirus combinen esta técnica con otras técnicas más precisas.
Búsqueda deductiva: una de las técnicas que se utilizan adicionalmente a la búsqueda de cadenas es la búsqueda deductiva. Ésta consiste en la observación de ciertas propiedades concretas en cada uno de los ficheros que son analizados. Existen propiedades que siempre se dan en los ficheros infectados. Cuando la búsqueda deductiva detecte alguna de ellas, confirmará que el fichero se encuentra infectado. Las propiedades más utilizadas en este tipo de análisis suelen ser la estructura interna de los ficheros, la fecha, la hora de dicho fichero y los atributos que tiene asociados (sólo lectura, escritura, sistema, oculto,...).
Búsqueda de excepciones: otra técnica utilizada es la búsqueda de excepciones. Cuando un virus utiliza una determinada cadena (firma) para realizar una infección pero en la siguiente emplea otra distinta (polimorfismo), es difícil detectarlo mediante la búsqueda de cadenas. Cuando esto ocurre el programa antivirus intenta la búsqueda de un determinado virus en concreto, atendiendo a sus propiedades.
b) Detectores expertos
Los detectores expertos se utilizan sobre todo como complemento de los buscadores, debido a la imposibilidad de éstos a la hora de detectar virus desconocidos. Su función es detectar cualquier virus, basándose en las características que diferencian a los virus del resto de los programas. Para conseguir este objetivo pueden utilizarse varias estrategias, lo que da lugar a tres tipos básicos de detectores expertos.
Mediante análisis de comportamiento:
su estrategia consiste en vigilar el comportamiento de todos los programas
que se ejecutan, con el fin de detectar los intentos de realizar acciones
sospechosas. Entenderemos por acciones sospechosas aquellas que son típicas
de los virus pero muy infrecuentes en programas no infectados. Por ejemplo:
Cuando se detecta una acción sospechosa,
se avisa al usuario y se le pregunta sobre la posibilidad de que dicho
programa pueda ejecutar dicha acción, o si por el contrario es algo
inusual, lo que daría lugar a un posible virus.
Los principales inconvenientes de este tipo de detectores
son los siguientes:
Mediante control de modificaciones: se
basa en que todos los virus deben modificar el archivo o el sector de arranque
al infectarlo. Por eso, estos detectores chequean periódicamente
todos los ficheros ejecutables y sectores de arranque en busca de modificaciones
que puedan delatar la presencia de algún virus. Para ello deben
guardar cierta información sobre los ficheros susceptibles de ser
infectados antes de que lo sean. Esta información puede incluir
su tamaño, un resumen de su contenido e incluso las primeras instrucciones
que ejecutan.
Ambos tipos de detectores expertos comparten ciertos
inconvenientes:
Heurísticos: cuando no existe información
que permita la detección de un nuevo o posible virus desconocido,
se utiliza esta técnica. Los detectores heurísticos analizan
el funcionamiento de los programas sin ejecutarlos en busca de acciones
sospechosas. Para ello buscan el punto de entrada de los programas, desensamblan
parte de su código y emulan su ejecución estudiando su comportamiento.
Además, analiza los ficheros obteniendo información sobre
cada uno de ellos (tamaño, fecha y hora de creación, posibilidad
de colocarse en memoria,...etc.). Esta información es contrastada
por el programa antivirus, quien decide si puede tratarse de un virus,
o no.
Debido a su gran potencia de análisis y sospecha de situaciones extrañas, este tipo de técnica antivirus podría presentar alarmas (falsas alarmas) que hagan referencia a posibles virus, cuando realmente éstos no existen. Esto es debido a que el análisis de cada fichero se realiza mediante la inspección de secciones del mismo que tengan características o realicen funciones que no son habituales. Algunos antivirus cuentan con esta técnica de análisis que se puede llevar a cabo de forma adicional, cuando el usuario así lo indica. En tal caso, el antivirus realizará sus búsquedas habituales y además, aplicará el análisis heurístico. Para ello, accederá al código del programa que se desea analizar y lo ejecutará paso a paso con la intención de detectar posibles acciones que, en un principio, el programa analizado no debería realizar, o modificaciones con las que el archivo analizado no debería contar. Si encuentra algo sospechoso, avisa de ello. Indica que podría tratarse de un virus o que existen cambios sustanciales e irregulares en el archivo analizado.
En definitiva, este tipo de análisis puede detectar tanto virus conocidos, como virus desconocidos. Esto es así ya que el análisis no se basa las en características particulares de ningún virus, sino a características comunes que todos los virus pueden tener (todos los virus utilizan grupos de técnicas similares, que sí pueden ser detectadas).
Por todo ellos, es aconsejable que el resultado de los análisis heurísticos se tome con precaución. Esto quiere decir que debemos analizar las acciones que deseamos llevar a cabo en consecuencia.
c) Desinfectadores
Este mecanismo es utilizado sobre todo por usuarios particulares, que cuando detectan un virus intentan evitar que dañe el trabajo realizado. Uno de los medios para conseguirlo es eliminar todas las copias del virus e intentar evitar que lleguen a activarse. Este es el objetivo de los desinfectadores.
Su funcionamiento se basa en el análisis detallado de las operaciones que cada virus realiza durante el proceso de infección. Con ello se pretende definir un algoritmo, específico de cada virus, que realice la transformación inversa, consiguiendo así la desinfección del fichero.
Este sistema presenta cuatro limitaciones fundamentales.
En definitiva, es imposible conseguir un desinfectador
automático perfecto. Algunos desinfectadores, por su parte, utilizan
métodos heurísticos con la intención de averiguar
el funcionamiento del fichero infectado para intentar reconstruir dicho
fichero.
El único método de desinfección que parece seguro es mantener una copia de seguridad del sistema no infectado, pero tiene el inconveniente de que no se puede afirmar que dicha copia no está infectada, en el caso de, por ejemplo, un virus que tenga un periodo de latencia largo.
d) Vacunas
El peligro de que un computador adquiera un virus existe siempre, incluso cuando se acaba de eliminar alguno de ellos, o cuando se acaba de escanear el sistema sin encontrar ninguna infección. Para combatirlo, se utilizan las vacunas , cuya función es evitar la entrada de virus en el sistema o, si los hay, evitar que éstos se activen.
Existen tres estrategias básicas de vacunación:
Mediante firma: este método se basa en incluir la firma de determinado virus en el fichero que se desea proteger. De este modo, cuando el virus pretenda infectar dicho fichero, "creerá que ya está infectado", y no lo reinfectará, manteniendo así el archivo totalmente íntegro y sano.
El mayor inconveniente de este método es que sólo se pone en práctica si se desea proteger un determinado archivo de un determinado virus, ya que existen demasiados virus (algunos de ellos, como los polimórficos, con diferentes firmas), como para incluir en un fichero todas las firmas. Además, no sirve para virus no conocidos, ya que obviamente, no se conoce su firma, e incluso tampoco para un determinado tipo de virus los cuáles no se preocupan de buscar su firma, y reinfectan los ficheros si es necesario.
Mediante búsqueda: este método es el más utilizado por los usuarios domésticos. Consiste en instalar un buscador residente que explore los ficheros cada vez que se vayan a ejecutar, o cada vez que se introduce un nuevo disco. Si el buscador encuentra un virus conocido, puede elegir entre abortar la ejecución del programa infectado o, si se trata de un virus conocido profundamente, intentar su desinfección previamente a su ejecución.
Este método también tiene algunos inconvenientes:
Mediante control de integridad: es muy
similar al anterior. Consiste en instalar un controlador de integridad
residente, para conseguir protección permanente. Para poder utilizarlo
debemos disponer de información relativa a todos los ficheros. Así,
cada vez que se vaya a ejecutar un fichero, a abrir, cerrar,...(tanto en
el sistema como desde Internet), el controlador comprueba si posee información
sobre dicho fichero. En caso negativo, se puede sospechar del fichero.
En caso afirmativo, comprueba si se han producido modificaciones desde
el último chequeo, y si es así informa de ello al usuario,
para que aplique algún otro método para asegurarse de que
no es un virus.
Si la información acerca de los ficheros se guarda dentro del propio fichero (se añade la vacuna al código del fichero vacunado), de tal forma que al ejecutarse él mismo comprueba si ha sufrido algún cambio, se denomina vacunación interna, mientras que si la información se guarda en un fichero especial y desde él se contrasta la información con al obtenida en el análisis actual, se denomina vacunación externa.
e) Bloqueadores
Este método es tan sencillo como evitar la modificación de cualquier código ejecutable. Es fácil proteger los disquetes contra escritura (evitando su infección), pero el problema reside en hacer lo mismo para el disco duro, para lo que hace falta una herramienta especial.
Los bloqueadores son las herramientas que permiten
proteger contra escritura todo o parte del disco duro. La principal ventaja
de estas herramientas es que sirven tanto para todo tipo de virus, como
para aquellas amenazas que no llegan a serlo(gusanos, bombas...). Cuando
los bloqueadores se implementan por software presentan un par de inconvenientes.
En primer lugar, los virus de sector de arranque pueden cargarse antes
que ellos, y en segundo lugar son inútiles ante técnicas
de acceso directo al hardware.
Además de estas técnicas, se fomenta también la investigación. Por ejemplo, existen virus que podrían haberse colocado y activado en la memoria (RAM) del ordenador. Éstos podrían no haber sido detectados en un análisis normal de la memoria. El mecanismo de investigación consiste en "provocar" al virus para que intente realizar una infección. De este modo se podrán descubrir también nuevos virus y averiguar las artimañas para realizar dicha tarea. Entonces el virus podrá ser detectado. En tal caso, el programa antivirus tendrá en cuenta cuáles son las actividades que lleva a cabo y cómo las realiza.