Está en la página 1de 29

UNIVERSIDAD MAYOR DE SAN ANDRES FACULTAD DE CIENCIAS PURAS Y NATURALES CARRERA INFORMATICA

PERFIL DE TESIS DE GRADO INGENIERA INVERSA DE CDIGO FUENTE PARA LA DETECCIN DE CDIGO MALICIOSO - VIRUS Para optar al ttulo de licenciado en informtica Mencin Ingeniera de Sistemas Informticos
Postulante: Univ. Jose Luis Villazante Quispe Tutor: Lic. Efrain Silva Revisor: Lic. Jhonny R. Felipez LA PAZ BOLIVIA 2010

INGENIERIA INVERSA DE CODIGO FUENTE PARA LA DETECCION DE CODIGO MALICIOSO - VIRUS 1. Introduccin Cuando se entra al mundo de la computacin, no tardaremos mucho en empezar a or trminos tales como virus, gusanos (worms), caballo de Troya, spyware o simplemente escuchar a alguien decir: Mi mquina esta infectada. Es necesario conocer ampliamente estos conceptos ya que el vandalismo puede destruir daar o alterar los datos de cualquier computadora. Qu son los virus?, la mayora de las personas tienen una idea errada acerca de los virus. Los virus son programas maliciosos creados con el fin de hacer dao a la PC En realidad los virus que daan a la PC son pocos, me atrevera incluso a decir que simplemente el 10% de todos los software maliciosos hace dao a la informacin, y el resto entorpece el funcionamiento del sistema, consume memoria haciendo lenta la PC. Existen varias formas de presentacin de ataque de los virus, existen los virus que se incrustan en otros ejecutables (extensiones EXE, COM), libreras de programas (extensiones DLL, OVL), otros capaces de ejecutarse en macros (extensiones DOC, XLS, MDB) y otros que se colocan en el sector de arranque del disco duro de manera que se activan siempre que se pone en marcha el computador, o simplemente los creados para actuar cuando sean ejecutados (comnmente se los lleva en los flash memory). Quin los crea?, programadores expertos en conocimiento del registro de Windows, por el simple hecho de demostrar su capacidad o por el placer de hacer dao, Tambin hay quienes creen que muchos virus son creados en secreto por las mismas empresas que comercializan los antivirus. Cuando los equipos de computacin son infectados por uno o varios virus y adems nuestro sistema antivirus falla se opta a una salida rpida, el formateo de las unidades de almacenamiento (Disco Duro), lo que podra causar perdida de

informacin, perdida de tiempo y lo que es peor, existe la posibilidad que nuestro equipo vuelva a adquirir el virus. Por otro lado el desarrollo de programas se da combinando herramientas y tcnicas que paso a paso nos sirven para llegar a un producto final (software). Sin embargo muchas veces surge la necesidad de realizar lo contrario, es decir que a partir del software final se procede al anlisis, indagacin, diseo y requerimientos que dieron origen al software. Este proceso es conocido como ingeniera inversa de software. Por tal razn el presente trabajo de investigacin se encargara de analizar archivos con la extensin .EXE para poder saber si este contiene cdigo viral.

2. Antecedentes Los virus informticos son programas maliciosos que deben ser tratados con herramientas capaces de eliminarlos. La principal ayuda que se tienen son los ANTIVIRUS, que en la actualidad existen para todos los gustos, pero son pocos los que realmente brindan una seguridad veras y confiable, los principales podra mencionar PANDA Antivirus, AVG Antivirus. En la Universidad Mayor de San Andrs, Carrera Informtica elaborado por Efran Capqueque Chambi cuyo tema es Deteccin y eliminacin de gusanos informticos, que propone un esquema de borrado de gusanos informticos con la ayuda de agentes inteligentes capaces de monitorear, detectar y eliminar los procesos y archivos relacionados con los gusanos informticos. Podemos tambin citar a Edgar Tefilo Miranda Quisbert cuyo tema es Agentes autmatas para la deteccin de intrusos en redes, que nos habla de una solucin para el problema de encontrar intrusos en nuestra red, para ello utiliza herramientas Linux el cual brinda una mejor manipulacin del problema. Virus una forma de vida artificial en evolucin es tambin un trabajo de investigacin bastante interesante realizado por Benigno Flix Caparicona Saire, el cual nos da informacin acerca de las formas como los virus utilizan diferentes algoritmos para infectar, como algoritmos que utilizan para poder ocultarse y pasar
3

desapercibidos. Lo que mas podemos resaltar es la utilizacin del lenguaje ensamblador para la realizacin de su infeccin de su virus, el cual nos demuestra como los virus son capaces de introducirse en un ejecutable y poder cambiarlo. Por ltimo podemos citar a Milton Franco Hernndez con su trabajo de investigacin denominado Defensa de programas ejecutables a travs de un virus benigno cuyo objetivo es el poder desarrollar un sistema que sea capaz de defender a los programas ejecutables ante un intento de infeccin por parte de un virus informtico.

3. Planteamiento del problema El crecimiento exponencial de los virus computacionales ha provocado una constante actualizacin y mejora de los programas antivirus, de tal forma que las formas tradicionales para la generacin de virus son casi intiles actualmente. El principal problema radica en la rpida deteccin de un nuevo virus, la mayora de los programas antivirus necesariamente hay que actualizarlos para poder detectar los nuevos virus. Los algoritmos utilizados son cada vez ms complejos lo que puede asegurar la infeccin de los programas y su ocultacin durante cualquier proceso de deteccin de virus. Con estas caractersticas se proporciona una amplia complejidad del cdigo en mltiples infecciones, no obstante el crecimiento no ser a ritmo exponencial, sino presentara un ritmo ms moderado debido al complejo comportamiento durante su activacin e infeccin EL problema para los antivirus es la deteccin temprana de cdigo malicioso, o que tan rpido actualice su base de datos para poder detectar un nuevo virus; para ello surge la ingeniera inversa de software que lo que hace es desensamblar un archivo .EXE, se procede a analizar el cdigo generado y poder dar con cierto grado de exactitud si es posible o no que el archivo sea un virus, en nuestro caso nos dedicaremos a la deteccin de virus replicantes tambin conocidos como virus de compaa1.

Se conoce como virus replicante aquellos virus que se replican, no se conectan al cdigo de programas existentes, usan ciertas caractersticas del sistema engaar y ser ejecutados, de tal forma que se podra decir

Muchas instituciones buscan alternativas de software que puedan satisfacer sus necesidades; en Bolivia no existe ninguna empresa ni institucin que se dedique al desarrollo e implementacin de programas antivirus. Por lo tanto debido a los problemas identificados, la presente tesis de grado pretende dar solucin a la problemtica planteada.

3.1 Formulacin del problema Que caractersticas comunes tienen los virus replicantes que se encuentran en los programas ejecutables (.EXE)?

4. Objetivos de la investigacin 4.1 Objetivo General Identificar las caractersticas comunes mediante la ingeniera inversa de software de los virus replicantes que se encuentran en los programas ejecutables (.EXE). 4.2 Objetivos Especficos Reparar los daos causados por los virus replicantes si son posibles. Describir la estructura del registro para poder reparar los daos. Encontrar daos comunes en el registro.

5. Hiptesis Los virus replicantes tienen como mnimo dos caractersticas comunes los cuales se encuentran en los programas ejecutables (.EXE).

6. Justificacin Realizando un anlisis a los programas antivirus, se observ que no son del todo eficientes, dependen de una base de datos para eliminar virus y no brindan ninguna herramienta para poder reparar los daos causados por los programas

que estn mas cerca de la definicin de un troyano VIRUS INFORMATICOS David Harley, Robert Slade, Urs Gattiker Pg. 110 editorial Mc Graw-Hill 2002.

maliciosos. Es por este motivo que la presente tesis ayudar a la deteccin temprana de posibles cdigos maliciosos.

6.1 Justificacin cientfica La bsqueda de cdigo malicioso se constituir en un aporte cientfico al rea de la comunidad cientfica computacional, al proporcionar un conjunto de

procedimientos que pueden utilizarse en distintas aplicaciones como ser: Los algoritmos de encriptacin proveen los principios relacionados con la seguridad de datos. Manipulacin del registro de Windows XP para problemas. El anlisis realizado podr ser utilizado para la creacin de un antivirus. solucin de

6.2 Justificacin social La presente investigacin esta en beneficio directo del usuario de la computadora que debe tener presente las nuevas caractersticas que se estn proporcionando los nuevos cdigos maliciosos, se debe tambin considerar que un usuario bien informado es un usuario prevenido. Las empresas dedicadas a la creacin de programas antivirus toma en cuenta los nuevos elementos introducidos por las nuevas generaciones de virus para poder contrarrestar la infeccin y reproduccin, pero ningn antivirus te brinda la posibilidad de reparar los daos causados.

6.3 Justificacin Metodolgica Debido a la amplia nocin relacionada con el estudio de la ingeniera inversa de software, utilizaremos dicha ingeniera para la identificacin temprana de cdigo malicioso, adems tenemos que tener conocimiento de ingeniera de mutacin (Encriptacin y polimorfismo), la generacin de nmeros aleatorios y la tcnica de acorazado los ltimos para conocer el funcionamiento de los virus informticos.

7. Metodologa y herramientas Se usara el modelo mixto debido a ser cualitativa y cuantitativa teniendo en cuenta el tipo descriptivo. Se pretende analizar y describir mas una caracterstica de los virus informticos replicantes. 7.1 Criptologa La criptografa es una rama de la Criptologa, que se ocupa del cifrado del mensaje. Este se basa en la que el emisor emite un mensaje claro, que es tratado mediante un cifrador con la ayuda de una clave, para crear un texto cifrado. Este cifrado por medio de un canal de comunicacin establecido, llega al descifrador, que convierte el texto cifrado apoyndose en otra clave, para obtener un texto en claro original. Las dos claves implicadas en el proceso de cifrado/descifrado pueden ser o no iguales dependiendo del sistema de cifrado utilizado. [REF2] 7.2 Ingeniera inversa La ingeniera inversa es el proceso de descubrir los principios tecnolgicos de un dispositivo, objeto o sistema, a travs de su estructura, funcin y operacin. [REF1]

8. Alcances y aportes La investigacin se realizara en base al desensamblado de archivos con extensin .EXE para la deteccin temprana de virus replicantes y posteriormente se proceder al anlisis de los resultados, adems se dar solucin a algunos de los daos causados (si es posible) que puedan de alguna manera afectar el funcionamiento de la PC. Se presentara los resultados de los archivos analizados y podr determinar el grado de peligrosidad que este tiene.

9. Marco terico 9.1 Software malicioso Los virus informticos son comparados con los virus biolgicos por las amenazas en sus mecanismos de propagacin, generalmente a costa de los organismos en los que se introduce.
7

Los virus escritos en lenguaje Visual Basic Script pueden hacer una variacin sencilla y generar una variante, sin tener grandes conocimientos del lenguaje, es casi nemotcnico y puedes encontrar ayuda en INTERNET. Existen muchos cdigos fuentes de virus, el trabajo mayor lo pasa el creador original, el resto realmente tiene que hacer muy poco para generar una variante. Su misin principal es introducirse, lo ms discretamente posible en un sistema informtico y permanecer en un estado de latencia hasta que se cumple la condicin necesaria para activarse e infectar el equipo. La definicin de virus nos da a entender que es un programa que tiene como objetivo el de daar a la PC, pero analizando mas profundamente los tipos de virus existentes se los puede llegar a clasificar en diferentes grupos, cada uno de ellos con caractersticas diferentes, por tanto es mejor referirnos como programas o software maliciosos.

9.2 Estructura de un virus Un virus tiene un modelo tripartito comn en la estructura de todo virus, es decir asumimos tres mecanismos como componentes o partes importantes. Infeccin, es el modo en que el virus se propaga. Carga o payload, lo que el virus hace adems de replicarse. Activacin, es la rutina que decide si es momento de liberar la carga (si es que existe).

9.3 Tipos de virus segn el dao causado 9.3.1 GUSANOS (WORMS) Se entiende como gusano a un programa que se autorreplica, tiene como objetivo principal el de hacer colapsar al ancho de banda, se distribuye a travs de la red y que no se aade por si mismo en otros programas. Hay que advertir que muchos investigadores de antivirus tratan a los

gusanos como caso especial de virus y no como una clase completamente diferente de software malicioso. Ms aun, muchos de los programas

maliciosos descritos por las empresas antivirus deberan ser catalogados como hbridos entre virus y gusano tal el caso del Melissa o MTX. [REF3] 9.3.2 CABALLO DE TROYA Los troyanos son a menudo definidos como programas que indican el uso deseable, que pueden realizar acciones que la victima no esperara. Las acciones pueden incluir cargas como robos de claves o la total destruccin el sistema. Un troyano es entonces un programa malicioso insertado en un PC sin consentimiento de su dueo que permite el control de ese PC y/o el acceso a sus datos por parte de una persona no autorizada. [REF4] 9.3.3 JOKES (BROMAS), Un famoso y poco daino programa travieso, la mayora trata de causar dao psicolgico. Algunos utilizan mensajes del tipo gotcha, haciendo creer a la victima que haba perdido todos sus datos, esto conllevara a una prdida de datos real. Por ejemplo si la victima presa del pnico al creer que va a perder todos sus datos pulsa el botn de reset, ocasionando quiz un dao en el disco duro. Ultracool por ejemplo, indicaba A LOW level har disk format will procede (sic) in 27 seconds if cancel button is not pressed (Se har un formateo a bajo nivel en 27 segundos a menos que se pulse el botn de cancel), pero constantemente mova el botn cancel lejos del cursor del ratn hasta que el contador llegaba a cero (entonces mostraba el mensaje, Era broma). [REF5] 9.3.4 Virus que afectan archivos [REF6] Son programas vricos que infectan archivos, se los conoce con el nombre de virus parsitos. Este virus se adjunta a programas que elije como objetivo, existen bsicamente 4 formas de adjuntar condigo a un programa ya existente: Sobrescribir cdigo de programa existente. Aadir cdigo al principio del programa. Aadir cdigo al final del programa. Insertar cdigo vrico dentro de la cadena de comandos de forma que se ejecute cuando el cdigo legitimo sea ejecutado.
9

9.3.5 Virus de compaa (replicante) La forma ms sencilla para un virus de evitar la deteccin que resulta de modificar un programa original. Debe encontrar otra forma de infeccin, este tipo de virus aprovechan una de las caractersticas del sistema operativo MSDOS para engaar a Windows XP y poder ser ejecutados tal el caso de los AUTORUN.INF y RECYCLER. Tambin es posible clasificar a los programas maliciosos por su comportamiento: Programa: Infectan archivos ejecutables tales como .com / .exe / .ovl / .drv / .sys / .bin Boot: Infectan los sectores Boot Record, Master Boot, FAT y la Tabla de Particin. Mltiples: Infectan programas y sectores de "booteo". Bios: Atacan al Bios para desde all reescribir los discos duros. Hoax: Se distribuyen por e-mail y la nica forma de eliminarlos es el uso del sentido comn. Por ltimo, cabe destacar que los HOAX estn diseados nicamente para asustar a los novatos (y a los que no lo son tanto). Otros como el mensaje del carcinoma cerebral de Jessica, Jessica Mydek, Anabelle, Ana, Billy y otros personajes imaginarios tampoco son reales como tampoco lo es la direccin ACS@aol.com, ya que fueron creados para producir congestionamiento en la Internet. [REF7]

9.4 Ingeniera social [REF8] Lo definiremos a travs de una perspectiva orientada ms al vandalismo. - La hbil manipulacin de la poblacin mediante una informacin errnea para conseguir el cambio deseado (Keytel). - Practicas engaosas que intentan obtener informacin de la gente usando un discurso social, empresarial o tcnico(SRI International). - Termino usado entre crackers y samuris (hackers a sueldo) para tcnicas basadas mas en la debilidad de la gente que en la del software o hardware (Jargon File).

10

- La manipulacin psicolgica de un individuo o conjunto de individuos para producir el efecto deseado en su comportamiento (David Harley).

9.5 Quin los crea? En la industria de los antivirus, se nos dice que el tpico creador de virus es joven, casi invariantemente varn. La falta de respeto que tiene la industria hacia los creadores de virus, esta compensada con los medios de comunicacin, quienes siguen fascinados por el mito del joven genio que toma el pelo a los incompetentes geniecillos y jefecillos de los antivirus. Los autores mas competentes de los virus tienden a controlar la tecnologa antivirus tan cerca como los investigadores antivirus vigilan el software malicioso. [REF9]

9.6 Daos de los virus El dao ser definido como accin indeseada, y se los clasifica segn la cantidad de tiempo necesaria para reparar dichos daos. Existen seis categoras de daos hechos por los virus, de acuerdo a la gravedad. Daos triviales: Sirva como ejemplo la forma de trabajo del virus FORM (el ms comn): En el da 18 de cada mes cualquier tecla que presionemos hace sonar el beep. Deshacerse del virus implica, generalmente, segundos o minutos. Daos menores, Un buen ejemplo de este tipo de dao es el JERUSALEM. Este virus borra, los viernes 13, todos los programas que uno trate de usar despus de que el virus haya infectado la memoria residente. En el peor de los casos, tendremos que reinstalar los programas perdidos. Esto nos llevar alrededor de 30 minutos. Daos moderados: Cuando un virus formatea el disco rgido, mezcla los componentes de la FAT (File Allocation Table, Tabla de Ubicacin de Archivos), o sobrescribe el disco rgido. En este caso, sabremos inmediatamente qu es lo que
11

