ESTRATEGIAS DE INFECCIÓN

    Debido a la gran capacidad de evolución que se les otorga, los nuevos virus nacen con el conocimiento de las técnicas utilizadas por las herramientas antivirus actuales y sabiendo cuáles son sus puntos débiles. En base a ello utilizan técnicas cada vez más complejas para ocultarse y evitar ser detectados. Algunas de las estrategias más utilizadas son las siguientes:

 
    Añadidura o empalme:  por este método el código del virus se agrega al final del archivo ejecutable a infectar, modificando las estructuras de arranque del archivo anfitrión de manera que el control del programa pase primero al virus cuando se quiera ejecutar el archivo. Este cambio de secuencia permite al virus realizar sus tareas especificas y luego pasar el control al programa para que este se ejecute normalmente. La principal desventaja de este método es que el tamaño del archivo infectado es mayor al original, lo que permite una fácil detección.

    Inserción: los virus que utilizan este método buscan alojarse en zonas de código no utilizadas o en segmentos de datos dentro de los archivos que contagian, de esta manera la longitud total del archivo infectado no aumenta. Este método, parecido al de empalme, exige mayores técnicas de programación de los virus para poder detectar las zonas posibles de inserción dentro de un ejecutable, por lo que generalmente no es muy utilizada por los programadores de virus informáticos.

 
    Reorientación: este método es una variante interesante del anterior. Bajo el mismo esquema se introduce el código principal del virus en zonas físicas del disco duro marcadas como defectuosas o en archivos ocultos del sistema. Estos códigos vírales, al ejecutarse, implantan pequeños trozos de código en los archivos ejecutables que infectan, que luego serán los que realicen las llamadas al código prioncipal. La principal ventaja de este método es que el cuerpo del virus, al no estar inserto en el archivo infectado sino en otro sitio oculto, puede tener un tamaño bastante grande, aumentando así su funcionalidad. La desventaja mas fuerte es que la eliminación de este tipo de infecciones es bastante sencilla. Basta con borrar archivos ocultos sospechosos o reescribir las zonas del disco marcadas como defectuosas.

 
    Autoencriptación: este es el método mas avanzado de contagio logrado por los programadores de virus. La técnica básica usada es la de inserción del código viral en un archivo ejecutable, pero para evitar el aumento de tamaño del archivo infectado, el virus compacta parte de su código y del código del archivo a infectar de manera que la suma de ambos sea igual al tamaño original del archivo. Al ejecutar el programa infectado actúa primero el código del virus descompactando en memoria las porciones previamente compactadas.

 
    La forma de actuar es sencilla: los programas antivirus se encargan de buscar determinadas cadenas de caracteres (lo que se denomina la firma del virus) propias de cada uno de los posibles virus. Éstos, por su parte, mediante la técnica de autoencriptación, pueden infectar de forma diferente en cada ocasión. Esto significa que el virus utilizará una cadena concreta para realizar una infección, mientras que en la siguiente infección utilizará otra distinta, dificultando así la tarea del antivirus. Por otro lado, el virus codifica o cifra sus cadenas para que al antivirus le sea difícil encontrarlo. Es decir, mediante una clave de cifrado y una serie de operaciones matemáticas, el virus se puede codificar a sí mismo, por lo que dificulta su decodificación para su análisis y/o detección. Además, el virus también puede descifrarse a sí mismo cuando le sea necesario para actuar. Generalmente, utilizan la misma clave para el cifrado que para el descifrado. Sin embargo, tienen un inconveniente considerable: los virus que utilizan este tipo de técnicas, emplean siempre la misma rutina o algoritmo de encriptación, con lo que "facilita" su detección(no se debe confundir el autocifrado(diferente en cada ocasión), con la rutina de encriptación(siempre la misma)).

 
    Dentro de los virus de autoencriptación, encontramos los virus polimórficos. Éstos, basándose en la técnica de autoencriptación, se codifican o cifran, de manera diferente en cada infección que realizan (su firma variará de una infección a otra). Si sólo fuese así estaríamos hablando de virus que utilizan la autoencriptación, pero adicionalmente dichos virus cifrarán también el modo (rutina o algotirmo) mediante el cual realizan el cifrado de su firma. Todo esto hace posible que un virus polimórfico sea capaz de crear ejemplares de sí mismo diferentes, de una infección a la siguiente, cambiando de "forma" en cada una de ellas. Las operaciones de cifrado se realizan generalmente mediante operaciones XOR (OR-Exclusive), donde a XOR b = a'b+ab'(b y no a, o a y no b).

 
    En este apartado vamos a incluir también otro tipo de estrategia, el sobrepasamiento o tunneling: se trata de una técnica especialmente diseñada para imposibilitar la protección antivirus en cualquier momento. Mientras el análisis permanente, o residente, del programa antivirus que se encuentre instalado intenta realizar detecciones, el virus actúa en su contra. Todas las operaciones que se realizan sobre cualquiera de los archivos son inspeccionadas por el antivirus mediante la interceptación de las acciones que el sistema operativo lleva a cabo para hacerlas posible. De la misma manera, el virus interceptará estas peticiones o servicios del sistema operativo, obteniendo las direcciones de memoria en las que se encuentran. Así el antivirus no detectará la presencia del virus. No obstante, existen técnicas antivirus alternativas que permiten la detección de virus que realicen este tipo de operaciones.

 
    El sistema de tunneling es bastante complicado, ya que hay que colocar el microprocesador en el modo paso a paso y trabajar con interrupciones. Además, este tipo de virus es capaz de obtener la dirección de memoria en la que originalmente se encuentran los servicios del sistema operativo. Esto le permite utilizar este tipo de servicios sin interceptar los utilizados por otros programas. Se incluyen en este apartado porque también se autocifran para evitar ser detectados. En un principio, los antivirus tratarán de localizar a los virus buscando su firma. Si el virus está codificado y además esta codificación se hace de forma diferente en cada una de las infecciones(polimorfismo), resultará muy difícil su detección.

 
    Sin embargo, y esto se hace extensivo a todos los virus que utilizan la autoencriptación, el virus no puede codificarse completamente a sí mismo, ya que necesita contar con una parte (no cifrada) que le permita realizar su propia decodificación. Esto es utilizado por los programas antivirus para realizar la detección de los virus polimórficos. Para ello el antivirus intentará localizar la rutina o algoritmo que permite al virus decodificarse automáticamente.

 
    Sustitución: el método de sustitución, usado con variantes por los camaleones y los caballos de troya, es quizás el método mas tosco. Consiste en sustituir el código completo del archivo original por el código del virus. Al ejecutar el programa infectado el único que actúa es el virus, que cumple con sus tareas de contagiar otros archivos y luego termina la ejecución del programa reportando algún tipo de error. Esta técnica tiene sus ventajas, ya que en cada infectación virica se eliminan archivos de programas válidos, los cuales son reemplazados por nuevas copias del virus. Sus inconvenientes son bastante claros: es muy fácil de detectar porque elimina el código inicial del archivo, y cuando se intenta ejecutar éste, produce algún tipo de error.

     Ocultamiento (Stealth): esta estrategia consiste en que el virus, después de su actuación, elimina las posibles huellas que haya podido dejar, evitando así levantar alguna sospecha sobre la infección que ya ha tenido lugar. Los virus residentes son los que más la utilizan, aunque no es exclusivamente este tipo de virus quienes la aplican, otros tipos de virus también la utilizan. Por otra parte, las técnicas de ocultamiento o stealth pueden ser varias, el término ocultamiento no se refiere a una sola forma de realizar esta práctica. No obstante, los programas antivirus, también utilizan técnicas especiales anti-ocultamiento para realizar las detecciones de estos tipos de virus.

   Cuando un virus infecta un determinado archivo, suele dejar signos evidentes de su actuación, como los siguientes:
 
  • aumento de tamaño en el fichero infectado
  • modificación de la fecha y hora de creación en el fichero infectado
  • secciones marcadas como defectuosas
  • disminución de la capacidad en la memoria
  • etc.

  •  
        El virus se encargará de que cada una de estas pistas no puedan ser visualizadas. Para ello vigilará peticiones de información que requiere el sistema operativo acerca de estas características, interceptándolas y ofreciendo un información falseada e irreal. Los virus que utilizan técnicas de ocultamientosuelen realizar ciertas acciones para que no se aprecien sus efectos. Entre alguna de éstas, podemos destacar las siguientes:
     
    • Los archivos infectados aumentarán de tamaño cuando se produce la infección, ya que el virus se introduce dentro del mismo. Sin embargo, este tipo de virus impide que se muestre el nuevo tamaño del archivo, para no levantar sospechas.
    • Cuando infectan a un archivo, no modifican su fecha, ni su hora. Es decir, no permiten que el fichero tenga la fecha y hora de la última modificación (las del momento en el que se produjo la infección).
    • Si se colocan en memoria, lo suelen hacer por encima de los primeros 640 Kbytes.
    • Si son virus capaces de escribir en secciones protegidas de un disco (donde no se permite la escritura), evitan la aparición de errores de escritura.

       Armouring: mediante esta técnica el virus impide ser examinado. Para conocer más datos sobre cada uno de ellos, éstos son abiertos como ficheros que son, utilizando programas especiales (Debugger) que permiten descubrir cada una de las líneas del código (lenguaje de programación en el que están escritos). Pues bien, en un virus que utilice la técnica de armouring no se podrá leer el código. En resumidas cuentas, el virus impide que se pueda estudiar su código, haciendo imposible su desensamblado o traceado. De ahí el nombre de armouring (acorazado, con armadura,...). De todas formas, existen programas antivirus que utilizan técnicas heurísticas para detectar a este tipo de virus.

        Como inconveniente, cabe destacar que resultará bastante sospechoso el no poder leer el código del fichero al utilizar los programas correspondientes.