23 de mayo de 2007

5. Técnicas de infección

Cada uno de los miles de virus existentes utiliza diferentes mecanismos, tanto para realizar la infección como para ocultarse y pasar desapercibido. Estas técnicas evolucionan con el tiempo, como las técnicas utilizadas por los programas antivirus para detectarlos. En esta sección presentamos los mecanismos utilizados por los virus:

· Ocultamiento (Stealth): Los virus que utilizan esta técnica intentan pasar desapercibidos ante los ojos del usuario, no levantando ninguna 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.

Cuando un virus infecta un determinado fichero, 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.

· Sobrepasamiento (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.

· Autoencriptación: 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. Estos, por su parte y mediante la técnica de autoencriptación, infectarán 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. Por otro lado, el virus codifica o cifra sus cadenas para que al antivirus le sea difícil encontrarlo. Sin embargo, los virus que utilizan este tipo de técnicas, emplean siempre la misma rutina o algoritmo de encriptación, con lo que es posible su detección.

· Polimorfismo: Basándose en la técnica de autoencriptación, el virus se codifica o cifra de manera diferente en cada infección que realiza (su firma variará de una infección a otra). Si sólo fuese así estaríamos hablando de un virus que utiliza la encriptación, pero adicionalmente el virus cifrará también el modo (rutina o algoritmo) mediante el cual realiza el cifrado de su firma. Todo esto hace posible que el virus cree ejemplares de sí mismo diferentes de una infección a la siguiente, cambiando de "forma" en cada una de ellas. Para su detección, los programas antivirus emplean técnicas de simulación de descifrado.

· 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.