sábado, 22 de diciembre de 2007

¿Qué es un virus informático?

Antes de poder comenzar a comprender el alcance de los códigos maliciosos de la actualidad, debemos entender cuáles fueron los disparadores.

Los virus informáticos fueron, de alguna manera, el inicio de todo, y el primer tipo de código malicioso que alcanzó altos niveles de propagación.

Un virus informático es, básicamente, como un virus biologico, aunque a veces se los ha comparado con las bacterias.

El funcionamiento básico de un virus es el siguiente:


  • Se esconden dentro del contenido de un archivo ejecutable (.exe., .com, .scr, etc)

  • Cuando el archivo ejecutable que contiene el virus es abierto por el usuario, intentará copiarse a otros archivos ejecutables para propagarse

  • Pueden contener lo que se denomina como payloads: rutinas preparadas para ejecutarse ante ciertos eventos, por ejemplo, para mostrar mensajes, cambiar configuraciones del sistema o eliminar archivos, entre otras cosas

  • Para propagarse a otras computadoras, un archivo ejecutable que contenga un virus debe ser transferido a través de algún medio, por ejemplo, un CD, disco flexible, un correo electrónico, etc.


Los virus fueron uno de los primeros intentos de inteligencia artificial aplicada a las computadoras, dado que el objetivo de sus primeros creadores era lograr microorganismos informáticos que fueran capaz de reproducirse y seguir viviendo.

Un virus informático puede infectar (copiarse dentro de un archivo ejecutable) solamente cuando su “anfitrión” es ejecutado, ya sea por el usuario o por el sistema operativo.

En próximas lecciones, analizaremos otros tipos de códigos maliciosos, su funcionamiento y modos de propagación hasta la actualidad.

Lección 1: ¿Qué es un troyano?

Aunque las chicas (y algunos chicos) recuerden a Brad Pitt cuando se habla de troyano (por la película de hace algunos años donde al Sr. Jolie se lo ve algo suelto de ropa), cuando nos referimos a este termino en el ámbito de la seguridad informática el sentido no es tan “agradable”.

Troyano es la “españolización” del termino anglosajón Trojan Horse, que realmente debería traducirse como Caballo de Troya.

Desde el punto de vista técnico y de comportamiento, un troyano se diferencia totalmente de los virus informáticos tradicionales. Un troyano es un programa ejecutable (incluyendo código ejecutable de cualquier tipo) que tiene el objetivo de realizar una función en particular.

Se lo denomina troyano porque su objetivo final está camuflado, simulando hacer otra cosa. Por ejemplo, un troyano puede mostrar una ventana con una imagen o mensaje de error y mientras tanto realizar alguna acción maliciosa.

Básicamente, cualquier programa ejecutable con fines maliciosos que no se reproduzca por si solo (algo inherente a este tipo de malware) es considerado un troyano. Lo que finalmente lo caracteriza del todo bajo esta definición es el hecho de que el usuario crea, de acuerdo al engaño del atacante, que está ejecutando otra cosa.

En la actualidad, existen infinidad de subclasificaciones de troyanos que realizan funciones específicas de distinta índole. Por ejemplo, descargar otro malware, abrir una puerta trasera, etc.

Lección 2: ¿Qué es un gusano?

No confundir, no me refiero a esto, sino a un gusano informático, un tipo de código malicioso que ha evolucionado tanto que hasta su definición inicial no tiene nada que ver con la actual.

Décadas atrás (si, hace más de 25 años que tenemos virus informáticos), los gusanos eran un tipo de virus que se “comían” el espacio libre en el disco duro. Al estar instalados en un equipo, mediante la infección del mismo, procedían a ocupar tanto espacio en disco como les era posible con el objetivo de llenarlo completamente. Divertido, ¿no?

Luego, el término gusano cambio por el que hizo Morris, que en lugar de hacerse del espacio de un disco duro, su función era propagarse copiándose de equipo a equipo, a través de una vulnerabilidad. Con dicho gusano nació lo que hoy llamamos gusanos de Internet.

Con el advenimiento del correo electrónico, aparecieron los gusanos específicos para esa tecnología. Básicamente, son códigos maliciosos capaces de auto-enviarse por correo electrónico como archivos adjuntos y dependen del usuario o vulnerabilidades para poder seguir reproduciéndose.

Es importante tener en cuenta que un gusano no se reproduce dentro de otros archivos ejecutables, es decir, no infecta como lo hace un virus informático. Lo que hace es intentar hacer llegar copias de si mismo a otras computadoras.

Finalmente, una definición de gusano informático sería aquel código malicioso que es capaz de propagarse de una computadora a otra a través de cualquier medio de comunicación.

Malware como el Iloveyou, Klez, Melissa y otros tantos de los más famosos de Internet fueron, claramente, gusanos. Hoy en día, este tipo de códigos maliciosos es principalmente usado como medio de transporte para instalar otras amenazas informáticas en los equipos infectados.

Lección 3: ¿Qué es un macrovirus?

Habiendo ya repasado lo que son los tipos más conocidos de códigos maliciosos (virus, troyanos y gusanos), vamos a hacer un apartado para hablar sobre los macrovirus, un tipo de amenaza que fue muy popular desde mediados de los 90 hasta principios del nuevo siglo, habiendo decaído recientemente a niveles muy bajos.

Más allá de la caída en las detecciones y apariciones de nuevos macrovirus, este tipo de virus marcó varios hitos en la historia.

El termino macrovirus proviene de la unión de dos términos “macro” y “virus”. Se le dio ese nombre porque los primeros ejemplares de este tipo de virus aprovechaban la funcionalidad de macros incorporada en las primeras versiones del Microsoft Office, específicamente del Word.

Lo que producían era que al abrir un documento infectado, se realizarán una serie de acciones preprogramadas, además de infectar otros documentos que estuvieran limpios, para seguir propagando las infecciones.

Con la incorporación de un lenguaje de programación (VBA) a los archivos del Microsoft Office, comenzaron a aparecer macrovirus mucho más complejos, capaces incluso de reproducirse por email (como el masivo Melissa, uno de los primeros macrovirus gusanos).

Por la forma en que las macros funcionaban, y el lenguaje que era utilizado por las mismas, el alcance de los macrovirus era casi infinito. Incluso, dado que las funcionalidades de macros se expandieron a otros productos (como AutoCAD o Visio), este tipo de virus dejó de ser exclusivo del Office.

Durante mucho tiempo, fueron uno de los tipos de virus de mayor prevalencia de la historia. Pero ante el agregado de nuevas funcionalidades de seguridad en Microsoft Office y ante la mejora de los software antivirus, los creadores de malware comenzaron a cambiar y a usar otros tipos de códigos maliciosos basados en ejecutables tradicionales.

Lección 4: ¿Qué es un exploit?

Los software de cualquier tipo (sistemas operativos, navegadores, suites ofimáticas, etc.) pueden contener lo que denominamos agujeros de seguridad: errores en su programación que permiten que usuarios ú otros programas realicen acciones no permitidas por el software vulnerable (el que tiene el agujero de seguridad).

Los exploits entonces son programas o códigos que permiten la explotación (de ahí viene el termino) de dicho agujero de seguridad en forma automatizada.

Algunos agujeros de seguridad permiten, por ejemplo, que al ser explotados se pueda acceder a mayores permisos dentro de un sistema o que directamente se pueda ejecutar acciones que en realidad no se debería poder hacer a través del software explotado. Por ejemplo, los casos más comunes son la ejecución de acciones a través del navegador (cuando visualizamos una página) o del correo electrónico (cuando abrimos un mensaje).

Los exploits son utilizados normalmente por el malware para poder auto-ejecutarse o auto-instalarse en un equipo informático cuando no debería poder hacerse a través de medios normales.



Lección 5: ¿Qué es un spyware?

Ahora nos toca analizar qué son los spyware, también conocidos como Software Espía.

Lo que se conoce a spyware en la actualidad dista de lo que inicialmente fue. Originalmente, un spyware era un software malicioso cuya función era monitorear (espiar) la actividad del usuario y reportarla a un servidor remoto. Estaba asociado a una evolución del adware, con el objetivo de saber qué hace el usuario cuando utiliza su computadora y reportarlo para poder mostrarle publicidad personalizada a sus gustos y usos.

Mientras que la definición de spyware no ha cambiado, ahora se cataloga de esa manera a muchos otros software maliciosos que interactúan con el usuario a través de barras de herramientas, ventanas emergentes con publicidades y otro tipo de acciones que se asemejan más al adware.

Lo importante a tener en cuenta cuando hablamos de spyware es lo siguiente:

  • El software se instala sin el consentimiento del usuario, a través de alguna vulnerabilidad o junto a otro software

  • El software monitorea acciones del usuario y las reporta a un servidor remoto

  • El software interactúa con el usuario en forma subrepticia o engañosa

  • El software es difícil de eliminar manualmente


Si algún software cumple la mayoría de las definiciones anteriores, es seguramente un spyware.

Lección 6: ¿Qué es un rootkit?

En un principio, se llamaban root kits dado que eran una serie de herramientas modificadas para ganar privilegios de usuario administrador en sistemas *nix (Unix, Linux, etc.). El nombre de “superusuario” en esos sistemas es root y dado que eran un conjunto de aplicaciones varias se trataban de un kit.


El objetivo del kit era poder realizar acciones que solo un administrador podría hacer, luego de haber ingresado al sistema, y luego mantenerlas ocultas de registros y logs del sistema.


Hoy por hoy, el término también se sigue utilizando para lo anterior, pero cuando nos referimos a sistemas Windows, el objetivo cambia, así como la definición en si misma.


Cuando hablamos de rootkits en Windows, nos referimos a aplicaciones que son capaces de ocultarse en el sistema, evitando que sus procesos, archivos y relacionados puedan ser vistos por vías normales, sin tener en cuenta el usuario utilizado, administrador o no.


Incluso, ya no son un kit de herramientas per se, sino que se trata más bien de técnicas que se incorporan a otros códigos maliciosos, o de una única herramienta que permite ocultar otros procesos y/o archivos maliciosos.


La problemática de los rootkits en Windows es que, debido a la forma en que trabajan, no se pueden detectar por métodos normales, por ende, tampoco pueden eliminarse fácilmente. Se basan en “funcionalidades” del sistema operativo que permiten este tipo de métodos de ocultación. Dado el origen del termino rootkit en Linux, y su actual vigencia, sería más lógico hablar de stealthing cuando nos referimos a Windows.


Las técnicas rootkits son ampliamente utilizadas hoy en día en sistemas Windows lo que lleva a necesitar herramientas y/o pasos adicionales para la eliminación de ciertos malware. No todos los productos de seguridad contra malware incorporan actualmente técnicas nativas de detección de rootkits activos en un sistema, y menos aún, de eliminación de los mismos.