En primer lugar debemos decir que los virus informáticos están hechos por personas con conocimientos de programación pero que no son necesariamente genios de las computadoras. Tienen conocimientos de lenguaje ensamblador y de cómo funciona internamente la computadora. De hecho resulta bastante más difícil hacer un programa "en regla" como sería un sistema de facturación en donde hay que tener muchísimas más cosas en cuenta que en un simple virus que aunque esté mal programado sería suficiente para molestar al usuario.
En un principio estos programas eran diseñados casi exclusivamente por los hackers y crackers que tenían su auge en los Estados Unidos y que hacían temblar a las compañías con solo pensar en sus actividades. Tal vez esas personas lo hacían con la necesidad de demostrar su creatividad y su dominio de las computadoras, por diversión o como una forma de manifestar su repudio a la sociedad que los oprimía. Hoy en día, resultan un buen medio para el sabotaje corporativo, espionaje industrial y daños a material de una empresa en particular.
Un poco de historia
Los virus tienen la misma edad que las computadoras. Ya en 1949 John Von Neumann, describió programas que se reproducen a sí mismos en su libro "Teoría y Organización de Autómatas Complicados". Es hasta mucho después que se les comienza a llamar como virus. La característica de auto-reproducción y mutación de estos programas, que las hace parecidas a las de los virus biológicos, parece ser el origen del nombre con que hoy los conocemos.
Antes de la explosión de la micro computación se decía muy poco de ellos. Por un lado, la computación era secreto de unos pocos. Por otro lado, las entidades gubernamentales, científicas o militares, que vieron sus equipos atacados por virus, se quedaron muy calladas, para no demostrar la debilidad de sus sistemas de seguridad, que costaron millones, al bolsillo de los contribuyentes. Las empresa privadas como Bancos, o grandes corporaciones, tampoco podían decir nada, para no perder la confianza de sus clientes o accionistas. Lo que se sabe de los virus desde 1949 hasta 1989, es muy poco.
Se reconoce como antecedente de los virus actuales, un juego creado por programadores de la empresa AT&T, que desarrollaron la primera versión del sistema operativo Unix en los años 60. Para entretenerse, y como parte de sus investigaciones, desarrollaron un juego llamado "Core Wars", que tenía la capacidad de reproducirse cada vez que se ejecutaba. Este programa tenía instrucciones destinadas a destruir la memoria del rival o impedir su correcto funcionamiento. Al mismo tiempo, desarrollaron un programa llamado "Reeper", que destruía las copias hechas por Core Wars. Un antivirus o antibiótico, como hoy se los conoce. Conscientes de lo peligroso del juego, decidieron mantenerlo en secreto, y no hablar más del tema. No se sabe si esta decisión fue por iniciativa propia, o por órdenes superiores.
En el año 1983, el Dr. Ken Thomson, uno de los programadores de AT&T, que trabajó en la creación de "Core Wars", rompe el silencio acordado, y da a conocer la existencia del programa, con detalles de su estructura.
La Revista Scientific American a comienzos de 1984, publica la información completa sobre esos programas, con guías para la creación de virus. Es el punto de partida de la vida pública de estos programas, y naturalmente de su difusión sin control, en las computadoras personales.
Por esa misma fecha, 1984, el Dr. Fred Cohen hace una demostración en la Universidad de California, presentando un virus informático residente en una PC. Al Dr. Cohen se le conoce hoy día, como "el padre de los virus". Paralelamente aparece en muchas PCs un virus, con un nombre similar a Core Wars, escrito en Small-C por un tal Kevin Bjorke, que luego lo cede a dominio público. ¡La cosa comienza a ponerse caliente!
El primer virus destructor y dañino plenamente identificado que infecta muchas PC"s aparece en 1986. Fue creado en la ciudad de Lahore, Paquistán, y se le conoce con el nombre de BRAIN. Sus autores vendían copias pirateadas de programas comerciales como Lotus, Supercalc o Wordstar, por suma bajísimas. Los turistas que visitaban Paquistán, compraban esas copias y las llevaban de vuelta a los EE.UU. Las copias pirateadas llevaban un virus. Fue así, como infectaron mas de 20,000 computadoras. Los códigos del virus Brain fueron alterados en los EE.UU., por otros programadores, dando origen a muchas versiones de ese virus, cada una de ellas peor que la precedente. Hasta la fecha nadie estaba tomando en serio el fenómeno, que comenzaba a ser bastante molesto y peligroso.
En 1987, los sistemas de Correo Electrónico de la IBM, fueron invadidos por un virus que enviaba mensajes navideños, y que se multiplicaba rápidamente. Ello ocasionó que los discos duros se llenaran de archivos de origen viral, y el sistema se fue haciendo lento, hasta llegar a paralizarse por mas de tres días. La cosa había llegado demasiado lejos y el Big Blue puso de inmediato a trabajar en los virus su Centro de Investigación Thomas J. Watson, de Yorktown Heights, NI.
Las investigaciones del Centro T. J. Watson sobre virus, son puestas en el dominio público por medio de Reportes de Investigación, editados periódicamente, para beneficio de investigadores y usuarios.
El virus Jerusalem, según se dice creado por la Organización de Liberación Palestina, es detectado en la Universidad Hebrea de Jerusalem a comienzos de 1988. El virus estaba destinado a aparece el 13 de Mayo de 1988, fecha del 40 aniversario de la existencia de Palestina como nación. Una interesante faceta del terrorismo, que ahora se vuelca hacia la destrucción de los sistemas de cómputo, por medio de programas que destruyen a otros programas.
El 2 de Noviembre del "88, dos importantes redes de EE.UU. se ven afectadas seriamente por virus introducidos en ellas. Mas 6,000 equipos de instalaciones militares de la NASA, universidades y centros de investigación públicos y privados se ven atacados.
Por 1989 la cantidad de virus detectados en diferentes lugares sobrepasan los 100, y la epidemia comienza a crear situaciones graves. Entre las medidas que se toma, para tratar de detener el avance de los virus, es llevar a los tribunales a Robert Morís Jr. acusado de ser el creador de un virus que infectó a computadoras del gobierno y empresas privadas. Al parecer, este muchacho conoció el programa Core Wars, creado en la AT&T, y lo difundió entre sus amigos. Ellos se encargaron de diseminarlo por diferentes medios a redes y equipos. Al juicio se le dio gran publicidad, pero no detuvo a los creadores de virus.
La cantidad de virus que circula en la actualidad no puede llegar a ser precisada pero para tener una idea los últimos antivirus pueden identificar alrededor de cincuenta mil virus (claro que en este valor están incluidos los clones de un mismo virus).
Funcionamiento de los virus
Los virus informáticos están hechos en Assembler, un lenguaje de programación de bajo nivel. Las instrucciones compiladas por Assembler trabajan directamente sobre el hardware, esto significa que no es necesario ningún software intermedio –según el esquema de capas entre usuario y hardware- para correr un programa en Assembler (opuesto a la necesidad de Visual Basic de que Windows 9x lo secunde). No solo vamos a poder realizar las cosas típicas de un lenguaje de alto nivel, sino que también vamos a tener control de cómo se hacen. Para dar una idea de lo poderoso que puede ser este lenguaje, el sistema operativo Unix está programado en C y las rutinas que necesitan tener mayor profundidad para el control del hardware están hechas en Assembler. Por ejemplo: los drivers que se encargan de manejar los dispositivos y algunas rutinas referidas al control de procesos en memoria.
Sabiendo esto, el virus puede tener control total de la máquina -al igual que lo hace el SO- si logra cargarse antes que nadie. La necesidad de tener que "asociarse" a una entidad ejecutable viene de que, como cualquier otro programa de computadora, necesita ser ejecutado y teniendo en cuenta que ningún usuario en su sano juicio lo hará, se vale de otros métodos furtivos. Ahora que marcamos la importancia para un virus el ser ejecutado, podemos decir que un virus puede encontrarse en una computadora sin haber infectado realmente algo. Es el caso de personas que pueden coleccionar virus en archivos comprimidos o encriptados.
Normalmente este tipo de programas se pega a alguna entidad ejecutable que le facilitará la subida a memoria principal y la posterior ejecución (métodos de infección). Como entidades ejecutables podemos reconocer a los sectores de arranque de los discos de almacenamiento magnéticos, ópticos o magneto-ópticos (MBR, BR), los archivos ejecutables de DOSs (.exe, .com, entre otros), las librerías o módulos de programas (.dll, .lib, .ovl, .bin, .ovr). Los sectores de arranque son fundamentales para garantizar que el virus será cargado cada vez que se encienda la computadora.
Según la secuencia de booteo de las PCs, el microprocesador tiene seteada de fábrica la dirección de donde puede obtener la primer instrucción a ejecutar. Esta dirección apunta a una celda de la memoria ROM donde se encuentra la subrutina POST (Power On Self Test), encargada de varias verificaciones y de comparar el registro de la memoria CMOS con el hardware instalado (función checksum). En este punto sería imposible que el virus logre cargarse ya que la memoria ROM viene grabada de fábrica y no puede modificarse (hoy en día las memorias Flash-ROM podrían contradecir esto último).
Luego, el POST pasa el control a otra subrutina de la ROM BIOS llamada "bootstrap ROM" que copia el MBR (Master Boot Record) en memoria RAM. El MBR contiene la información de la tabla de particiones, para conocer las delimitaciones de cada partición, su tamaño y cuál es la partición activa desde donde se cargará el SO. Vemos que en este punto el procesador empieza a ejecutar de la memoria RAM, dando la posibilidad a que un virus tome partida. Hasta acá el SO todavía no fue cargado y en consecuencia tampoco el antivirus. El accionar típico del virus sería copiar el MBR en un sector alternativo y tomar su posición. Así, cada vez que se inicie el sistema el virus logrará cargarse antes que el SO y luego, respetando su deseo por permanecer oculto hará ejecutar las instrucciones del MBR.
Con la información del MBR sabremos qué partición es la activa y en que sector se encuentra su sector de booteo (boot record o BR). El BR contiene una subrutina que se ocupará de cargar los archivos de arranque del SO. Los demás pasos de la carga del SO son irrelevantes, pero es importante recordar que el SO es el último en cargarse en la secuencia de booteo antes de que el usuario pueda introducir comandos en la shell. El antivirus es cargado por los archivos de configuración del SO personalizables por el usuario.
Cuando un virus infecta un archivo ejecutable .EXE, por ejemplo, intenta rastrear en el código los puntos de entrada y salida del programa. El primer punto señalado es en donde, dentro del archivo, se iniciará la ejecución de instrucciones. El segundo punto resulta ser lo opuesto. Cuando un virus localiza ambos puntos escribe su propio código antes de cada uno. Según el tipo de virus, este código cargará el virus en memoria –si es que no lo estaba- y apuntará a esa zona infectada con el virus. A partir de ahí el programa virósico determinará cuáles son las acciones a seguir: puede continuar infectando archivos que sean cargados en memoria, ocultarse si es que detecta la presencia de un antivirus o ejecutar el contenido de su módulo de ataque. El virus puede infectar también las copias de los archivos cargados en memoria que están en la unidad de almacenamiento. Así se asegura que ante un eventual apagado de la computadora su código igualmente se encuentra en los archivos de la unidad.
Es importante comprender que la computadora no estará infectada hasta que ejecutemos algo parasitado previamente con el virus. Veamos un ejemplo sencillo: nosotros bajamos de Internet un archivo comprimido (con la extensión .ZIP según el uso popular) sabiendo que es un programa de prueba que nos gustaría instalar. Lo que no sabemos es que uno de los archivos dentro del .ZIP es un virus informático, y lo peor de todo es que viene adosado al archivo Install.exe. Al momento de descomprimir el contenido, el virus todavía no fue ejecutado (ya que la información dentro del .ZIP no puede ser reconocida como instrucciones por el procesador). Luego identificamos el archivo Install.exe como el necesario para instalar el programa y lo ejecutamos. Recién en este momento el virus se cargará en memoria y pasará a hacer las cosas para lo que fue programado.
El ejemplo anterior es un modo muy básico de infección. Pero existen otros tantos tipos de virus que son mucho más sofisticados y no podrá ser reconocida su presencia con mucha facilidad.
Según sus características un virus puede contener tres módulos principales: el módulo de ataque, el módulo de reproducción, y el módulo de defensa.
Módulo de reproducción. Es el encargado de manejar las rutinas para infectar entidades ejecutables que asegurarán la subsistencia del virus. Cuando toma el control del sistema puede infectar otras entidades ejecutables. Cuando estas entidades sean trasladadas a otras computadoras se asegura la dispersión del virus.
Módulo de ataque. Es el módulo que contiene las rutinas de daño adicional o implícito. El módulo puede ser disparado por distintos eventos del sistema: una fecha, hora, el encontrar un archivo específico (COMMAND.COM), el encontrar un sector específico (MBR), una determinada cantidad de booteos desde que ingreso al sistema, o cualquier otra cosa a la que el programador quisiera atacar.
Módulo de defensa. Su principal objetivo es proteger el cuerpo del virus. Incluirá rutinas que disminuyan los síntomas que delaten su presencia e intentarán que el virus permanezca invisible a los ojos del usuario y del antivirus. Las técnicas incluidas en este módulo hoy en día resultan ser muy sofisticadas logrando dar información falsa al SO -y en consecuencia al usuario- y localizándose en lugares poco comunes para el registro de los antivirus, como la memoria Flash-Rom.
Algunos métodos de infección
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 específicas 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 el método de inserción 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 varía. Este método, parecido al de empalme, exige mayores técnicas de programación de los virus para poder detectar las zonas posibles de contagio 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 este esquema se introducen centrales virósicas (los códigos principales del virus) en zonas físicas del disco rígido marcadas como defectuosas o en archivos ocultos del sistema. Estos códigos virales, al ejecutarse, implantan pequeños trozos de código en los archivos ejecutables que infectan, que luego actúan como llamadores de las centrales virósicas. 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 más 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.
Polimorfismo. Este es el método más 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 anfitrión 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. Una variante mejorada de esta técnica permite a los virus usar métodos de encriptación dinámicos para disfrazar el código del virus y evitar ser detectados por los antivirus.
Sustitución. El método de sustitución, usado con variantes por los Caballos de Troya, es quizás el método más primitivo. 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 infección se eliminan archivos de programas válidos, los cuales son reemplazados por nuevas copias del virus.
Tunneling. Es una técnica usada por programadores de virus y antivirus para evitar todas las rutinas al servicio de una interrupción y tener así un control directo sobre esta. Requiere una programación compleja, hay que colocar el procesador en modo kernel. En este modo de funcionamiento, tras ejecutarse cada instrucción se produce la INT 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.
Los virus utilizan el tunneling para protegerse de los módulos residentes de los antivirus que monitorean todo lo que sucede en la máquina para interceptar todas las actividades "típicas" de los virus.
Para entender como funciona esta técnica basta saber como trabaja este tipo de antivirus. El módulo residente queda colgado de todas las interrupciones usualmente usadas por los virus (INT 21, INT 13, a veces INT 25 Y 26) y entonces cuando el virus intenta llamar a INT 21, por ejemplo, para abrir un ejecutable para lectura / escritura (y luego infectarlo), el antivirus emite una alerta, pues los ejecutables no son normalmente abiertos, ni menos para escritura. Y así con todas las llamadas típicas de los virus.
En cambio, cuando se hace una llamada común y corriente, el antivirus no le da mayor importancia y la deja pasar, llamando a la INT 21 original. Un virus con tunneling, entonces, antes de llamar a ninguna función ni hacer nada, intenta obtener el address absoluto de esta INT 21 original, que está en alguna parte de la memoria del antivirus residente. Una vez que obtiene este address, accede al MS-DOS por medio de el, sin llamar al antivirus. Y así, efectivamente, le "pasa por debajo", lo "tunelea". ¿Cómo se hace esto?
Existen dos formas fundamentales de obtener este address:
La primera, y la mas usada, es utilizando la interrupción de trace (INT 1) y la trap flag. (Que son usadas por los DEBUGGERS) para atravesar el código línea por línea hasta hallar lo que se busca. Es usada por todos los virus que usan esta técnica, como por ejemplo, el Predator II o el (ya viejo) Yankee Doodle.
La segunda, hacer un simple y llano scanning del código, byte a byte, hasta hallar el address. Se usa en pocos virus, pero es la que usa Kohntark en su célebre Kohntark Recursive Tunneling Toolkit.
Problemas Generales del Tunneling.
Pero el problema principal del tunneling es que aún teniendo éxito en obtener la INT 21 posta, se pueden tener problemas si hay algún residente importante y uno lo esta pasando por debajo. Es famoso ya el caso del Predator II y el DoubleSpace. El predator II tuneleaba por debajo del DoubleSpace y trataba de acceder al disco directamente por MS-DOS. Esto produjo que destruyera el contenido de varios discos rígidos. En definitiva, esto es contrario a las intenciones del tunneling.
La clasificación correcta de los virus siempre resulta variada según a quien se le pregunte. Podemos agruparlos por la entidad que parasitan (sectores de arranque o archivos ejecutables), por su grado de dispersión a nivel mundial, por su comportamiento, por su agresividad, por sus técnicas de ataque o por como se oculta, etc. Nuestra clasificación muestra como actúa cada uno de los diferentes tipos según su comportamiento. En algunos casos un virus puede incluirse en más de un tipo (un multipartito resulta ser sigiloso).
Caballos de Troya
Los caballos de troya no llegan a ser realmente virus porque no tienen la capacidad de autoreproducirse. Se esconden dentro del código de archivos ejecutables y no ejecutables pasando inadvertidos por los controles de muchos antivirus. Posee subrutinas que permitirán que se ejecute en el momento oportuno. Existen diferentes caballos de troya que se centrarán en distintos puntos de ataque. Su objetivo será el de robar las contraseñas que el usuario tenga en sus archivos o las contraseñas para el acceso a redes, incluyendo a Internet. Después de que el virus obtenga la contraseña que deseaba, la enviará por correo electrónico a la dirección que tenga registrada como la de la persona que lo envió a realizar esa tarea. Hoy en día se usan estos métodos para el robo de contraseñas para el acceso a Internet de usuarios hogareños. Un caballo de troya que infecta la red de una empresa representa un gran riesgo para la seguridad, ya que está facilitando enormemente el acceso de los intrusos. Muchos caballos de troya utilizados para espionaje industrial están programados para autodestruirse una vez que cumplan el objetivo para el que fueron programados, destruyendo toda la evidencia.
Camaleones
Son una variedad de similar a los Caballos de Troya, pero actúan como otros programas comerciales, 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 (rlogin, telnet) 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 passwords para que posteriormente puedan ser recuperados y utilizados ilegalmente por el creador del virus camaleón.
Virus polimorfos o mutantes
Los virus polimorfos poseen la capacidad de encriptar el cuerpo del virus para que no pueda ser detectado fácilmente por un antivirus. Solo deja disponibles unas cuantas rutinas que se encargaran de desencriptar el virus para poder propagarse. Una vez desencriptado el virus intentará alojarse en algún archivo de la computadora.
En este punto tenemos un virus que presenta otra forma distinta a la primera, su modo desencriptado, en el que puede infectar y hacer de las suyas libremente. Pero para que el virus presente su característica de cambio de formas debe poseer algunas rutinas especiales. Si mantuviera siempre su estructura, esté encriptado o no, cualquier antivirus podría reconocer ese patrón.
Para eso incluye un generador de códigos al que se conoce como engine o motor de mutación. Este engine utiliza un generador numérico aleatorio que, combinado con un algoritmo matemático, modifica la firma del virus. Gracias a este engine de mutación el virus podrá crear una rutina de desencripción que será diferente cada vez que se ejecute.
Los métodos básicos de detección no pueden dar con este tipo de virus. Muchas veces para virus polimorfos particulares existen programas que se dedican especialmente a localizarlos y eliminarlos. Algunos softwares que se pueden baja gratuitamente de Internet se dedican solamente a erradicar los últimos virus que han aparecido y que también son los más peligrosos. No los fabrican empresas comerciales sino grupos de hackers que quieren protegerse de otros grupos opuestos. En este ambiente el presentar este tipo de soluciones es muchas veces una forma de demostrar quien es superior o quien domina mejor las técnicas de programación.
Las últimas versiones de los programas antivirus ya cuentan con detectores de este tipo de virus.
Virus sigiloso o stealth
El virus sigiloso posee un módulo de defensa bastante sofisticado. Este intentará permanecer oculto tapando todas las modificaciones que haga y observando cómo el sistema operativo trabaja con los archivos y con el sector de booteo. Subvirtiendo algunas líneas de código el virus logra apuntar el flujo de ejecución hacia donde se encuentra la zona que infectada.
Es difícil que un antivirus se de cuenta de estas modificaciones por lo que será imperativo que el virus se encuentre ejecutándose en memoria en el momento justo en que el antivirus corre. Los antivirus de hoy en día cuentan con la técnica de verificación de integridad para detectar los cambios realizados en las entidades ejecutables.
El virus Brain de MS-DOS es un ejemplo de este tipo de virus. Se aloja en el sector de arranque de los disquetes e intercepta cualquier operación de entrada / salida que se intente hacer a esa zona. Una vez hecho esto redirigía la operación a otra zona del disquete donde había copiado previamente el verdadero sector de booteo.
Este tipo de virus también tiene la capacidad de engañar al sistema operativo. Un virus se adiciona a un archivo y en consecuencia, el tamaño de este aumenta. Está es una clara señal de que un virus lo infectó. La técnica stealth de ocultamiento de tamaño captura las interrupciones del sistema operativo que solicitan ver los atributos del archivo y, el virus le devuelve la información que poseía el archivo antes de ser infectado y no las reales. Algo similar pasa con la técnica stealth de lectura. Cuando el SO solicita leer una posición del archivo, el virus devuelve los valores que debería tener ahí y no los que tiene actualmente.
Este tipo de virus es muy fácil de vencer. La mayoría de los programas antivirus estándar los detectan y eliminan.
Virus lentos
Los virus de tipo lento hacen honor a su nombre infectando solamente los archivos que el usuario hace ejecutar por el SO, simplemente siguen la corriente y aprovechan cada una de las cosas que se ejecutan.
Por ejemplo, un virus lento únicamente podrá infectar el sector de arranque de un disquete cuando se use el comando FORMAT o SYS para escribir algo en dicho sector. De los archivos que pretende infectar realiza una copia que infecta, dejando al original intacto.
Su eliminación resulta bastante complicada. Cuando el verificador de integridad encuentra nuevos archivos avisa al usuario, que por lo general no presta demasiada atención y decide agregarlo al registro del verificador. Así, esa técnica resultaría inútil.
La mayoría de las herramientas creadas para luchar contra este tipo de virus son programas residentes en memoria que vigilan constantemente la creación de cualquier archivo y validan cada uno de los pasos que se dan en dicho proceso. Otro método es el que se conoce como Decoy launching. Se crean varios archivos .EXE y .COM cuyo contenido conoce el antivirus. Los ejecuta y revisa para ver si se han modificado sin su conocimiento.
Retro-virus o Virus antivirus
Un retro-virus intenta como método de defensa atacar directamente al programa antivirus incluido en la computadora.
Para los programadores de virus esta no es una información difícil de obtener ya que pueden conseguir cualquier copia de antivirus que hay en el mercado. Con un poco de tiempo pueden descubrir cuáles son los puntos débiles del programa y buscar una buena forma de aprovecharse de ello.
Generalmente los retro-virus buscan el archivo de definición de virus y lo eliminan, imposibilitando al antivirus la identificación de sus enemigos. Suelen hacer lo mismo con el registro del comprobador de integridad.
Otros retrovirus detectan al programa antivirus en memoria y tratan de ocultarse o inician una rutina destructiva antes de que el antivirus logre encontrarlos. Algunos incluso modifican el entorno de tal manera que termina por afectar el funcionamiento del antivirus.
Virus multipartitos
Los virus multipartitos atacan a los sectores de arranque y a los ficheros ejecutables. Su nombre está dado porque infectan las computadoras de varias formas. No se limitan a infectar un tipo de archivo ni una zona de la unidad de disco rígido. Cuando se ejecuta una aplicación infectada con uno de estos virus, éste infecta el sector de arranque. La próxima vez que arranque la computadora, el virus atacará a cualquier programa que se ejecute.
Virus voraces
Estos virus alteran el contenido de los archivos de forma indiscriminada. Generalmente uno de estos virus sustituirá el programa ejecutable por su propio código. Son muy peligrosos porque se dedican a destruir completamente los datos que puedan encontrar.
Bombas de tiempo
Son virus convencionales y pueden tener una o más de las características de los demás tipos de virus pero la diferencia está dada por el trigger de su módulo de ataque que se disparará en una fecha determinada. No siempre pretenden crear un daño específico. Por lo general muestran mensajes en la pantalla en alguna fecha que representa un evento importante para el programador. El virus Michel Angelo sí causa un daño grande eliminando toda la información de la tabla de particiones el día 6 de marzo.
Conejo
Cuando los ordenadores de tipo medio estaban extendidos especialmente en ambientes universitarios, funcionaban como multiusuario, múltiples usuarios se conectaban simultáneamente a ellos mediante terminales con un nivel de prioridad. El ordenador ejecutaba los programas de cada usuario dependiendo de su prioridad y tiempo de espera. Si se estaba ejecutando un programa y llegaba otro de prioridad superior, atendía al recién llegado y al acabar continuaba con lo que hacia con anterioridad. Como por regla general, los estudiantes tenían prioridad mínima, a alguno de ellos se le ocurrió la idea de crear este virus. El programa se colocaba en la cola de espera y cuando llegaba su turno se ejecutaba haciendo una copia de sí mismo, agregándola también en la cola de espera. Los procesos a ser ejecutados iban multiplicándose hasta consumir toda la memoria de la computadora central interrumpiendo todos los procesamientos.
Macro-virus
Los macrovirus representan una de las amenazas más importantes para una red. Actualmente son los virus que más se están extendiendo a través de Internet. Representan una amenaza tanto para las redes informáticas como para los ordenadores independientes. Su máximo peligro está en que son completamente independientes del sistema operativo o de la plataforma. Es más, ni siquiera son programas ejecutables.
Los macrovirus son pequeños programas escritos en el lenguaje propio (conocido como lenguaje script o macrolenguaje) propio de un programa. Así nos podemos encontrar con macrovirus para editores de texto, hojas de cálculo y utilidades especializadas en la manipulación de imágenes.
En Octubre de 1996 había menos de 100 tipos de macrovirus. En Mayo de 1997 el número había aumentado a 700.
Sus autores los escriben para que se extiendan dentro de los documentos que crea el programa infectado. De esta forma se pueden propagar a otros ordenadores siempre que los usuarios intercambien documentos. Este tipo de virus alteran de tal forma la información de los documentos infectados que su recuperación resulta imposible. Tan solo se ejecutan en aquellas plataformas que tengan la aplicación para la que fueron creados y que comprenda el lenguaje con el que fueron programados. Este método hace que este tipo de virus no dependa de ningún sistema operativo.
El lenguaje de programación interno de ciertas aplicaciones se ha convertido en una poderosa herramienta de trabajo. Pueden borrar archivos, modificar sus nombres y (como no) modificar el contenido de los ficheros ya existentes. Los macrovirus escritos en dichos lenguajes pueden efectuar las mismas acciones.
Al día de hoy, la mayoría de virus conocidos se han escrito en WordBasic de Microsoft, o incluso en la última versión de Visual Basic para Aplicaciones (VBA), también de Microsoft. WordBasic es el lenguaje de programación interno de Word para Windows (utilizado a partir de la versión 6.0) y Word 6.0 para Macintosh. Como VBA se ejecuta cada vez que un usuario utiliza cualquier programa de Microsoft Office, los macrovirus escritos en dicho lenguaje de programación representan un riesgo muy serio. En otras palabras, un macrovirus escrito en VBA puede infectar un documento de Excel, de Access o de PowerPoint. Como estas aplicaciones adquieren más y más importancia cada día, la presencia de los macrovirus parece que está asegurada.
Microsoft Word es una de las aplicaciones preferidas para los macrovirus. Y lo es por varias razones:
Microsoft Word está muy difundido, por lo que un macrovirus para esta aplicación tendrá un gran impacto. Además, Microsoft Word es un producto pensado para plataformas cruzadas, disponible para DOS, Windows 3. 1, Windows 95, Windows NT y Mac OS, con lo que se amplía enormemente la posibilidad de infección.
La plantilla Normal de Word (en las versiones de Windows se llama normal. dot ) contiene todas las macros que se pueden utilizar con Word. Para un macrovirus esta plantilla es suelo fértil en el cual puede incubar sus virus y copiarlos luego a otros documentos de Word o incluso al resto de aplicaciones de Microsoft.
Microsoft Word puede ejecutar automáticamente macros sin necesidad del consentimiento humano. Esta habilidad hace que el escritor de macrovirus asocie sus programas con algún tipo de macro legítima. Word usa macros para (entre otras cosas) abrir y cerrar documentos. E incluso para cerrar el propio programa.
Comparado con lo complicado que resulta escribir macros en ensamblador, escribir en el leguaje de programación de Word es un juego de niños. Las principales ventajas de WordBasic y VBA son que son lenguajes muy intuitivos.
Los usuarios suelen pegar sus documentos de Word a sus mensajes de correo electrónico, publicarlos en sitios FTP o bien mandarlos a una lista de mail. Como se puede figurar la cantidad de gente que se infectará con este tipo de documentos es enorme. Desgraciadamente, debido a la novedad de estos sistemas de transmisión, el creador de un macrovirus puede estar seguro de que su virus llegará a mucha gente.
Un macrovirus para Word también es capaz de sobreescribir las opciones Guardar, Guardar cómo y Nuevo del menú Archivo para asegurar su permanencia. La verdad es que sobreescribir estas opciones no representa ningún tipo de problema. Basta con copiar la macro al documento y copiarla a otra macro con las modificaciones deseadas. La naturaleza polimorfa de este tipo de virus es una de las razones por la que los profesionales los consideran tan peligrosos.
Word 7.0 para Windows 95 y NT y Microsoft Word 97 avisan automáticamente a sus usuarios cuando abren un documento y éste contiene macros. Además, Microsoft proporciona una herramienta de protección contra los virus llamada MVP válida para sus usuarios de Windows y Macintosh. Dicha herramienta instala una serie de macros que detectan cualquier macro sospechosa y avisa al usuario del peligro que conlleva abrir un documento determinado. Conviene que escanee todos los documentos de Word que reciba a través del correo electrónico antes de abrirlos por si están infectados. En las últimas versiones de Microsoft Word (a partir de la 7.0) hay un detalle que las hace menos susceptibles ante la infección de los macrovirus de Word. Y es que, al igual que las últimas versiones de programas como Excel, Access y PowerPoint, se ha cambiado el lenguaje de programación interno. Microsoft usa un lenguaje nuevo al que ha bautizado como Visual Basic para Aplicaciones 5.0 (VBA). Además, las nuevas versiones de Chamaleon (de NetManage), Photoshop (de Adobe) y AutoCAD (de AutoDesk) utilizan VBA.
Es una buena noticia saber que el cambio de lenguaje anulará la mayoría de los macrovirus de Word (siempre que no se esté trabajando en un modo compatible con las antiguas versiones de WordBasic). Sin embargo, la aparición de VBA 5.0 y su aceptación entre las aplicaciones indica que nos encontramos ante una nueva era de macrovirus. Y como VBA es un lenguaje que utilizan muchas aplicaciones será posible que un mismo macrovirus infecte a aplicaciones muy distintas entre sí.
Los pasos que se deben seguir para eliminar macro-virus son los siguientes:
1) Activar la protección antivirus si está desactivada.
Abrir el Word directamente, sin ningún documento.
Ir al menú Herramientas, y elegir Opciones….
En la pestaña General, activar la casilla donde dice Protección antivirus en macro.
2) Abrir el documento infectado teniendo en cuenta que, cuando se presente la ventana de Advertencia, se debe elegir la opción Abrir sin Macros para no infectarse.
3) Una vez abierto el documento, elegir, dentro del menú Herramientas, la opción Macro y dentro de ella, la que dice Editor de Visual Basic, o directamente, presionar la combinación de teclas ALT+F11. Donde, en la parte izquierda de la pantalla, se podrá observar un cuadro que dice "Proyecto – …" y el nombre del archivo abierto, en este caso Normal.
4) Se debe desplegar cada uno de los ítems de ese cuadro para ver el código de las macros. Al hacer doble click sobre algunos de estos elementos, se abrirá una nueva ventana con código.
5) Se debe marcar el texto que aparece en la nueva ventana, y eliminarlo como se haría con cualquier texto. Al hacer esto, se estarán eliminando las macros que contiene el documento, lo que eliminará completamente el Macrovirus.
Estos pasos deben repetirse por todos los elementos que se encuentren en el cuadro Proyectos.
Gusanos
Un gusano se puede decir que es un set de programas, que tiene la capacidad de desparramar un segmento de el o su propio cuerpo a otras computadoras conectadas a una red.
Hay dos tipos de Gusanos:
Host Computer Worm: son contenidos totalmente en una computadora, se ejecutan y se copian a si mismo vía conexión de una red. Los Host Computer Worm, originalmente terminan cuando hicieron una copia de ellos mismos en otro host. Entonces, solo hay una copia del gusano corriendo en algún lugar de una red. También existen los Host Computer Worm, que hacen una copia de ellos mismos e infectan otras redes, es decir, que cada maquina guarda una copia de este Gusano.
Network Worms: consisten en un conjunto de partes (llamadas "segmentos"), cada una corre en una maquina distinta (y seguramente cada una realiza una tarea distinta) y usando la red para distintos propósitos de comunicación.
Propagar un segmento de una maquina a otra es uno de los propósitos. Los Network Worm tienen un segmento principal que coordina el trabajo de los otros segmentos, llamados también "octopuses".
El Famoso Internet Worm creado por Morrison en 1988 y que tantas máquinas infectó era del tipo Host Computer. Para conocer un Gusano, veamos detalladamente como funcionaba el que hizo Morrison.
El objetivo de ese virus era obtener una "shell" en la otra maquina. Para esto el gusano usaba tres técnicas distintas Sendmail, fingerd y rsh/rexec.
The Sendmail Attack. En el ataque por Sendmail, el gusano abría una conexión TCP con el sendmail de otra maquina (puerto SMTP). Mediante un error del Sendmail, el Gusano creaba un programa C que se compilaba en la máquina ya infectada y reemplazaba la shell común sh por una Worm.
The Fingerd Attack. En este ataque, intentaba infiltrarse por un bug en el daemon del finger (fingerd). Aparentemente era con este bug que el gusano se pudo desparramar con tanta libertad. Al parecer, los argumentos del daemon de finger eran leídos sin tener controles preestablecidos de los límites. El gusano, aprovechándose de eso, ejecutaba un comando y reemplazaba la shell común sh con el gusano. Así, cada vez que un usuario se logueara empezaba a funcionar el Gusano.
The Rsh/Rexec Attack. La tercera forma de entrar a un sistema por una Red, era utilizando la confianza de host. Para esto, necesitaba tener un nombre de usuario y contraseña. Por eso abría el /etc/passwd y probaba contraseñas conocidas. Combinaba nombre de usuario, con la descripción, etc. Cuando conseguía la password de algún usuario, buscaba el archivo .rhosts y usando los comandos de confianza rsh/rexec para obtener una cuenta en otra maquina de confianza y empezar el proceso de nuevo. Cuando el gusano se conectaba a un host satisfactoriamente, creaba un proceso (hijo) que continuaba con la infección, mientras que el primer proceso (padre) sigue buscando host para seguir infectando. Para conseguir host para infectar, el gusano usa distintas técnicas, como por ejemplo el netstat, o edita el /etc/hosts en busca de algún host, cada vez que encuentra uno, intenta infectarlo.
Los Nuevos Worm
Happy99. Fue descubierto en Junio de 1999. La primera vez que es ejecutado se ven fuegos artificiales y un cartel que dice "Happy 99". Este cartel es un fachada, ya que mientras se encarga de reemplazar algunos archivos. Cada mensaje que se manda por e-mail, crea un mensaje alternativo que tiene adjunto el Happy99.
Este gusano tiene una lista de cada e-mail al cual fue enviado una copia del Happy99.
Melissa Virus. El virus Melissa es un virus de Macro en Word, que infecta el sistema y manda 50 copias de sí mismo, utilizando el Microsoft Outlook. Muestra un mensaje que dice "Important Message from " y manda un e-mail adjuntando el archivo .doc. Aún, si la máquina no tuviera el Microsoft Outlook, este Troyano / Virus infecta la máquina.
Bubbleboy Worm. Este gusano nunca salió a la luz, sino que fue creado por una persona que quiso demostrar las falencias que tiene el sistema VBS Script. Lo importante de este virus es que es enviado por e-mail, pero puede infectar a la máquina sin la necesidad de abrir ningún archivo adjunto, ya que el gusano vienen incluido en el e-mail, por eso hace de este gusano muy peligroso. Simplemente al hacerle un click en el mensaje el virus se activa. Es por esto, que este virus solo infecta maquinas Windows 98 / 2000, con IE 5 y Outlook / Outlook Express.
La propagación del Bubbleboy depende de dos controles ActiveX particulares que fueron marcados como "seguros".
Virus Falsos o Hoaxes
Los virus falsos son simplemente mensajes que circulan por e-mail que advierten sobre algún virus inexistente. Estos virus falsos no infectan el sistema ni mucho menos, solo son advertencias, que se multiplican y se mandan por Internet con una gran velocidad. No tienen ningún código oculto ni instrucciones para ejecutar. Funciona de manera muy sencilla: un usuario recibe un e-mail con la advertencia de algún virus raro, estos usuarios lo reenvían a otros usuarios para advertirlos, entonces se genera un tráfico de e-mail sobre una amenaza inexistente.
Virus Falsos conocidos:
Irina. El virus falso Irina empezó como un método de publicidad electrónica creada por una compañía que creó un libro interactivo con el mismo nombre. No pensaron tener tanta repercusión, y terminaron pidiendo perdón por este hecho.
Good Time: Esta advertencia circuló y circula en Internet hace muchos años. El mensaje creado en 1994, decía que un virus que rondaba por AOL podía infectar su máquina y borrar el disco rígido con solo leer el mensaje y que debía ser borrado inmediatamente si este llegaba a alguna casilla.
Penpal Greetings!. Esta advertencia decía que un virus del tipo gusano se iniciaba a él mismo con solo leer un mensaje, borraba el disco rígido y se reenviaba a todas las personas de nuestra Cuenta de correo.
Determinar si existe infección
Realmente nadie puede determinar a ciencia cierta qué síntomas muestra el sistema cuando está infectado ya que los virus son muy variados y sus formas de comportamiento también, a esto se suma que en la actualidad los virus bien programados son mucho más sofisticados que antes y reconocer la presencia de un virus con un simple vistazo no es una habilidad que muchos puedan ostentar.
Podemos mencionar algunos indicios que delatarían la presencia de un virus pero la lista no es definitiva:
Los comandos o acciones que hacemos ejecutar por la computadora aparentan ser más lentos. Esto es debido a que hay un programita extra que no está en nuestros cálculos y que trabaja sobre cada una de las cosas que nosotros hacemos. De todas formas resulta un poco improbable ya que el tamaño de los virus, por lo general, no da lugar a que realicen extensas ejecuciones, descontando obviamente la lentitud de cualquier dispositivo periférico.
Las aplicaciones que ya de por sí son un tanto pesadas en cargarse ahora resultan aún más pesadas.
Dispositivos como la HDD o la FDD son leídos repentinamente sin causa o motivo. Esto puede pasar cuando un virus intenta propagarse a un disquete, por ejemplo.
Los archivos se incrementan levemente en tamaño. Puede ser a causa de un virus que parasita a esos archivos agregando su código al código ejecutable del archivo. En la actualidad resulta más difícil detectar un virus de estos ya que las técnicas stealth permiten que el virus manipule el tamaño de archivo que el usuario termina viendo en la pantalla. El resultado es que el usuario termina viendo el tamaño que tenía el archivo antes de ser infectado en vez del tamaño real actual.
Programas o procesos en memoria que son desconocidos. Para un usuario experimentado resultaría extraño ver en memoria un proceso que él no autorizó a que sea cargado. Los sistemas operativos poseen distintos comandos o programas que permiten ver el estado de la memoria y poder determinar que programas se encuentran cargados en ese momento, entre otras cosas como la dirección en donde están localizados, el tamaño que ocupan, etc.
Existen otras manifestaciones que muchos confunden con síntomas cuando en realidad no lo son. Gráficos poco comunes que aparecen en la pantalla, mensajes nunca antes vistos, letras que se caen y rebotan en el fondo de la pantalla y todo otro tipo de cosas similar no son más que el accionar propio del virus. Los virus fueron programados para ese tipo de cosas –por más ridículas que parezcan para algunos- y no son consecuencias secundarias en el sistema debido a que exista un virus.
Síntomas más comunes de virus
Incluso el mejor software antivirus puede fallar a la hora de detectar un virus. La educación del personal sobre cuáles son posibles síntomas de virus informáticos puede ser la diferencia entre un simple dolor de cabeza y un gran problema. Veamos algunos síntomas:
Los programas comienzan a ocupar más espacio de lo habitual.
Aparecen o desaparecen archivos.
Cambia el tamaño de un programa o un objeto.
Aparecen mensajes u objetos extraños en la pantalla.
El disco trabaja más de lo necesario.
Los objetos que se encuentran en la pantalla aparecen ligeramente distorsionados.
La cantidad de espacio libre del disco disminuye sin ningún tipo de explicación,
Se modifican sin razón aparente el nombre de los ficheros.
No se puede acceder al disco duro.
Cómo proceder ante una infección
Cuando el antivirus logra confirmar la presencia de un virus, lo primero que siente el usuario es pánico. Luego pensará qué hacer y se dará cuenta que no tiene idea cómo enfrentarse a un virus informático. Educar a los usuarios sobre estas cuestiones es tan importante como mantenerlos actualizados de los últimos virus que aparecen.
No intentaremos describir paso a paso la solución cuando se tiene un antivirus actualizado que posiblemente haga todo por nosotros y solo nos solicita que tomemos una decisión. En su lugar, nos posicionaremos desde la perspectiva del antivirus para determinar qué debemos hacer contra un virus una vez que reconocemos un accionar virósico en el sistema. En algunas oportunidades no tendremos otra salida más que utilizar una extracción manual realizada por nosotros mismos. Es muy común este tipo de cosas con los virus de última horneada que no les dan tiempo a los fabricantes de antivirus a actualizar sus definiciones de virus. La página de ViruScan presenta información sobre los últimos virus aparecidos y la forma de extraerlos manualmente.
Cuando uno mismo se va a hacer cargo de la eliminación de un virus es importante contar con el disquete de inicio del sistema operativo limpio de virus para poder arrancar la computadora.
Los riesgos que infunden los virus hoy en día obligaron a que empresas enteras se dediquen a buscar la forma de crear programas con fines comerciales que logren combatir con cierta eficacia los virus que ataquen los sistemas informáticos. Este software es conocido con el nombre de programas antivirus y posee algunas características interesantes para poder cumplir su trabajo.
Como ya dijimos una de las características fundamentales de un virus es propagarse infectando determinados objetos según fue programado. En el caso de los que parasitan archivos, el virus debe poseer algún método para no infectar los archivos con su propio código –para evitar autodestruirse, en otras palabras-, así es que dejan una marca o firma que los identifica de los demás programas o virus.
Para la mayoría de los virus esta marca representa una cadena de caracteres que "inyectan" en el archivo infectado. Los virus más complejos como los polimorfos poseen una firma algorítmica que modificará el cuerpo del mismo con cada infección. Cada vez que estos virus infecten un archivo, mutará su forma y dificultará bastante más las cosas para el software de detección de virus. Ver Virus polimorfos.
El software antivirus es un programa más de computadora y como tal debe ser adecuado para nuestro sistema y debe estar correctamente configurado según los dispositivos de hardware que tengamos. Si trabajamos en un lugar que posee conexión a redes es necesario tener un programa antivirus que tenga la capacidad de detectar virus de redes. Los antivirus reducen sensiblemente los riesgos de infección pero cabe reconocer que no serán eficaces el cien por ciento de las veces y su utilización debería estar acompañada con otras formas de prevención (Más información).
La función primordial de un programa de estos es detectar la presencia de un posible virus para luego poder tomar las medidas necesarias. El hecho de poder erradicarlo podría considerarse como una tarea secundaria ya que con el primer paso habremos logrado frenar el avance del virus, cometido suficiente para evitar mayores daños.
Antes de meternos un poco más adentro de lo que es el software antivirus es importante que sepamos la diferencia entre detectar un virus e identificar un virus. El detectar un virus es reconocer la presencia de un accionar virósico en el sistema de acuerdo a las características de los tipos de virus. Identificar un virus es poder reconocer qué virus es de entre un montón de otros virus cargados en nuestra base de datos. Al identificarlo sabremos exactamente qué es lo que hace, haciendo inminente su eliminación.
De estos dos métodos es importante que un antivirus sea más fuerte en el tema de la detección, ya que con este método podremos encontrar virus todavía no conocidos (de reciente aparición) y que seguramente no estarán registrados en nuestra base de datos debido a que su tiempo de dispersión no es suficiente como para que hayan sido analizados por un grupo de expertos de la empresa del antivirus.
Identificación
Identificar un virus supone, primero, lograr su detección y luego poder determinar de qué virus se trata exactamente. A esta técnica se la conoce con el nombre de scanning o –en Argentina- escaneo. Es muy sencilla de entender. El programa antivirus posee una base de datos con ciertas strings propias de cada virus. Estas strings no son más que las firmas que mencionamos más atrás en el texto, o sea cadenas de caracteres que el scanner del antivirus utilizará como huella digital para identificar de qué virus se trata. El scanner comienza a revisar uno por uno el código de los archivos almacenados intentando encontrar alguno de estos fragmentos representativos de los virus que tiene registrados. Con cada una de las verificaciones no se revisa la base de datos completa ya que resultaría bastante trabajoso y en una pérdida de tiempo considerable, aunque de hecho el hacer un escaneo de nuestra unidad de disco rígido lleva algún tiempo. Entonces, cada antivirus utilizará diferentes técnicas algorítmicas para agilizar un poco este paso de comparar el código contra su base de datos.
Hoy en día la producción de virus se ve masificada e Internet colabora enormemente en la dispersión de virus de muchos tipos, incluyendo los "virus caseros". Muchos de estos virus son creados por usuarios inexpertos con pocos conocimientos de programación y, en muchos casos, por simples usuarios que bajan de Internet programas que crean virus genéricos. Ante tantos "desarrolladores" al servicio de la producción de virus la técnica de scanning se ve altamente superada. Las empresas antivirus están constantemente trabajando en la búsqueda y documentación de cada nuevo virus que aparece. Muchas de estas empresas actualizan sus bases de datos todos los meses, otras lo hacen quincenalmente, y algunas pocas llegan a hacerlo todas las semanas (cosa más que importante para empresas que necesitan una alta protección en este campo o para usuarios fanáticos de obtener lo último en seguridad y protección).
La debilidad de la técnica de scanning es inherente al modelo. Esto es debido a que un virus debería alcanzar una dispersión adecuada para que algún usuario lo capture y lo envíe a un grupo de especialistas en virus que luego se encargarán de determinar que parte del código será representativa para ese virus y finalmente lo incluirán en la base de datos del antivirus. Todo este proceso puede llevar varias semanas, tiempo suficiente para que un virus eficaz haga de las suyas. En la actualidad, Internet proporciona el canal de bajada de las definiciones antivirus que nos permitirán identificar decenas de miles de virus que andan acechando. Estas decenas de miles de virus, como dijimos, también influirán en el tamaño de la base de datos. Como ejemplo concreto podemos mencionar que la base de datos de Norton Antivirus de Symantec Corp. pesa alrededor de 2MB y es actualizada cada quince o veinte días.
La técnica de scanning no resulta ser la solución definitiva, ni tampoco la más eficiente, pero continúa siendo la más utilizada debido a que permite identificar con cierta rapidez los virus más conocidos, que en definitiva son los que lograron adquirir mayor dispersión.
Técnicas de detección
Teniendo en cuenta los puntos débiles de la técnica de scanning surgió la necesidad de incorporar otros métodos que complementaran al primero. Como ya se mencionó la detección consiste en reconocer el accionar de un virus por los conocimientos sobre comportamiento que se tienen sobre ellos, sin importar demasiado su identificación exacta. Este otro método buscará código que intente modificar la información de áreas sensibles del sistema sobre las cuales el usuario convencional no tiene control –y a veces ni siquiera tiene conocimiento-, como el master boot record, el boot sector, la FAT, entre las más conocidas.
Otra forma de detección que podemos mencionar adopta, más bien, una posición de vigilancia constante y pasiva. Esta, monitorea cada una de las actividades que se realizan intentando determinar cuándo una de éstas intenta modificar sectores críticos de las unidades de almacenamiento (mencionados en el primer párrafo de este apartado), entre otros. A esta técnica se la conoce como chequear la integridad y es tratada con mayor detalle más adelante.
Análisis heurístico
La técnica de detección más común es la de análisis heurístico. Consiste en buscar en el código de cada uno de los archivos cualquier instrucción que sea potencialmente dañina, acción típica de los virus informáticos. Es una solución interesante tanto para virus conocidos como para los que no los son. El inconveniente es que muchas veces se nos presentarán falsas alarmas, cosas que el scanner heurístico considera peligrosas y que en realidad no lo son tanto. Por ejemplo: tal vez el programa revise el código del comando DEL (usado para borrar archivos) de MS-DOS y determine que puede ser un virus, cosa que en la realidad resulta bastante improbable. Este tipo de cosas hace que el usuario deba tener algunos conocimientos precisos sobre su sistema, con el fin de poder distinguir entre una falsa alarma y una detección real.
Eliminación
La eliminación de un virus implica extraer el código del archivo infectado y reparar de la mejor manera el daño causado en este. A pesar de que los programas antivirus pueden detectar miles de virus, no siempre pueden erradicar la misma cantidad, por lo general pueden quitar los virus conocidos y más difundidos de los cuales pudo realizarse un análisis profundo de su código y de su comportamiento. Resulta lógico entonces que muchos antivirus tengan problemas en la detección y erradicación de virus de comportamiento complejo, como el caso de los polimorfos, que utilizan métodos de encriptación para mantenerse indetectables. En muchos casos el procedimiento de eliminación puede resultar peligroso para la integridad de los archivos infectados, ya que si el virus no está debidamente identificado las técnicas de erradicación no serán las adecuadas para el tipo de virus.
Hoy en día los antivirus más populares están muy avanzados pero cabe la posibilidad de que este tipo de errores se de en programas más viejos. Para muchos el procedimiento correcto sería eliminar completamente el archivo y restaurarlo de la copia de respaldo. Si en vez de archivos la infección se realizó en algún sector crítico de la unidad de disco rígido la solución es simple, aunque no menos riesgosa. Hay muchas personas que recomiendan reparticionar la unidad y reformatearla para asegurarse de la desaparición total del virus, cosa que resultaría poco operativa y fatal para la información del sistema. Como alternativa a esto existe para el sistema operativo MS-DOS / Windows una opción no documentada del comando FDISK que resuelve todo en cuestión de segundos. El parámetro /MBR se encarga de restaurar el registro maestro de booteo (lugar donde suelen situarse los virus) impidiendo así que este vuelva a cargarse en el inicio del sistema. Vale aclarar que cualquier dato que haya en ese sector será sobrescrito y puede afectar mucho a sistemas que tengan la opción de bootear con diferentes sistemas operativos. Muchos de estos programas que permiten hacer la elección del sistema operativo se sitúan en esta área y por consiguiente su código será eliminado cuando se usa el parámetro mencionado.
Para el caso de la eliminación de un virus es muy importante que el antivirus cuente con soporte técnico local, que sus definiciones sean actualizadas periódicamente y que el servicio técnico sea apto para poder responder a cualquier contingencia que nos surja en el camino.
Comprobación de integridad
Como ya habíamos anticipado los comprobadores de integridad verifican que algunos sectores sensibles del sistema no sean alterados sin el consentimiento del usuario. Estas comprobaciones pueden aplicarse tanto a archivos como al sector de arranque de las unidades de almacenamiento.
Para poder realizar las comprobaciones el antivirus, primero, debe tener una imagen del contenido de la unidad de almacenamiento desinfectada con la cual poder hacer después las comparaciones. Se crea entonces un registro con las características de los archivos, como puede ser su nombre, tamaño, fecha de creación o modificación y, lo más importante para el caso, el checksum, que es aplicar un algoritmo al código del archivo para obtener un valor que será único según su contenido (algo muy similar a lo que hace la función hash en los mensajes). Si un virus inyectara parte de su código en el archivo la nueva comprobación del checksum sería distinta a la que se guardó en el registro y el antivirus alertaría de la modificación. En el caso del sector de booteo el registro puede ser algo diferente. Como existe un MBR por unidad física y un BR por cada unidad lógica, algunos antivirus pueden guardarse directamente una copia de cada uno de ellos en un archivo y luego compararlos contra los que se encuentran en las posiciones originales.
Una vez que el antivirus conforma un registro de cada uno de los archivos en la unidad podrá realizar las comprobaciones de integridad. Cuando el comprobador es puesto en funcionamiento cada uno de los archivos serán escaneados. Nuevamente se aplica la función checksum y se obtiene un valor que es comparado contra el que se guardó en el registro. Si ambos valores son iguales el archivo no sufrió modificaciones durante el período comprendido entre el registro de cheksum antiguo y la comprobación reciente. Por el otro lado, si los valores checksum no concuerdan significa que el archivo fue alterado y en ciertos casos el antivirus pregunta al usuario si quiere restaurar las modificaciones. Lo más indicado en estos casos sería que un usuario con conocimientos sobre su sistema avale que se trata realmente de una modificación no autorizada –y por lo tanto atribuible a un virus-, elimine el archivo y lo restaure desde la copia de respaldo.
La comprobación de integridad en los sectores de booteo no es muy diferente. El comprobador verificará que la copia que está en uso sea igual a la que fue guardada con anterioridad. Si se detectara una modificación en cualquiera de estos sectores, se preguntará al usuario por la posibilidad de reconstruirlos utilizando las copias guardadas. Teniendo en cuenta que este sector en especial es un punto muy vulnerable a la entrada de los virus multipartitos, los antivirus verifican constantemente que no se hagan modificaciones. Cuando se detecta una operación de escritura en uno de los sectores de arranque, el programa toma cartas en el asunto mostrando en pantalla un mensaje para el usuario indicándole sobre qué es lo que está por suceder. Por lo general el programa antivirus ofrece algunas opciones sobre como proceder, como evitar la modificación, dejarla continuar, congelar el sistema o no tomar ninguna medida (cancelar).
Para que esta técnica sea efectiva cada uno de los archivos deberá poseer su entrada correspondiente en el registro de comprobaciones. Si nuevos programas se están instalando o estamos bajando algunos archivos desde Internet, o algún otro archivo ingresa por cualquier otro dispositivo de entrada, después sería razonable que registremos el checksum con el comprobador del antivirus. Incluso, algunos de estos programas atienden con mucha atención a lo que el comprobador de integridad determine y no dejarán que ningún archivo que no esté registrado corra en el sistema.
Proteger áreas sensibles
Muchos virus tienen la capacidad de "parasitar" archivos ejecutables. Con esto queremos decir que el virus localizará los puntos de entrada de cualquier archivo que sea ejecutable (los archivos de datos no se ejecutan por lo tanto son inutilizables para los virus) y los desviará a su propio código de ejecución. Así, el flujo de ejecución correrá primero el código del virus y luego el del programa y, como todos los virus poseen un tamaño muy reducido para no llamar la atención, el usuario seguramente no notará la diferencia. Este vistazo general de cómo logra ejecutarse un virus le permitirá situarse en memoria y empezar a ejecutar sus instrucciones dañinas. A esta forma de comportamiento de los virus se lo conoce como técnica subrepticia, en la cual prima el arte de permanecer indetectado.
Una vez que el virus se encuentra en memoria puede replicarse a sí mismo en cualquier otro archivo ejecutable. El archivo ejecutable por excelencia que atacan los virus es el COMMAND.COM, uno de los archivos fundamentales para el arranque en el sistema operativo MS-DOS. Este archivo es el intérprete de comandos del sistema, por lo tanto, se cargará cada vez que se necesite la shell. La primera vez será en el inicio del sistema y, durante el funcionamiento, se llamará al COMMAND.COM cada vez que se salga de un programa y vuelva a necesitarse la intervención de la shell. Con un usuario desatento, el virus logrará replicarse varias veces antes de que empiecen a notarse síntomas extraños en la PC.
El otro "ente" ejecutable capaz de ser infectado es el sector de arranque de los discos magnéticos. Aunque este sector no es un archivo en sí, contiene rutinas que el sistema operativo ejecuta cada vez que arranca el sistema desde esa unidad, resultando este un excelente medio para que el virus se propague de una computadora a la otra. Como dijimos antes una de las claves de un virus es lograr permanecer oculto dejando que la entidad ejecutable que fue solicitada por el usuario corra libremente después de que él mismo se halla ejecutado. Cuando un virus intenta replicarse a un disquete, primero deberá copiar el sector de arranque a otra porción del disco y recién entonces copiar su código en el lugar donde debería estar el sector de arranque.
Durante el arranque de la computadora con el disquete inserto en la disquetera, el sistema operativo MS-DOS intentará ejecutar el código contenido en el sector de booteo del disquete. El problema es que en esa posición se encontrará el código del virus, que se ejecuta primero y luego apuntará el puntero de ejecución a la nueva posición en donde se encuentran los archivos para el arranque. El virus no levanta sospechas de su existencia más allá de que existan o no archivos de arranque en el sector de booteo.
Nuestro virus se encuentra ahora en memoria y no tendrá problemas en replicarse a la unidad de disco rígido cuando se intente bootear desde esta. Hasta que su módulo de ataque se ejecute según fue programado, el virus intentará permanecer indetectado y continuará replicándose en archivos y sectores de booteo de otros disquetes que se vayan utilizando, aumentando potencialmente la dispersión del virus cuando los disquetes sean llevados a otras máquinas.
Demonios de protección
Estos programas residentes en memoria son módulos del antivirus que se encargan de impedir la entrada del cualquier virus y verifican constantemente operaciones que intenten realizar modificaciones por métodos poco frecuentes. Estos, se activan al arrancar el ordenador y por lo general es importante que se carguen al comienzo y antes que cualquier otro programa para darle poco tiempo de ejecución a los virus y detectarlos antes que alteren algún dato. Según como esté configurado el antivirus, el demonio (como se los conoce en el ambiente Unix) o TSR (en la jerga MS-DOS / Windows), estará pendiente de cada operación de copiado, pegado o cuando se abran archivos, verificará cada archivo nuevo que es creado y todos los downloads de Internet, también hará lo mismo con las operaciones que intenten realizar un formateo de bajo nivel en la unidad de disco rígido y, por supuesto, protegerá los sectores de arranque de modificaciones.
Las nuevas computadoras que aparecieron con formato ATX poseen un tipo de memoria llamada Flash-ROM con una tecnología capaz de permitir la actualización del BIOS de la computadora por medio de software sin la necesidad de conocimientos técnicos por parte del usuario y sin tener que tocar en ningún momento cualquiera de los dispositivos de hardware. Esta nueva tecnología añade otro punto a favor de los virus ya que ahora estos podrán copiarse a esta zona de memoria dejando completamente indefensos a muchos antivirus antiguos. Un virus programado con técnicas avanzadas y que haga uso de esta nueva ventaja es muy probable que sea inmune al reparticionado o reformateo de las unidades de discos magnéticos.
Aplicar cuarentena
Es muy posible que un programa antivirus muchas veces quede descolocado frente al ataque de virus nuevos. Para esto incluye esta opción que no consiste en ningún método de avanzada sino simplemente en aislar el archivo infectado. Antes que esto el antivirus reconoce el accionar de un posible virus y presenta un cuadro de diálogo informándonos. Además de las opciones clásicas de eliminar el virus, aparece ahora la opción de ponerlo en cuarentena. Este procedimiento encripta el archivo y lo almacena en un directorio hijo del directorio donde se encuentra el antivirus.
De esta manera se está impidiendo que ese archivo pueda volver a ser utilizado y que continúe la dispersión del virus. Como acciones adicionales el antivirus nos permitirá restaurar este archivo a su posición original como si nada hubiese pasado o nos permitirá enviarlo a un centro de investigación donde especialistas en el tema podrán analizarlo y determinar si se trata de un virus nuevo, en cuyo caso su código distintivo será incluido en las definiciones de virus. En la figura vemos el programa de cuarentena Quarantine de Norton Antivirus 5.0. Nos permite enviar los archivos infectados al SARC (Symantec Antivirus Research Center) para su posterior análisis.
Definiciones antivirus
Los archivos de definiciones antivirus son fundamentales para que el método de identificación sea efectivo. Los virus que alcanzaron una considerable dispersión pueden llegar a ser analizados por los ingenieros especialistas en virus de algunas de las compañías antivirus, que mantendrán actualizadas las definiciones permitiendo así que las medidas de protección avancen casi al mismo paso en que lo hacen los virus.
Página anterior | Volver al principio del trabajo | Página siguiente |