martes, 1 de diciembre de 2009

¿Que es un virus informático y como actua? - Felipe Gonzales

Investigando sobre algunos asuntos de seguridad, me he encontrado con este magnifico post de Felipe Gonzales, en donde explica que es un virus Informático y como actua.

Nota: Acontinuacion pongo el documento, sin embargo esta es una copia del post de Felipe Gonzales. El post original lo encuentras aquí.

Amigos, el término virus en nuestros días se ha hecho tan común que ahora lo usamos para describir a casi todo el software malicioso que conocemos: troyanos, backdoors, spyware, bots, keyloggers, rootkits, etc.

En realidad el término más adecuado para todo lo que acabamos de describir es: MALWARE ( que viene de MALicious softWARE) o Software malicioso.

Software malicioso es todo aquel que contiene código hostil e intrusivo y que sin consentimiento informado del usuario se ejecuta sobre el ordenador. Cuando digo consentimiento informado hablo de aquel en el que el usuario tiene plena conciencia de los efectos, implicaciones y consecuencias de lo que sucederá si decide ejecutar determinado programa.

Considero que es bueno poder diferenciar a todo el Software Malicioso, ya que puede ayudarnos a identificarlos, analizarlos y de acuerdo a esto, incluso podamos escoger el método más adecuado de eliminación y/o desinfección.

Con este post inicio la saga que denominaré: ” Identificando al Enemigo”, y como tema inicial: Qué es un virus informático.

Posteriormente, los temas serán:

Identificando al enemigo: Qué es un gusano.
Identificando al enemigo: Qué es un troyano.
Identificando al enemigo: Qué es Adware y Spyware.
Identificando al enemigo: Qué es un backdoor.
Identificando al enemigo: Qué es una BotNet.
Identificando al enemigo: Qué es un Bug y un Exploit.
Identificando al enemigo: Qué es un Rootkit.
Identificando al enemigo: Qué es una Bomba Lógica.
Identificando al enemigo: etc…

Cada tema contendrá ejemplos reales y muestras de cómo funcionan.

Empecemos ahora definiendo e identificando a los verdaderos virus.

Un virus informático al igual que un virus biológico, necesita un huesped en el cual insertar su código, este huesped infectado a su vez, va infectando a los demás. Para nuestro caso los huéspedes suelen ser archivos ejecutables y/o correos, archivos html, etc.

Un virus informático en el sentido correcto entonces, es aquel que es capaz de insertar su código dentro un programa, correo o archivo HTML y también dentro de documentos de Microsoft Office (en el caso de los Virus de Macros), de modo que al ejecutarse el programa, abrir el correo, el documento o la página web, se ejecute también el código del virus. El virus al ser ejecutado es cargado en memoria y desde ahí procede a infectar los demás archivos, y es así como se reproduce

La siguiente imagen es una muestra de cómo un virus infector inserta su código en el archivo huesped.

virus

Como podemos ver en la figura, el virus escribe parte de su código en el archivo, parcha rutinas y mueve ciertas secuencias o segmentos de código a otras partes de modo que el archivo oprograma pueda seguir ejecutándose. En algunos casos - y dependiendo de la técnica de infección - el tamaño del archivo infectado puede crecer o no, de acuerdo a la cantidad de bytez insertados por el virus.

Esto diferencia a los infectores de sobreescritura destructiva que sólo escriben su código sin preocuparse de que el archivo siga siendo válido. Un infector de sobreescritura destructiva una vez que infecta un archivo, solamente ejecutará su rutina más ya no el código delprograma original. Es por eso que muchas veces es facil darnos cuenta cuando algo está mal. Este tipo de virus son más fáciles de detectar por las razones mencionadas.

Los verdaderos virus, a parte de sobreescribir su código se aseguran de que el archivo o ejecutable siga “funcionando” de modo que al ejecutarse el código delprograma, también se ejecute el código insertado del virus. Si el virus está bien diseñado es bien dificil que se note la infección, pues todo aparenta seguir funcionando normalmente. Este es el caso de los tan conocidos y mencionados Virus Sality, Halman, Virut, etc.