est sucediendo, y podremos reinstalar el sistema operativo y utilizar el ltimo backup. Esto quizs nos lleve una hora. Daos mayores, Algunos virus, dada su lenta velocidad de infeccin y su alta capacidad de pasar desapercibidos, pueden lograr que ni an restaurando un backup volvamos al ltimo estado de los datos. Un ejemplo de esto es el virus DARK AVENGER, que infecta archivos y acumula la cantidad de infecciones que realiz. Cuando este contador llega a 16, elige un sector del disco al azar y en l escribe la frase: "Eddie lives somewhere in time" (Eddie vive en algn lugar del tiempo). Esto puede haber estado pasando por un largo tiempo sin que lo notemos, pero el da en que detectemos la presencia del virus y queramos restaurar el ltimo backup notaremos que tambin l contiene sectores con la frase, y tambin los backups anteriores a ese. Puede que lleguemos a encontrar un backup limpio, pero ser tan viejo que muy probablemente hayamos perdido una gran cantidad de archivos que fueron creados con posterioridad a ese backup. Daos ilimitados, Algunos programas como CHEEBA, VACSINA.44.LOGIN y GP1 entre otros, obtienen la clave del administrador del sistema y la pasan a un tercero. Cabe aclarar que estos no son virus sino troyanos. En el caso de CHEEBA, crea un nuevo usuario con los privilegios mximos, fijando el nombre del usuario y la clave. El dao es entonces realizado por la tercera persona, quien ingresar al sistema y hara lo que quisiera.

9.7 Tcnicas utilizadas por los virus Los virus actuales pueden protegerse de sus enemigos naturales, los antivirus, adems podemos saber que tan bien esta diseado un virus no solo observando la posibilidad de infeccin sino cuanto tiempo pase desapercibido en el sistema. Las tcnicas utilizadas son: el ocultamiento, autoencriptacin, polimorfismo, acorazado se han ido desarrollando con este fin. Es importante tener claro que uno de los fundamentos del funcionamiento de los virus y de la tcnica de ocultamiento, es la intercepcin de interrupciones. [REF10]
12

9.8 Tcnicas de ocultacin 9.8.1 Stealth Tcnica de ocultacin utilizada para esconder los signos visibles de la infeccin que podran delatar su presencia. Alguna de sus caractersticas son: mantiene la fecha original del archivo, evitan que se muestren los errores de escritura cuando el virus intenta escribir en discos protegidos, restar el tamao del virus a los archivos infectados cuando se hace un DIR, modificar directamente la FAT, modifican la tabla de vectores de interrupcin (IVT), se instalan en los buffers de DOS, se instalan por encima de los 640 KB normales de DOS y soportan la re inicializacin del sistema por teclado. [REF11] Los virus que utilizan esta tcnica intentan pasar desapercibidos ocultando los sntomas que normalmente delatan su presencia, es una forma realmente inteligente, el virus enva al antivirus al sector de arranque original para hacerle creer que realmente esta leyendo un sector no infectado y as logra no ser detectado. Algunos ejemplos son: Cuando un fichero es infectado, generalmente aumenta de tamao. Para que esto no se aprecie, el virus slo incluye su cdigo de infeccin en las secciones libres (sin contenido) del fichero. De este modo, aunque aumente el tamao del fichero, el virus har creer al sistema que ste no ha variado. Cuando un fichero es infectado, se produce una modificacin, cuya fecha y hora queda registrada, variando las caractersticas del fichero. El virus lo evita manteniendo la fecha y hora que estuvieran establecidas antes de la infeccin. Para no levantar sospechas, los virus ocultan algunos de los ficheros que infectan, cambiando sus atributos y ponindolos como oculto. Incluso hay virus que detectan la ejecucin de determinados antivirus y descargan de la memoria partes de su propio cdigo sospechoso para cargarse de nuevo cuando estos han finalizado su bsqueda. 9.8.2 Tunneling

13

Es una tcnica de evasin que tiende a burlar los mdulos residentes de los antivirus mediante punteros directos a los vectores de interrupcin. Es altamente compleja, ya que requiere colocar al procesador en modo paso a paso, de tal manera que al ejecutarse cada instruccin, se produce la interrupcin 1, para la cual el virus ha colocado una ISR (interrupt Service Routine), ejecutndose instrucciones y comprobndose si se ha llegado a donde se quera hasta recorrer toda la cadena de ISRs que halla colocando el parche al final de la cadena. [REF11] 9.8.3 Encriptacin o autoencriptacin Tcnica de ocultacin que permite la encriptacin del cdigo del virus y que tiene por fin enmascarar su cdigo viral y sus acciones en el sistema. Por este mtodo los virus generan un cdigo que dificulta la deteccin por los antivirus. [REF11] 9.8.4 Anti-debuggers Tcnica de proteccin que tiende a evitar ser desensamblado para dificultar su anlisis, paso necesario para generar una "vacuna" para el antivirus. [REF11] 9.8.5 Polimorfismo Tcnica que impide su deteccin, por la cual varan el mtodo de encriptacin de copia en copia. Debido a que el virus cambia en cada infeccin es imposible localizarlo buscndolo por cadenas de cdigo, tal cual hace la tcnica de escaneo. Esto se consigue utilizando un algoritmo de encriptacin que de todos modos, no puede codificar todo el cdigo del virus. Una parte del cdigo del virus queda inmutable y es el que resulta vulnerable y propicio para ser detectado por los antivirus. La forma ms utilizada para la codificacin es la operacin lgica XOR, debido a que es reversible. En cada operacin se hace necesaria una clave, pero por lo general, usan una clave distinta en cada infeccin, por lo que se obtiene una codificacin tambin distinta. Otra forma muy usada para generar un virus polimrfico consiste en sumar un nmero fijo a cada byte del cdigo vrico. [REF11] 9.8.6 Acorazados (Armouring) Tcnica de autoproteccin tiene como objetivo preservar el cdigo viral de ser inspeccionada. Para poder examinar el cuerpo vrico, loa antivirus utilizan unos
14

programas llamados debuggers, cuya misin es desensamblar programas para ver como estn realizados, de manera que puede examinar el cdigo viral. Los virus protegidos mediante esta tcnica, que puede ser una combinacin de rutinas de encriptacin superpuestas unas con otras, no permiten su desensamblado para su examen. En respuesta, loa antivirus emplean el anlisis heurstico para efectuar la deteccin de los virus protegidos de esta manera. En realidad esta tcnica no es exactamente complicada y no tiene otro objetivo mas que el expuesto, pero precisamente por su poca dificultad es mas comn encontrarla incorporada en los virus. [REF11]

