MÉTODOS DE DETECCIÓN


a. Test de la longitud de los archivos
Cuando un virus se instala en un programa, por lo general aumenta su tamaño, delatando su presencia. Efectivamente, si el tamaño de un archivo aumenta sin que usted lo modifique, puede sospechar que está en presencia de un virus. Algunos nombres de virus son simplemente la longitud del código complementario en bytes que introducen en los programas.
Por consiguiente, se puede registrar en un archivo especial la longitud de todos los archivos sensibles. Luego se comparará la nueva longitud de los archivos a la precedente. Si hay una divergencia, hay que tenerla en cuenta: ¿usted es el autor de esa modificación? Si no, puede pensar en la existencia de un virus.
Esta fórmula no funciona si el virus se conforma con reemplazar el código del vector por su propio código, de manera tal que no modifica la longitud del archivo. En ese caso, hay que aplicar un método más poderoso que implique un cálculo matemático.
El proceso de verificación del tamaño de un archivo en este caso se basa en el cálculo de un valor de control aplicando los códigos de redundancia cíclica, o CRC:
  Se calcula un polinomio binario característico del archivo y se lo divide por otro polinomio de valor convenido. El resto constituye el valor de control.
  La menor modificación del archivo, aunque sólo se trate de una inversión de dos caracteres, da un valor de control diferente.
En la práctica, se calculan valores de control para todos los archivos, y se los registra.
Luego se vuelve a realizar el cálculo y se comparan los resultados nuevos a los precedentes.
Cualquier divergencia puede indicar la presencia de un virus, pero corre por su cuenta averiguar en qué punto se encuentra.
Observe que el simple cambio de una clave de acceso, o una modificación del archivo Autoexec.bat, modificará el valor de control.
Este principio permite que un detector descubra la presencia de algunos virus, inclusive de virus desconocidos.
Los programas de detección de virus proceden de este modo; algunos detectores más poderosos crean su propio algoritmo de cálculo de valor de control, denominado "marca o firma del programa". Y mejor aún, para poner en jaque a virus particularmente perversos, el programa antivirus puede recurrir a un generador de divisor polinómico (es el caso del V~Analyst, por ejemplo).
b. La fecha de los archivos
Muchos virus modifican la longitud de los archivos contaminados pero sin cambiar la fecha.
En cambio el DOS modifica siempre la fecha de un archivo en el que se acaba de trabajar para actualizarlo. Esto sugiere un segundo método de detección.
Si comprobamos que la longitud o el valor de control de un archivo cambió mientras que la fecha sigue siendo la misma, es probable que un virus lo haya atacado. Por lo general, los detectores de virus aplican este método.
Obsérvese que existen virus que modifican también la fecha o la hora, algunos las llevan premeditadamente a valores incorrectos, por ejemplo 62 segundos, o un siglo más.
c. La marca de los virus
Un virus no es más que un código informática. Puede contener una secuencia típica de código que indica su presencia y que se puede detectar. Es lo que denominamos su marca.
Puede tratarse de varios bytes representativos, de una cadena de caracteres, del texto del mensaje que el virus presenta en pantalla, etc.
Para la identificación de los virus se puede proceder realizando un listado de las "marcas" de todos los virus conocidos, y luego buscando en el disco la presencia de estas marcas, comparando los códigos registrados en el disco. Si se encuentran dos cadenas idénticas significa que se está en presencia de un virus.
Esta búsqueda de marcas puede también apuntar a la memoria central y detectar virus instalados en forma residente al inicializar la computadora. Es un método muy eficiente, pero evidentemente sólo puede aplicarse a virus conocidos y debidamente repertoriados. Es ineficaz si el virus es un mutante, que modifica la forma en que quedó registrada su marca, en el transcurso de su existencia.
d. El caso de los virus furtivos
Acabamos de examinar algunos de los principales métodos de detección de virus. Son los métodos que aplican los programas antivirus. Los autores de virus los conocen muy bien, y por lo tanto han querido desafiarlos fabricando "virus furtivos" ("stealth", en inglés).
Así como los aviones furtivos Fll7 americanos reducen su marca en el radar al punto de resultar indetectables, los virus furtivos también ponen en acción algunos métodos sutiles para pasar inadvertidas. El primer caso es el del virus que infecta un archivo disimulando su aumento de tamaño. Para esto, utilizan dos métodos:
  El primero es el llamado pasivo. El virus se instala en una zona reservada y disponible del programa, en una pila o un búfer, por ejemplo, para no modificar la longitud del archivo en cantidad de bytes, y no alterar de ninguna manera el código mismo del programa. Cuando se ejecuta el programa, el virus se ejecuta y libera este espacio que el programa ahora necesita, para luego volver a instalarse allí al finalizar la ejecución.
  El segundo es el método activo. Cuando se consulta la longitud de un archivo en el DOS, se lanza la interrupción 2lH, función 42H. El virus desvía este llamado de interrupción, examina si el archivo está infectado y si la respuesta es sí, le resta su tamaño al tamaño real del archivo. De este modo, el tamaño no parece haberse modificado.
Y los hay mejores aún: algunos virus son capaces de disimular las modificaciones realizadas a un archivo, proporcionando al sistema un archivo limpio, desinfectado, cuando se realiza un control. Para esto el virus hace una copia de seguridad de las partes modificadas del programa y luego desvía prácticamente todas las interrupciones del DOS relativas a los archivos; si se quiere analizar el archivo infectado, el virus devuelve la imagen del programa sano. Ni siquiera una verificación de muy bajo nivel, en hexadecimales, por ejemplo, será capaz de revelar la presencia de ese virus. Las verificaciones clásicas fracasan: longitud del archivo, valor de control, etc. Hay que aplicar otros métodos entre los cuales se encuentra el análisis de la marca, siempre que pueda realizarse, el control de la memoria central para destruir la parte residente del virus, etc. Frodo es un ejemplo de este tipo de virus furtivos.
Otras veces, el virus desplaza informaciones del inicio de un disco para tomar su lugar; si luego se pide la lectura de un sector infectado, el virus restablecerá el orden de cosas anterior, desviando la interrupción l3H del BIOS.
Además, puede instalarse en una zona de sectores que declarará defectuosos, y por lo tanto inutilizables, en la FAT. Su detección será más dificultosa. 0 si no, el virus modifica su marca encriptándola, o encriptando su código, lo que lo hará difícil de identificar. Existe una guerra abierta entre las medidas contra los virus y los autores de virus que perfeccionan sus creaciones diabólicas permanentemente.
Por último, diremos que algunos virus son mutantes. Su código contiene instrucciones que, con una selección aleatoria, les confieren un comportamiento diferente. Es el caso del virus 1260. También suele mencionarse el caso de virus defensivos que reaccionan a cualquier acción de un antivirus para desafiarlo e incluso para volverlo nocivo