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.