9.9 Ingeniera de mutacin Construir un programa que sea capaz de cambiar su cdigo posteriormente al proceso de ejecucin, es una tcnica que ha sido adoptada por los virus para evitar su deteccin durante el proceso de infeccin. [REF12] La ingeniera de mutacin abarca un conjunto de tcnicas que permiten al creador del virus, disear un programa viral que sea capaz de evitarse deteccin prematura, podemos citar algunas tcnicas: Mecanismo de mutacin. Mecanismo polimrfico. Generador de nmeros pseudoaleatorios. Algoritmo de encriptacin.

9.10 ANTIVIRUS Son programas capaces de detectar y eliminar los virus que hayan infectado nuestro ordenador. En algunos casos, slo pueden detectar, pero no eliminar el virus, por lo que nos recomendarn eliminar el archivo infectado, perdiendo la informacin que contena. Cada cierto tiempo (uno o pocos meses), aparecen nuevas versiones de los antivirus, preparados para detectar los virus de reciente aparicin, por lo que no debemos confiar en un antivirus desfasado.

15

Muchos antivirus son usados gratuitamente al menos durante un periodo de prueba. La forma de deteccin utilizada por las grandes empresas de antivirus es el llamado anlisis Heurstico, es un anlisis complejo el cual consiste en desensamblar o descompilar el cdigo de maquina para interpretar lo que hace el software maligno. El gran problema del anlisis heurstico sin duda han sido los falsos positivos que dan como resultado de un anlisis. Cada da crece el nmero de nuevos programas maliciosos y la alternativa para poder neutralizarlos sin haber programado antes el antivirus para su reconocimiento, es lo que se denomina bsqueda heurstica, tericamente los antivirus cuentan con este algoritmo de bsqueda, pero en realidad no es as, solo buscan posibles virus, el anlisis heurstico es realizado en los laboratorios de las empresas de antivirus, el cual analiza un cdigo maliciosos para posteriormente catalogarlo y poder actualizar su base datos.

9.11 Tipos de antivirus [REF13] 9.11.1 Dr. Solomons Antivirus Toolkit Detecta ms de 6.500 virus gracias a su propio lenguaje de deteccin llamado VirTran, con una velocidad de deteccin entre 3 y 5 veces mayor que los antivirus tradicionales. Uno de los ltimos desarrollos de S&S es la tecnologa G.D.E. (Generic Decription Engine, Motor de Desencriptacin Genrica) que permite detectar virus polimrficos sin importar el algoritmo de encriptacin utilizado. Permite detectar modificaciones producidas tanto en archivos como en la tabla de particin del disco rgido. Para ello utiliza Checksumms Criptogrficos lo cual, sumado a una clave personal de cada usuario, hace casi imposible que el virus pueda descubrir la clave de encriptacin. Elimina virus en archivos en forma sencilla y efectiva con pocas falsas alarmas, y en sectores de booteo y tablas de particin la proteccin es genrica, independiente del virus encontrado.
16

