Virus: Variedad de Virus Clásicos - ProfesorPonce (Sección Alumnos)

Breaking

Profesional Review Magazine

viernes, 18 de marzo de 2011

Virus: Variedad de Virus Clásicos


Virus Clásicos

Fueron los primeros virus en circular por las computadoras del mundo. Están escritos en lenguajes de programación multipropósito, generalmente de bajo nivel, como Masm32, Macroensamblador o C/C++.

Potencialmente pueden ser escritos en cualquier lenguaje de programación de alto nivel que sea compilado, no interpretado. Como característica técnica distintiva, tienen la capacidad de infectar empaquetados del tipo Portable Ejecutable (PE) de windows o COFF de linux. Los programadores de virus suelen buscar compiladores que operen a través de las apis, librerías de extensión y principalmente, les permita incluir algún tipo de ensambador, lo que equivale a decir que potencialmente cualquier lenguaje clásico sirve para escribirlos. El hecho de usar lenguajes interpretados como VisualBasic dificulta un poco la tarea de crear esta variedad de virus, pero no es imposible. Los virus de esta variedad creados con intérpretes hace la identificación más fácil para los antivirus y los técnicos avanzados.

Esta variedad de virus Incluye el código viral dentro del segmento de instrucciones de código máquina (generalmente .CODE .TXT etc) y provocan la re-escritura de los encabezados declarativos, modificando el segmento mencionado, pero manteniendo intacto los otros segmentos. Por supuesto, es obvio mencionar que en esta serie de notas describimos la generalidad de los casos, no las excepciones. Esto quiere decir que pueden haber virus clásicos que modifiquen otros segmentos, además del que contiene el código máquina. Debido a que desde el punto de vista funcional infectan empaquetados ejecutabes, regularmente no generan nuevos archivos dentro del sistema, sino que afectan archivos de tipo ejecutable que se encuentren en la PC. Debido a sus características, y al hecho de que pueden aprovechar los espacios vacíos de los distintos segmentos declarados en los encabezados, la infección de un archivo puede no provocar un aumento de tamaño en bytes de los archivos infectados. HIstóricamente, esto fue lo que provocó que los antivirus dejaran de usar la técnica de comparación de tamaño para detectar infecciones. Esta variedad de virus, puede aprovechar los espacios vacíos entre segmentos e infectar los binarios sin incrementar su tamaño.

Infectan binarios de todo tipo. Los ejecutables afectados deben ser de tipo .com, exe, librerías .dll y drvivers del sistema, por mencionar algunas extensiones de archivos. En realidad el técnico debe saber que potencialmente cualquier archivo de tipo binario puede ser infectado por estos virus, sin importar demasiado las extensiones que son sólo ilustrativas y en ocasiones declarativas dentro de los sistemas operativos. Cualquier binario que contenga instrucciones en código máquina puede ser infectado por esta  variedad de virus.

Muchas veces encontramos que los programadores de este tipo de virus, tratan de eludir las llamadas a las apis, principalmente porque las apis de los sistemas operativos están programadas para que muestren evidencia de funcionamiento de los elementos de software que funcionan en la capa del sistema operativo y en la capa de software del usuario. El uso de rutinas propias para comunicarse con el entorno hace que esta variedad viral inestabilize marcadamente la ejecución de software de la capa del usuario,del sistema operativo (kernel) y de los drivers del sistema.

Este último motivo también hace que no sólo la infección provoque inestabiliad del software, sino tambien su remosión, porque los antivirus pueden quitar el código, pero reconstruir el encabezado PE de los ejecutables puede ser una tarea extremadamente delicada y ante el más mínimo error, el archivo quedará inestable. La eliminación del virus de los infectados tiene una tasa de error elevada y suele obligar al técnico reparador a reinstalar el software o los archivos afectados.

Tipos principales de virus en esta variedad

1. Virus generadores de "fantasmas":

Cuando el sistema operativo tiene dos archivos con el mismo nombre en la misma carpeta, pero tienen diferente extensión, tiene un orden de ejecución predeterminado, asignándole la prioridad de ejecución a los archivos COM sobre los EXE.

