Un virus puede considerarse efectivo si, además de extenderse lo más ampliamente posible, es capaz de permanecer oculto al usuario el mayor tiempo posible; para ello se han desarrollado varias técnicas de ocultamiento o sigilo. Para que estas técnicas sean efectivas, el virus debe estar residente en memoria, puesto que debe monitorizar el funcionamiento del sistema operativo. La base principal del funcionamiento de los virus y de las técnicas de ocultamiento, además de la condición de programas residentes, la intercepción de interrupciones. El DOS y los programas de aplicación se comunican entre sí mediante el servicio de interrupciones, que son como subrutinas del sistema operativo que proporcionan una gran variedad de funciones a los programas. Las interrupciones se utilizan, por ejemplo, para leer o escribir sectores en el disco, abrir ficheros, fijar la hora del sistema, etc. Y es aquí donde el virus entra en acción, ya que puede sustituir alguna interrupción del DOS por una suya propia y así, cuando un programa solicite un servicio de esa interrupción, recibirá el resultado que el virus determine.
Entre las técnicas más usuales cabe destacar el ocultamiento o stealth, que esconde los posibles signos de infección del sistema. Los síntomas más claros del ataque de un virus los encontramos en el cambio de tamaño de los ficheros, de la fecha en que se crearon y de sus atributos, y en la disminución de la memoria disponible.
Estos problemas son indicadores de la posible presencia de un virus, pero mediante la técnica stealth es muy fácil (siempre que se encuentre residente el virus) devolver al sistema la información solicitada como si realmente los ficheros no estuvieran infectados. Por este motivo es fundamental que cuando vayamos a realizar un chequeo del disco duro arranquemos el ordenador con un disco de sistema totalmente limpio.
La autoencriptación o self-encryption es una de las técnicas víricas más extendidas. En la actualidad casi todos los nuevos ingenios destructivos son capaces de encriptarse cada vez que infectan un fichero, ocultando de esta forma cualquier posible indicio que pueda facilitar su búsqueda. No obstante, todo virus encriptado posee una rutina de desencriptación, rutina que es aprovechada por los antivirus para encontrar el origen de la infección.
El mayor avance en técnicas de encriptación viene dado por el polimorfismo. Gracias a él un virus no sólo es capaz de encriptarse sino que además varía la rutina empleada cada vez que infecta un fichero. De esta forma resulta imposible encontrar coincidencias entre distintos ejemplares del mismo virus, y ante esta técnica el tradicional método de búsqueda de cadenas características se muestra inútil.
Otra técnica básica de ocultamiento es la intercepción de mensajes de error del sistema. Supongamos que un virus va a infectar un archivo de un disco protegido contra escritura; al intentar escribir en el obtendríamos el mensaje: "Error de protección contra escritura leyendo unidad A Anular, Reintentar, Fallo?", por lo que descubriríamos el anormal funcionamiento de nuestro equipo. Por eso, al virus le basta con redireccionar la interrupción a una rutina propia que evita la salida de estos mensajes, consiguiendo así pasar desapercibido. |