Otras caractersticas que presenta este antivirus, son: Ocupa 9K de memoria extendida o expandida. Documentacin amplia y detallada en espaol y una enciclopedia sobre los virus ms importantes. Actualizaciones mensuales o trimestrales de software y manuales. Trabaja como residente bajo Windows. A. H. A. (Advanced Heuristic Analysis, Anlisis Heurstico Avanzado). 9.11.2 Norton Antivirus Posee una proteccin automtica en segundo plano. Detiene prcticamente todos los virus conocidos y desconocidos (a travs de una tecnologa propia denominada NOVI, que implica control de las actividades tpicas de un virus, protegiendo la integridad del sistema), antes de que causen algn dao o prdida de informacin, con una amplia lnea de defensa, que combina bsqueda, deteccin de virus e inoculacin (se denomina 'inoculacin' al mtodo por el cual este antivirus toma las caractersticas principales de los sectores de booteo y archivos para luego chequear su integridad. Cada vez que se detecta un cambio en dichas reas, NOVI avisa al usuario y provee las opciones de Reparar - Volver a usar la imagen guardada - Continuar - No realiza cambios - Inocular - Actualizar la imagen. Utiliza diagnsticos propios para prevenir infecciones de sus propios archivos y de archivos comprimidos. El escaneo puede ser lanzado manualmente o automticamente a travs de la planificacin de fecha y hora. Tambin permite reparar los archivos infectados por virus desconocidos. Incluye informacin sobre muchos de los virus que detecta y permite establecer una contrasea para aumentar as la seguridad. La lista de virus conocidos puede ser actualizada peridicamente a travs de servicios en lnea como Internet, Amrica On Line, Compuserve, The Microsoft Network o el BBS propio de Symantec, entre otros. 9.11.3 Virusscan

17

Este antivirus de McAfee Associates es uno de los ms famosos. Trabaja con el sistema de scanning muy parecido al de Norton Antivirus, y es el mejor en su estilo. Para escanear, hace uso de dos tcnicas propias: CMS (Code Matrix Scanning2) y CTS (Code Trace Scanning3). Una de las principales ventajas de este antivirus es que la actualizacin de los archivos de bases de datos de strings es muy fcil de realizar, lo cual, sumado a su condicin de programa, lo pone al alcance de cualquier usuario. Es bastante flexible en cuanto a la configuracin de cmo detectar, reportar y eliminar virus.

9.12 Virus del futuro En los sistemas modernos hay demasiados tipos de archivos ejecutables, programas que pueden acceder a los componentes del computador. Tambin es muy complicado que un sistema no tenga problemas, incluyendo agujeros de seguridad. Por todo ello, creo que los virus seguirn existiendo aunque el entorno contemple la seguridad basada en certificados digitales. .... Es posible desarrollar un entorno completamente protegido por la comprobacin de firmas digitales, pero los usuarios no lo usarn!, porque un entorno de este tipo no es lo suficientemente amigable... demasiadas limitaciones, demasiados avisos, demasiadas preguntas. Eugene Kaspersky. [REF14] La inmensa mayora de las infecciones vricas actualmente se deben a infecciones por gusanos (programas que se transmiten a travs de las redes e Internet) y troyanos (los cuales suelen ejecutar acciones ocultas e indeseables) realizadas en su mayora de las veces a travs del correo electrnico. Estos virus se activan mediante la ejecucin de adjuntos en el correo electrnico o simplemente mediante la lectura de correos recibidos con cdigo malicioso dentro de HTML. [REF14] Existe la posibilidad que en el futuro aparezcan nuevos virus similares al Nimda o al Klez, los cuales podrn tomar ventaja de las vulnerabilidades existentes o de las

2 3

Escaneo de Matriz de Cdigo Escaneo de Seguimiento de Cdigo

18

que lleguen a presentarse. La educacin y la conciencia basada en estrategias adecuadas de seguridad es la nica forma de prevenir los posibles daos. Un posible colapso de la Internet (debido a una saturacin del trfico, a causa de los virus) no tiene tanto sustento a priori, pues sus lmites antes que ser tecnolgicos tienden a ser ms bien culturales y ante una situacin de esta naturaleza todava se tienen elementos para prevenirla. [REF14] Hoy en da, dado lo sofisticado que son estos programas, uno solo de ellos tiene la caracterstica que no le piden nada a sus antecesores, constituyendo de esta manera, la principal causa de los estragos producidos. El gusano Nimda (que lleg como troyano y destruye el sistema como un virus) y el Klez nos abren todo un abanico de posibilidades y sorpresas inesperadas que ponen a tambalear nuestros esquemas clsicos de proteccin. [REF14] Virus, Troyanos, y gusanos han existido desde los inicios de los sistemas operativos actuales y de Internet. La contienda virus - antivirus ya tiene sus dos dcadas y nada nos indica que vaya a terminar. No se puede descartar, por ejemplo, que en un futuro cercano los virus atacarn telfonos celulares programables y se propagarn cuando encuentren algn vnculo abierto entre dos aparatos. La principal va de contagio, tal como hoy ocurre con las computadoras, ser el correo electrnico, que ya est disponible en el mundo de la telefona mvil. [REF14]

9.13 Registro de Windows [REF15] Uno de los apartados ms importantes dentro de los sistemas operativos de Microsoft es el registro de Windows.

9.13.1 Estructura del registro [REF15] El registro de Windows se crea durante la instalacin del sistema operativo. Est formado por seis apartados, llamados HKEYS (llaves), perfectamente

estructurados y donde se guarda importante informacin de cada aplicacin o dispositivo conectado a nuestro ordenador, adems de todas las claves de acceso. Los apartados son:
19

HKEY_LOCAL_MACHINE: Es la llave ms importante, contiene las versiones de los controladores utilizados por nuestro hardware. HKEY_CURRENT_CONFIG: ms informacin sobre configuracin de hardware, redes y seguridad. HKEY_CLASSES_ROOT: Contiene los tipos de archivos utilizados y su asociacin con cada programa en concreto, los directorios dnde estn instalados y los comandos de apertura. HKEY_DYN_DATA: En este apartado se guarda la informacin de los dispositivos 'plug and play' (los que Windows reconoce e instala) como la tarjeta de sonido, vdeo, ratn o el monitor. HKEY_USERS: Contiene la informacin de usuario, como el modo en que tenemos configurado que se presenten las carpetas, los salvapantallas, sonidos, etc. KHEY_CURRENT_USERS: EL mismo tipo de informacin que el anterior pero, guarda las configuraciones de varios usuarios.

9.14 INGENIERA INVERSA [REF16] La ingeniera inversa se basa en quitar, remover, suspender uno o ms temas de proteccin de alguna aplicacin ya siendo comercial y otras. Muchos consideran esto como un arte. La ingeniera inversa no simplemente analizar un cdigo, sino es una rama que todos los programadores, desarrolladores deberan conocer para de esta forma ir aumentando los niveles de proteccin. 9.14.1 Usos de la ingeniera inversa [REF17] La ingeniera inversa suele ser empleada por empresas, para analizar si el producto de su competencia infringe patentes de sus propios productos. Muchas veces, la ingeniera inversa es utilizada en el rea militar para investigar (y copiar) las tecnologas de otras naciones, sin obtener planos ni detalles de su construccin o desarrollo. En el software y en el hardware, la ingeniera inversa, muchas veces es empleada para desarrollar productos que sean compatibles con otros productos, sin conocer detalles de desarrollo de stos ltimos. En otras
20

palabras, quien desarrolla los nuevos productos, no puede acceder a los detalles de fabricacin de los productos de los que intenta ser compatibles. La ingeniera inversa tambin es empleada para comprobar la seguridad de un producto, generar keygens de aplicaciones, reparacin de productos, etc. 9.14.2 Beneficios de Ingeniera Inversa La aplicacin de ingeniera inversa nunca cambia la funcionalidad del software sino que permite obtener productos que indican cmo se ha construido el mismo. Permite obtener los siguientes beneficios:

Reducir la complejidad del sistema: al intentar comprender el software se facilita su mantenimiento y la complejidad existente disminuye.

Generar diferentes alternativas: del punto de partida del proceso, principalmente cdigo fuente, se generan representaciones grficas lo que facilita su comprensin.

Recuperar y/o actualizar la informacin perdida (cambios que no se documentaron en su momento): en la evolucin del sistema se realizan cambios que no se suele actualizar en las representaciones de nivel de abstraccin ms alto, para lo cual se utiliza la recuperacin de diseo.

Detectar efectos laterales: los cambios que se puedan realizar en un sistema puede conducirnos a que surjan efectos no deseados, esta serie de anomalas puede ser detectados por la ingeniera inversa.

Facilitar la reutilizacin: por medio de la ingeniera inversa se pueden detectar componentes de posible reutilizacin de sistemas existentes, pudiendo aumentar la productividad, reducir los costes y los riesgos de mantenimiento.

La finalidad de la ingeniera inversa es la de desentraar los misterios y secretos de los sistemas en uso a partir del cdigo. Para ello, se emplean una serie de herramientas que extraen informacin de los datos, procedimientos y arquitectura del sistema existente.

21

9.14.3 Tipos de Ingeniera Inversa La ingeniera inversa puede ser de varios tipos:

Ingeniera inversa de datos: Se aplica sobre algn cdigo de bases datos (aplicacin, cdigo SQL, etc) para obtener los modelos relacionales o sobre el modelo relacional para obtener el diagrama entidad-relacin

Ingeniera inversa de lgica o de proceso: Cuando la ingeniera inversa se aplica sobre cdigo de un programa para averiguar su lgica o sobre cualquier documento de diseo para obtener documentos de anlisis o de requisitos.

Ingeniera inversa de interfaces de usuario: Se aplica con objeto de mantener la lgica interna del programa para obtener los modelos y especificaciones que sirvieron de base para la construccin de la misma, con objeto de tomarlas como punto de partida en procesos de ingeniera directa que permitan modificar dicha interfaz.

9.14. 4 Herramientas para la Ingeniera Inversa Los Depuradores Un depurador es un programa que se utiliza para controlar otros programas. Permite avanzar paso a paso por el cdigo, rastrear fallos, establecer puntos de control y observar las variables y el estado de la memoria en un momento dado del programa que se est depurando. Los depuradores son muy valiosos a la hora de determinar el flujo lgico del programa. Un punto de ruptura (breakpoint) es una instruccin al depurador que permite parar la ejecucin del programa cuando cierta condicin se cumpla. Por ejemplo, cuando un programa accede a cierta variable, o llama a cierta funcin de la API, el depurador puede parar la ejecucin del programa. Algunos depuradores de Windows son:

OllyDbg, es un potente depurador con un motor de ensamblado y desensamblado integrado. Tiene numerosas otras caractersticas

22

incluyendo un precio de 0 $. Muy til para parcheado, desensamblado y depuracin.

WinDBG, es una pieza de software gratuita de Microsoft que puede ser usada para depuracin local en modo usuario, o incluso depuracin remota en modo kernel.

Las Herramientas de Inyeccin de Fallos Las herramientas que pueden proporcionar entradas malformadas con formato inadecuado a procesos del software objetivo para provocar errores son una clase de herramientas de insercin de fallos. Los errores del programa pueden ser analizados para determinar si los errores existen en el software objetivo. Algunos fallos tienen implicaciones en la seguridad, como los fallos que permiten un acceso directo del asaltante al ordenador principal o red. Hay herramientas de inyeccin de fallos basados en el anfitrin que funcionan como depuradores y pueden alterar las condiciones del programa para observar los resultados y tambin estn los inyectores basados en redes que manipulan el trfico de la red para determinar el efecto en el aparato receptor. Los Desensambladores Se trata de una herramienta que convierte cdigo mquina en lenguaje ensamblador. El lenguaje ensamblador es una forma legible para los humanos del cdigo mquina. Los desensambladores revelan que instrucciones mquinas son usadas en el cdigo. El cdigo mquina normalmente es especfico para una arquitectura dada del hardware. De forma que los desensambladores son escritor expresamente para la arquitectura del hardware del software a desensamblar. Algunos ejemplos de desensambladores son:

IDA Pro, es un desensamblador profesional extremadamente potente. La parte mala es su elevado precio. PE Explorer, es un desensamblador que se centra en facilidad de uso, claridad y navegacin. No es tan completo como IDA Pro, pero tiene un precio ms bajo.

23

IDA Pro Freeware 4.1, se comporta casi como IDA Pro, pero solo desensambla cdigo para procesadores Intel x86 y solo funciona en Windows.

Bastard Disassembler, es un potente y programable desensamblador para Linux y FreeBSD.

Ciasdis, permite construir conocimiento sobre un cuerpo de cdigo de manera interactiva e incremental. Es nico en que todo el cdigo desensamblado puede ser re-ensamblado exactamente al mismo cdigo.

Los compiladores Inversos o Decompiladores Un decompilador es una herramienta que transforma cdigo en ensamblador o cdigo mquina en cdigo fuente en lenguaje de alto nivel. Tambin existen decompiladores que transforman lenguaje intermedio en cdigo fuente en lenguaje de alto nivel. Las herramientas son sumamente tiles para determinar la lgica a nivel superior como bucles o declaraciones if-then de los programas que son decompilados. Los decompiladores son parecidos a los desensambladores pero llevan el proceso un importante paso ms all. Algunos decompiladores pueden ser:

DCC Decompiler, es una excelente perspectiva terica a la decompilacin, pero el descompilador slo soporta programas MSDOS.

Boomerang Decompiler Project, es un intento de construir un potente descompilador para varias mquinas y lenguajes. Reverse Engineering Compiler (REC), es un potente descompilador que descompila cdigo ensamblador a una representacin del cdigo semejante a C. El cdigo est a medio camino entre ensamblador y C, pero es mucho ms legible que el ensamblador puro.

10. Esquema tentativo CAPITULO I 1. Introduccin 2. Antecedentes 3 Planeamiento del problema


24

3.1 Formulacin del problema 4 Objetivos de la investigacin 4.1 Objetivo General 4.2 Objetivos Especficos 5. Hiptesis 6. Justificacin 6.1 justificacin cientfica 6.2 justificacin social 6.3 Justificacin metodolgica 7. Metodologa y herramientas 7.1 Criptologa 7.2 Ingeniera inversa 8. Alcances y aportes CAPITULO II MARCO TEORICO 1. Software malicioso 2. Estructura de un virus 3. Tipos de virus segn el dao causado 3.1 Gusanos 3.2 Caballos de Troya 3.3 Jokes (Bromas) 3.4 Virus que afectan archivos 3.5 Virus de compaa (replicante) 4. Ingeniera social 5. Quin los crea? 6. Daos de los virus 7. Tcnicas utilizadas por los virus 8. Tcnicas de ocultacin 8.1 Stealth 8.2 Tunneling 8.3 Encriptacin o autoencriptacin 8.4 Anti-debuggers
25

8.5 Polimorfismo 8.6 Acorazados (Armouring) 9. Ingeniera de mutacin 10. Antivirus 11. Tipos de antivirus 11.1. Dr. Solomons Antivirus Toolkit 11.2. Norton Antivirus 11.3. Virusscan 12. Virus del futuro 13. Registro de Windows 13.1. Estructura del registro. 13.2. Modificaciones ms comunes de los virus replicantes. 13.3. Soluciones a problemas causados por los virus. 13.4. Algunos trucos del registro de Windows. 14. INGENIERA INVERSA 14.1. Usos de la ingeniera inversa 14.2. Beneficios de Ingeniera Inversa 14.3. Tipos de Ingeniera Inversa 14.4. Herramientas para la Ingeniera Inversa CAPITULO III MARCO APLICATIVO 1. Experimentos 2. Resultados 3. Interpretacin de resultados 4. Caractersticas comunes entre virus replicantes CAPITULO IV METRICAS DE SOFTWARE 1. Mtricas de calidad 2. Evaluacin de anlisis CAPITULO V CONCLUSIONES Y RECOMENDACIONES 1. Conclusiones 2. Recomendaciones

26

REFERENCIA BIBLIOGRAFICA Caballero P., 1997: Seguridad informtica: Tcnicas criptogrficas. 450 pgs. Editorial RA-MA, Espaa. Pginas 201-280 Gonzalo Ferreira Cortez, 1990: VIRUS EN LAS COMPUTADORAS, 1raed., Macrobit Editores, 176 pg., Mxico Jess de Marcelo Rodao, 2000: Virus de sistemas informticos e internet, 1ra Ed., 456 pg. ALFA OMEGA GRUPO EDITOR, Mxico Michael Erbschloe, 2005: TROJANS, WORMS AND SPYWARE VIRUS INFORMATICOS David Harley, Robert Slade, Urs Gattiker Pg. 67-68, editorial Mc Graw-Hill 2002 [REF6] VIRUS INFORMATICOS David Harley, Robert Slade, Urs Gattiker Pg. 103-104, editorial Mc Graw-Hill 2002 [REF7] VIRUS INFORMATICOS David Harley, Robert Slade, Urs Gattiker Pg. 109-110, editorial Mc Graw-Hill 2002 [REF8] VIRUS INFORMATICOS David Harley, Robert Slade, Urs Gattiker Pg. 122-125, editorial Mc Graw-Hill 2002

[REF5]

Referencias WEB Articulo Anlisis heurstico 20/04/2009 http://www.pandasecurity.com/spain/homeusers/support/Enquconsisteelan lisisheurstico-PandaSecurity.htm Artculo estudio de seguridad sobre virus informticos 17/02/2009 9:10 http://TRUCOSWINDOWS.net/conteni5id-6-SEGURIDAD-Estudio-sobrevirus-informaticos-parte-2.html Anlisis heurstico 10/12/2008 20:00 http://www.elrinconcito.com/Analisishueristico.htm Arquitectura de la informacin 25/03/2009 16:30
27

http://www.arquitecturadeinformacion.cl/heuristico.html Daos causados por virus 10/10/2008 19:45 http://www.algarinejoven.com/section-viewarticle-31.html Deteccin de virus 16/05/2009 21:28 http://foro.elhacker.net/tipos_de_deteccion_de_virus-t86493.0.html Sobre antivirus 20/11/2008 17:35 http://www.microsoft.com/spain/technet/Proteccin_antivirus.htm Herramientas utilizadas por los antivirus 2/03/2009 14:45 http://www.imh.es/HerramientasAntivirusIMH.htm Antivirus 5/03/2009 19:45 http://www.frikipedia.com/Antivirus-LaFrikipedia.htm Lista de los mas resientes virus 28/05/2009 10:15 http://www.viruslist.com/Email-Worm_Win32_Brontok_q.htm Trucos del registro de Windows 6/06/2008 15:30 http://www.graciosisimo.com/trucos-windows/Graciosisimo.htm Sectores de arranque de Windows 15/07/2008 17:15 http://www.configurarequipos.com/arranque-windows-2000-xp.htm

[REF1]

http://foro.latinohack.com/ingenieria%20inversa 17/05/ 2009 17:41 Evolucin de los virus informticos. Nota de prensa. Artculo reproducido por Panda Software 29/10/2008 www.pandasoftware.es/.../vernoticia.aspx.?noticias=5264&ver=18&p agina=4&numprod=&entorno=-38kLos gusanos informticos y su propagacin. www.adelaflor.com/seguridad/gusanos.htm. 15:20 .25/10/2008 https://belenus.unirioja.es/~osmezqui/Introduccion/worms.html 11/04/2009 15:59 Troyanos. Artculos. 23/11/2004 14:31

[REF2]

[REF3]

[REF4]

www.duiops.net/hacking/index.html

28

[REF9]

Manson, Marcelo. Cmo nacieron los virus informticos? 1997. Lucas Morea/ Sinex. SA. Art 16 paginas. www.monografias.com/trabajos/estudiovirus/estudiovirus.shtml. 22/10/2008 20:25 Anlisis sobre los Troyanos. Caballos de Troya en nuestra Pc. www.venezolano.web.ve/archivos/175.analisis_sobre_los_virus_ 22/07/2008 18:45 Gusanos informticos http://mssimplex.com/gusanos.htm. 28/08/2008 14:05

[REF10]

[REF11]

[REF12]

http://www.bocklabs.wisc.edu/janda/polymorf.html 18:35

17/MAY/2009

[REF13]

Manson, Marcelo. Cmo nacieron los virus informticos? 1997. Lucas Marco/Sinex. SA. http://www.monografas.com/trabajos/estudiosvirus/estudiovirus.html 2/09/2008 16:48 Moreno Prez, Arnaldo. Virus en el futuro. Art. 3 paginas http://alerta-antivirus.redes/virus/verag.html?temas=v&articulo=6&pagina=8 3/11/2008 18:27

[REF14]

[REF15]

Emilio Lpez articulo reproducido por telemana.com http://pc.temalia.com/contenidos/preguntarTema.jhtml?idCanal=85&i dComunidad=680&idTema=683 09/04/2008 14:35

[REF16]

http://cnx/org/cnx-styles/newlook/ingenieriainversa.html 23/05/2009 11:50

[REF17]

http://www.alegsa.com.ar/Diccionario/ingenieria_inversa.php 17/03/2009 17:41

29

También podría gustarte