Estos virus al detectar un .EXE que puede ser infectado, crean un archivo con el mismo nombre pero con la extensión .COM que contiene el código del virus y una llamada de ejecución al .EXE original.

De esa manera, cuando el usuario intenta llamar a un ejecutable sin inncluir el path ni la extension, ejecuta primero el código viral que se arranca y luego cede el control al .EXE original. Pueden generar duplicados en la misma carpeta del .EXE o en una carpeta de acceso general y de uso compartido del sistema operativo.

Son difíciles de ver en la actualidad. Afectan principalmente a los usuarios que no usan los accesos directos ni los íconos y prefieren ejecutar directamente desde la linea de comandos sin ingresar la extensión de los ejecutables. Algunos de estos virus también provocan la modificación de los links y de los accesos directos para apuntar al .COM infectado.

2. Virus de Boot Sector: 

Infectan el sector de booteo de unidades de almacenamiento. El Boot Sector del disco rígido, es leído inmediatamente después de la lectura del Master Boot Record y su función es buscar el cargador del sistema operativo.

El Boot Sector contiene un programa escrito en código máquina cuya función es buscar el arrancador del sistema operativo. Este tipo de virus modifica el boot sector para que apunte al virus, se ejecute antes que el sistema operativo y luego busque al cargador del sistema operativo continuando con el encendido normal, pero con la infección instalada en ram.

Afecta a las computadoras cuyo bios está modificado para buscar unidades de booteo externas antes que el disco rígido de encendido.

La fortaleza técnica de este tipo de virus en particuar es que se ejecuta ANTES que el sistema operativo y el espacio de ram reservado es ignorado por el sistema, por este motivo los antivirus no pueden accederlo desde la ejecución normal de una sesión, sino que requieren el re-encendido del pc y limpiar la ram y el sector de booteo antes que encienda el sistema con la carga del loader.

En su origen, infectaban disco rigido y diskettes pero pueden intentar infectar cualquier dispositivo booteable. Si el técnico tiene experiencia, puede removerlo manualmente reinstalando del Sector de Booteo manualmente con cualquiera de las técnicas enseñadas en clase.

No son frecuentes en la actualidad, pero deben ser considerados como altamente peligrosos. Pueden dar fallas de encendido en la capa de software, por lo que el  técnico profesiona tiene que hacer diagnóstico diferencial con fallas de encendido del sistema y fallas del disco rígido.

3. Virus de Archivos Ejecutables: 


Afectan binarios de todo tipo. Los ejecutables afectados deben ser de tipo .EXE, .COM, .DRV, .DLL, .BIN, .OVL, .SYS, etc.

Se reproducen por diversas técnicas, crean bloques de instrucciones ejecutables y se insertan cambiando las estructuras de las cabeceras de los ejecutables. Dependiendo del programador del virus, lo usual es que ejecuten el código viral antes de ejecutar las instrucciones del ejecutable.

Pueden permanecer residentes en memoria durante mucho tiempo después de haber sido activados, en ese caso se los conoce como virus residentes, o pueden ser virus de acción directa, evitando quedar residentes en memoria, actuando al ser ejecutados. Se dice que estos virus son de sobreescritura, ya que corrompen al fichero donde se ubican.

4. Bug-Ware: 

En realidad no son virus, sino que son programas cuyo comportamiento confunde al técnico al punto que cree tener una infección en el sistema.

Suele ser software mal desarrollado con problemas de ejecución. Pueden provocar daño dependiendo de lo que hagan, pero no fueron concebidos por el programador como software malicioso.

Se dice que son fragmentos de código mal implementado y que debido a fallos lógicos dañan los datos del computador. El técnico debe considerarlos como programas con errores, y que funcionalmente se asemejan a un virus.

Son muy frecuentes, su peligrosidad suele ser baja y pueden dar todo tipo de sintomas extraños. Se debe hacer diagnóstico diferencial con cuelques o freezamientos, se relacionan estrechamente con fallas en la capa de software del usuario, con una aplicación en particular y casi nunca asociado a fallas del kernel.