Esto es lo que diferencia un virus de un gusano. El gusano necesita copias de sí mismo para seguir propagándose ( ya sea por autoejecución de autoruns - lo más usual en la actualidad-, autoinicio en el registro del sistema, etc).

En cambio el virus, infecta e inserta su código en el huesped (ejecutables, mensaje de correo, archivo html, documentos, etc) y ahí es donde se transporta. Cuando el archivo infectado es ejecutado, también se ejecuta el código delvirus. No percibimos la ejecución anomal o el cambio a simple vista ya que un gusano lo podemos detectar al encontrar un archivo raro dentro de nuestras carpetas, pero al virus no - al menos a simple vista ( ya veremos más adelante cómo podemos verificar que nuestros archivos y/o ejecutables han sido modificados) -.

Por ejemplo el virus Sality busca en todas las unidades locales y de red por archivos ejecutables de formato PE e inserta su código dentro ellos. Esto es, reemplaza el Punto de Entrada (Entry Point) de los archivos y lo infecta con su código viral y se agrega así mismo al final de la última sección de la Imagen del archivo PE. Esto - dependiendo de la variante y la técnica de infección - hace que el tamaño del archivo crezca en unos cuantos KiloBytes, si es que usa la técnica de infección EPO y si usa la técnica Cavity, posiblemente ni aumente en tamaño.

  • EPO (Entry Point Obscure) (Ocultamiento del Punto de Entrada o de Ejecución).- Es una técnica para infectar programas mediante la cual un virus intenta ocultar su punto de entrada para evitar ser detectado. El virus, en lugar de tomar el control y realizar sus acciones al principio del programa (de su utilización o ejecución), permite el correcto funcionamiento de éste hasta un cierto momento en el que comienza a actuar.
  • Cavity: Es una técnica utilizada por algunos virus y gusanos para dificultar su localización. Aplicando dicha técnica consiguen no variar el tamaño de cada uno de los ficheros infectados o afectados insertando su código en los espacios en blanco(”cavidades”) del archivo.

En la mayoría de los casos los virus infectores de ejecutables pueden acarrear daños irreparables a los archivos con las técnicas mencionadas, ya que dificultan no solamente su detección sino también su eliminación. Y también la mayoría de las veces la única forma de remover elvirus es remover también el archivo infectado, lo que significa mejor formatear el sistema operativo, e instalar las aplicaciones desde fuentes confiables.

Amigos, acabamos de ver a grandes rasgos la definición más acertada sobre virus informático. En los temas posteriores veremos que en la actualidad hay mucho malware que combina las características de gusanos, bots,rootkits, exploits, etc…

El siguiente video tiene un tamaño de 39 MB y tiene una duración de 32 minutos .

El video está dividido en las siguientes secciones:

Identificando al Enemigo: Qué es un Virus Informático.

Caso: Virus Virut

1. - DEFINICIÓN DE VIRUS INFORMÁTICO

  • 1.1.- Infector de ejecutables VIRUT

2.- ANALISIS PREVIO LA INFECCION

  • 2.1.- Verificación de integridad en archivos
  • 2.1.1.- HashChecker Shell Extension
  • 2.1.2.- Spy The Spy
  • 2.1.3.- Verificación de carpeta WINDOWS
  • 2.1.4.- Copia de seguridad de msconfig.exe para posterior verificación.

3. ANALISIS POST-INFECCION

  • 3.1.- Ejecución de archivo infectado
  • 3.2.- Monitoreo de modificaciones con Spy the Spy
  • 3.3.- Comparación de Hashes MD5 de archivos
  • 3.4.- Copia de muestra de msconfig.exe Infectado para comparación con msconfig_original.exe
  • 3.5.- Comparación entre archivos original e infectado
  • 3.5.1.- A simple vista : tamaño
  • 3.5.2.- Comparación de hashes: Sumas MD5.
  • 3.5.3.- Internamente : Estructura binaria y en código usando Araxis Merger e IDA (Interactive DissAssembler)

Espero les guste el video.

Para descargar el video haz click en el siguiente enlace:

imagesthumbnail


Excelente artículo.

Enlaces:
MyGeekSide - Articulos de seguridad informática.

0 comentarios: