Clasificación de los Virus Informáticos
Tipos de Virus Informáticos según su destino de infección
Infectores de archivos ejecutables
El programa infectado tiene que estar ejecutándose para que el virus pueda funcionar (seguir infectando y ejecutar sus acciones destructivas)
Infectores del sector de arranque (boot)
Tanto los discos rígidos como los disquetes contienen un Sector de Arranque, el
cual contiene información específica relativa al formato del disco y los datos
almacenados en él. Además, contiene un pequeño programa llamado Boot Program
que se ejecuta al bootear desde ese disco y que se encarga de buscar y ejecutar
en el disco los archivos del sistema operativo. Este programa es el que muestra
el famoso mensaje de "Non-system Disk or Disk Error" en caso de no
encontrar los archivos del sistema operativo. Este es el programa afectado por
los virus de sector de arranque. La computadora se infecta con un virus de
sector de arranque al intentar bootear desde un disquete infectado. En este
momento el virus se ejecuta e infecta el sector de arranque del disco rígido,
infectando luego cada disquete utilizado en el PC. Es importante destacar que
como cada disco posee un sector de arranque, es posible infectar el PC con un
disquete que contenga solo datos.....
Virus Multi Partición
Bajo este nombre se engloban los virus que utilizan los dos métodos anteriores.
Es decir, pueden simultáneamente infectar archivos, sectores boot de arranque y
tablas FAT.
Infectores residentes en memoria
El programa infectado no necesita estar ejecutándose, el virus se aloja en la
memoria y permanece residente infectando cada nuevo programa ejecutado y
ejecutando su rutina de destrucción
Macrovirus
Son los virus mas populares de la actualidad. No se transmiten a través de
archivos ejecutables, sino a través de los documentos de las aplicaciones que
poseen algún tipo de lenguaje de macros. Entre ellas encontramos todas las
pertenecientes al paquete Office (Word, Excel, Power Point, Access) y también
el Corel Draw, o AutoCAD.
Cuando uno de estos archivos infectado es abierto o cerrado, el virus toma el
control y se copia a la plantilla base de nuevos documentos, de forma que sean
infectados todos los archivos que se abran o creen en el futuro.
Los lenguajes de macros como el Visual Basic For Applications son muy poderosos
y poseen capacidades como para cambiar la configuración del sistema operativo,
borrar archivos, enviar e-mails, etc.
De Actives Agents y Java Applets
En 1997, aparecen los Java applets y Actives controls. Estos pequeños programas
se graban en el disco rígido del usuario cuando está conectado a Internet y se
ejecutan cuando la página web sobre la que se navega lo requiere, siendo una
forma de ejecutar rutinas sin tener que consumir ancho de banda. Los virus
desarrollados con Java applets y Actives controls acceden al disco rígido a
través de una conexión www de manera que el usuario no los detecta. Se pueden
programar para que borren o corrompan archivos, controlen la memoria, envíen
información a un sitio web, etc.
De HTML
Un mecanismo de infección más eficiente que el de los Java applets y Actives
controls apareció a fines de 1998 con los virus que incluyen su código en
archivos HTML. Con solo conectarse a Internet, cualquier archivo HTML de una página
web puede contener y ejecutar un virus. Este tipo de virus se desarrollan en
Visual Basic Script. Atacan a usuarios de Win98, 2000 y de las últimas
versiones de Explorer. Esto se debe a que necesitan que el Windows Scripting
Host se encuentre activo. Potencialmente pueden borrar o corromper archivos.
Caballos de Troya
Los troyanos son programas que imitan programas útiles o ejecutan algún tipo
de acción aparentemente inofensiva, pero que de forma oculta al usuario
ejecutan el código dañino.
Los troyanos no cumplen con la función de autorreproducción, sino que
generalmente son diseñados de forma que por su contenido sea el mismo usuario
el encargado de realizar la tarea de difusión del virus. (Generalmente son
enviados por e-mail)
Tipos de Virus Informáticos según sus acciones y/o modo de activación
Bombas
Se denominan así a los virus que ejecutan su acción dañina como si fuesen una
bomba. Esto significa que se activan segundos después de verse el sistema
infectado o después de un cierto tiempo (bombas de tiempo) o al comprobarse
cierto tipo de condición lógica del equipo. (bombas lógicas). Ejemplos de
bombas de tiempo son los virus que se activan en una determinada fecha u hora
determinada. Ejemplos de bombas lógicas son los virus que se activan cuando al
disco rígido solo le queda el 10% sin uso, una secuencia de teclas o comandos, etc.
Ejemplos de este tipo de
programas son virus como Viernes 13 o el virus Miguel Angel
Camaleones
Son una variedad de virus similares a los caballos de Troya que actúan como
otros programas parecidos, en los que el usuario confía, mientras que en
realidad están haciendo algún tipo de daño. Cuando están correctamente
programados, los camaleones pueden realizar todas las funciones de los programas
legítimos a los que sustituyen (actúan como programas de demostración de
productos, los cuales son simulaciones de programas reales).
Un software camaleón podría, por ejemplo, emular un programa de acceso a
sistemas remotos realizando todas las acciones que ellos realizan, pero como
tarea adicional (y oculta a los usuarios) va almacenando en algún archivo los
diferentes logins y password para que posteriormente puedan ser recuperados y
utilizados ilegalmente por el creador del virus camaleón.
Reproductores
Los reproductores (también conocidos como conejos-rabbits) se reproducen en
forma constante una vez que son ejecutados hasta agotar totalmente (con su
descendencia) el espacio de disco o memoria del sistema.
La única función de este tipo de virus es crear clones y lanzarlos a ejecutar
para que ellos hagan lo mismo. El propósito es agotar los recursos del sistema,
especialmente en un entorno multiusuario interconectado, hasta el punto que el
sistema principal no puede continuar con el procesamiento normal.
Gusanos (Worms)
Los gusanos utilizan las redes de comunicaciones para expandirse de sistema
en sistema. Es decir, una vez que un gusano entra a un sistema examina las
tablas de ruta, correo u otra información sobre otros sistemas, a fin de
copiarse en todos aquellos sistemas sobre los cuales encontró información.
Este método de propagación presenta un crecimiento exponencial con lo que
puede infectar en muy corto tiempo a una red completa.
Existen básicamente 3 métodos de propagación en los gusanos:
1 - Correo electrónico - El gusano envía una copia de sí mismo a todos los usuarios que aparecen en las libretas de direcciones que encuentra en el ordenador dónde se ha instalado.
2 - Mecanismos basados en RPC (Remote Procedure Call) - El gusano ejecuta una copia de sí mismo en todos los sistemas que aparecen en la tabla de rutas(rcopy y rexecute).
3 - Mecanismos basados en RLOGIN - El gusano se conecta como usuario en otros sistemas y una vez en ellos, se copia y ejecuta de un sistema a otro.
Backdoors
Son también conocidos como herramientas de administración remotas ocultas. Son
programas que permiten controlar remotamente el PC infectado. Generalmente son
distribuidos como troyanos.
Cuando un virus de estos es ejecutado, se instala dentro del sistema operativo,
al cual monitorea sin ningún tipo de mensaje o consulta al usuario. Incluso no
se le vé en la lista de programas activos. Los Backdoors permiten al autor
tomar total control del PC infectado y de esta forma enviar, recibir archivos,
borrar o modificarlos, mostrarle mensajes al usuario, etc....
Técnicas de programación
Apoyados en la capacidad de evolución dada por sus programadores, los nuevos virus nacen con el conocimiento de las técnicas utilizadas por las herramientas antivirus actuales y sabiendo cuales son sus puntos débiles. En base a ello utilizan técnicas cada vez más complejas para ocultarse y evitar ser detectados. Algunos de los métodos de ocultación más utilizados son los siguientes:
Stealth (Ocultamiento)
El ocultamiento o stealth consiste en esconder los signos visibles de la infección que puedan delatar la presencia del virus en el sistema. Se trata de evitar todos los síntomas que indican la presencia de un virus.
El signo fundamental de infección es no obstante la modificación del fichero infectado. Una técnica de camuflaje usada por un virus residente puede ser la siguiente:
- Interceptar el servicio de lectura de ficheros.
- Cuando un programa desea analizar un fichero infectado, se le devuelve el contenido original del mismo antes de la infección.
Tunneling (Sobrepasamiento)
El sobrepasamiento o tunneling consiste en acceder directamente a los servicios del sistema a través de sus direcciones originales, sin pasar por el control de otros programas residentes, incluyendo el propio sistema operativo o cualquier buscador o vacuna residente.
Requiere una programación compleja, hay que colocar el procesador en modo paso a paso. En este modo de funcionamiento, tras ejecutarse cada instrucción se produce la interrupción 1. Se coloca una ISR (Interrupt Service Routine) para dicha interrupción y se ejecutan instrucciones comprobando cada vez si se ha llegado a donde se quería hasta recorrer toda la cadena de ISRs que halla colocando el parche al final de la cadena.
Armouring o antidebuggers
Un debugger es un programa que permite descompilar programas ejecutables y mostrar parte de su código en lenguaje original. Algunos virus utilizan diversas técnicas para evitar ser desensamblados y así impedir su análisis para la fabricación del antivirus correspondiente.
Polimorfismo o automutación
Es una técnica que consiste en cambiar el método de encriptación de generación en generación, es decir, que entre distintos ejemplares del mismo virus no existen coincidencias ni siquiera en la parte del virus que se encarga del descifrado del resto del virus. Esto obliga a los antivirus a usar técnicas heurísticas ya que como el virus cambia en cada infección es imposible localizarlo buscándolo por cadenas de código. Esto se consigue utilizando un algoritmo de encriptación que pone las cosas muy difíciles a los antivirus. No obstante no se puede codificar todo el código del virus, siempre debe quedar una parte sin mutar que toma el control y esa es la parte más vulnerable al antivirus.
La forma más utilizada para la codificación es la operación lógica XOR. Esto es debido que esta operación es reversible
7 XOR 9 = 14
14 XOR 9 = 7
En este caso la clave es el número 9, pero utilizando una clave distinta en cada infección se obtiene una codificación también distinta.
Otra forma también muy utilizada consiste en sumar un numero fijo a cada byte del código vírico.
TSR
Los programas residentes en memoria (TSR) permanecen alojados en esta durante toda su ejecución.
Los virus utilizan esta técnica para mantener el control sobre todas las actividades del sistema y contaminar todo lo que encuentren a su paso. El virus permanece en memoria mientras la computadora permanezca encendido. Por eso una de las primeras cosas que hace al llegar a la memoria es contaminar los archivos de arranque del sistema para asegurarse de que cuando se vuelva a arrancar la computadora volverá a ser cargado en memoria.