You are on page 1of 29

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

PERFIL DE TESIS DE GRADO INGENIERÍA INVERSA DE CÓDIGO FUENTE PARA LA DETECCIÓN DE CÓDIGO MALICIOSO - VIRUS Para optar al título de licenciado en informática Mención Ingeniería de Sistemas Informáticos
Postulante: Univ. Jose Luis Villazante Quispe Tutor: Lic. Efrain Silva Revisor: Lic. Jhonny R. Felipez LA PAZ – BOLIVIA 2010

1

INGENIERIA INVERSA DE CODIGO FUENTE PARA LA DETECCION DE CODIGO MALICIOSO - VIRUS 1. Introducción Cuando se entra al mundo de la computación, no tardaremos mucho en empezar a oír términos tales como virus, gusanos (worms), caballo de Troya, spyware o simplemente escuchar a alguien decir: Mi máquina esta infectada. Es necesario conocer ampliamente estos conceptos ya que el vandalismo puede destruir dañar o alterar los datos de cualquier computadora. ¿Qué son los virus?, la mayoría de las personas tienen una idea errada acerca de los virus. Los virus son programas maliciosos creados con el fin de hacer daño a la PC En realidad los virus que dañan a la PC son pocos, me atrevería incluso a decir que simplemente el 10% de todos los software maliciosos hace daño a la información, y el resto entorpece el funcionamiento del sistema, consume memoria haciendo lenta la PC. Existen varias formas de presentación de ataque de los virus, existen los virus que se incrustan en otros ejecutables (extensiones EXE, COM), librerías 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 (comúnmente se los lleva en los flash memory). ¿Quién los crea?, programadores expertos en conocimiento del registro de Windows, por el simple hecho de demostrar su capacidad o por el placer de hacer daño, También hay quienes creen que muchos virus son creados en secreto por las mismas empresas que comercializan los antivirus. Cuando los equipos de computación son infectados por uno o varios virus y además nuestro sistema antivirus falla se opta a una salida rápida, el formateo de las unidades de almacenamiento (Disco Duro), lo que podría causar perdida de

2

diseño y requerimientos que dieron origen al software. los principales podría mencionar PANDA Antivirus. detectar y eliminar los procesos y archivos relacionados con los gusanos informáticos. Por otro lado el desarrollo de programas se da combinando herramientas y técnicas que paso a paso nos sirven para llegar a un producto final (software). “Virus una forma de vida artificial en evolución” es también un trabajo de investigación bastante interesante realizado por Benigno Félix Caparicona Saire. La principal ayuda que se tienen son los ANTIVIRUS.información. pero son pocos los que realmente brindan una seguridad veras y confiable. AVG Antivirus. Antecedentes Los virus informáticos son programas maliciosos que deben ser tratados con herramientas capaces de eliminarlos. existe la posibilidad que nuestro equipo vuelva a adquirir el virus. 2. indagación. Sin embargo muchas veces surge la necesidad de realizar lo contrario. Carrera Informática elaborado por Efraín Capqueque Chambi cuyo tema es “Detección y eliminación de gusanos informáticos”. Podemos también citar a Edgar Teófilo Miranda Quisbert cuyo tema es “Agentes autómatas para la detección de intrusos en redes”. el cual nos da información acerca de las formas como los virus utilizan diferentes algoritmos para infectar. es decir que a partir del software final se procede al análisis. para ello utiliza herramientas Linux el cual brinda una mejor manipulación del problema. que nos habla de una solución para el problema de encontrar intrusos en nuestra red. que propone un esquema de borrado de gusanos informáticos con la ayuda de agentes inteligentes capaces de monitorear.EXE para poder saber si este contiene código viral. Este proceso es conocido como ingeniería inversa de software. En la Universidad Mayor de San Andrés. perdida de tiempo y lo que es peor. que en la actualidad existen para todos los gustos. como algoritmos que utilizan para poder ocultarse y pasar 3 . Por tal razón el presente trabajo de investigación se encargara de analizar archivos con la extensión .

para ello surge la ingeniería inversa de software que lo que hace es desensamblar un archivo . no obstante el crecimiento no será a ritmo exponencial. de tal forma que las formas tradicionales para la generación de virus son casi inútiles actualmente. el cual nos demuestra como los virus son capaces de introducirse en un ejecutable y poder cambiarlo. no se conectan al código de programas existentes. Por último podemos citar a Milton Franco Hernández con su trabajo de investigación denominado “Defensa de programas ejecutables a través 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 infección por parte de un virus informático.desapercibidos. se procede a analizar el código generado y poder dar con cierto grado de exactitud si es posible o no que el archivo sea un virus.EXE. Los algoritmos utilizados son cada vez más complejos lo que puede asegurar la infección de los programas y su ocultación durante cualquier proceso de detección de virus. Planteamiento del problema El crecimiento exponencial de los virus computacionales ha provocado una constante actualización y mejora de los programas antivirus. Lo que mas podemos resaltar es la utilización del lenguaje ensamblador para la realización de su infección de su virus. de tal forma que se podría decir 4 . en nuestro caso nos dedicaremos a la detección de “virus replicantes” también conocidos como virus de compañía1. El principal problema radica en la rápida detección de un nuevo virus. la mayoría de los programas antivirus necesariamente hay que actualizarlos para poder detectar los nuevos virus. sino presentara un ritmo más moderado debido al complejo comportamiento durante su activación e infección EL problema para los antivirus es la detección temprana de código malicioso. Con estas características se proporciona una amplia complejidad del código en múltiples infecciones. o que tan rápido actualice su base de datos para poder detectar un nuevo virus. 1 “Se conoce como virus replicante aquellos virus que se replican. usan ciertas características del sistema engañar y ser ejecutados. 3.

Hipótesis Los virus replicantes tienen como mínimo dos características comunes los cuales se encuentran en los programas ejecutables (. dependen de una base de datos para eliminar virus y no brindan ninguna herramienta para poder reparar los daños causados por los programas que están mas cerca de la definición de un troyano” VIRUS INFORMATICOS David Harley.Muchas instituciones buscan alternativas de software que puedan satisfacer sus necesidades. 6.EXE)? 4. 5.2 Objetivos Específicos  Reparar los daños causados por los virus replicantes si son posibles. Objetivos de la investigación 4.  Encontrar daños comunes en el registro. se observó que no son del todo eficientes.EXE). 110 editorial Mc Graw-Hill 2002. 4.1 Formulación del problema ¿Que características comunes tienen los virus replicantes que se encuentran en los programas ejecutables (. 5 .1 Objetivo General Identificar las características comunes mediante la ingeniería inversa de software de los virus replicantes que se encuentran en los programas ejecutables (. Justificación Realizando un análisis a los programas antivirus.EXE). Urs Gattiker Pág. Por lo tanto debido a los problemas identificados. la presente tesis de grado pretende dar solución a la problemática planteada. 3. Robert Slade. en Bolivia no existe ninguna empresa ni institución que se dedique al desarrollo e implementación de programas antivirus.  Describir la estructura del registro para poder reparar los daños.

maliciosos. la generación de números aleatorios y la técnica de acorazado los últimos para conocer el funcionamiento de los virus informáticos. pero ningún antivirus te brinda la posibilidad de reparar los daños causados.  El análisis realizado podrá ser utilizado para la creación de un antivirus.2 Justificación social La presente investigación esta en beneficio directo del usuario de la computadora que debe tener presente las nuevas características que se están proporcionando los nuevos códigos maliciosos. 6 . se debe también considerar que un usuario bien informado es un usuario prevenido. 6. solución de 6. además tenemos que tener conocimiento de ingeniería de mutación (Encriptación y polimorfismo). al proporcionar un conjunto de procedimientos que pueden utilizarse en distintas aplicaciones como ser:  Los algoritmos de encriptación proveen los principios relacionados con la seguridad de datos. 6.3 Justificación Metodológica Debido a la amplia noción relacionada con el estudio de la ingeniería inversa de software. utilizaremos dicha ingeniería para la identificación temprana de código malicioso.1 Justificación científica La búsqueda de código malicioso se constituirá en un aporte científico al área de la comunidad científica computacional. Las empresas dedicadas a la creación de programas antivirus toma en cuenta los nuevos elementos introducidos por las nuevas generaciones de virus para poder contrarrestar la infección y reproducción.  Manipulación del registro de Windows XP para problemas. Es por este motivo que la presente tesis ayudará a la detección temprana de posibles códigos maliciosos.

9. para crear un texto cifrado. Las dos claves implicadas en el proceso de cifrado/descifrado pueden ser o no iguales dependiendo del sistema de cifrado utilizado. para obtener un texto en claro original. generalmente a costa de los organismos en los que se introduce. llega al descifrador. Se presentara los resultados de los archivos analizados y podrá determinar el grado de peligrosidad que este tiene. 7. Este se basa en la que el emisor emite un mensaje claro. a través de su estructura. además se dará solución a algunos de los daños causados (si es posible) que puedan de alguna manera afectar el funcionamiento de la PC. que es tratado mediante un cifrador con la ayuda de una clave. Metodología y herramientas Se usara el modelo mixto debido a ser cualitativa y cuantitativa teniendo en cuenta el tipo descriptivo. que convierte el texto cifrado apoyándose en otra clave.EXE para la detección temprana de virus replicantes y posteriormente se procederá al análisis de los resultados.2 Ingeniería inversa La ingeniería inversa es el proceso de descubrir los principios tecnológicos de un dispositivo. objeto o sistema. 7 . Marco teórico 9. [REF1] 8. [REF2] 7.1 Software malicioso Los virus informáticos son comparados con los virus biológicos por las amenazas en sus mecanismos de propagación. que se ocupa del cifrado del mensaje.1 Criptología La criptografía es una rama de la Criptología. función y operación. Alcances y aportes La investigación se realizara en base al desensamblado de archivos con extensión . Se pretende analizar y describir mas una característica de los virus informáticos replicantes.7. Este cifrado por medio de un canal de comunicación establecido.

tiene como objetivo principal el de hacer colapsar al ancho de banda. es la rutina que decide si es momento de liberar la carga (si es que existe).1 GUSANOS (WORMS) Se entiende como gusano a un programa que se autorreplica. se distribuye a través de la red y que no se añade por si mismo en otros programas.3. Más aun.3 Tipos de virus según el daño causado 9. 9. por tanto es mejor referirnos como programas o software maliciosos. cada uno de ellos con características diferentes. 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. es el modo en que el virus se propaga. Infección. Su misión principal es introducirse. lo más discretamente posible en un sistema informático y permanecer en un estado de latencia hasta que se cumple la condición necesaria para activarse e infectar el equipo. 9.2 Estructura de un virus Un virus tiene un modelo tripartito común en la estructura de todo virus. Existen muchos códigos fuentes de virus. es casi nemotécnico y puedes encontrar ayuda en INTERNET. Activación. Carga o payload.Los virus escritos en lenguaje Visual Basic Script pueden hacer una variación sencilla y generar una variante. es decir asumimos tres mecanismos como componentes o partes importantes. pero analizando mas profundamente los tipos de virus existentes se los puede llegar a clasificar en diferentes grupos. sin tener grandes conocimientos del lenguaje. La definición de virus nos da a entender que es un programa que tiene como objetivo el de dañar a la PC. lo que el virus hace además de replicarse. muchos de los programas 8 . el resto realmente tiene que hacer muy poco para generar una variante. el trabajo mayor lo pasa el creador original.

3. ocasionando quizá un daño en el disco duro.4 Virus que afectan archivos [REF6] Son programas víricos que infectan archivos. Por ejemplo si la victima presa del pánico al creer que va a perder todos sus datos pulsa el botón de reset. [REF4] 9.3. [REF5] 9. se los conoce con el nombre de virus parásitos. la mayoría trata de causar daño psicológico. Las acciones pueden incluir cargas como robos de claves o la total destrucción el sistema. que pueden realizar acciones que la victima no esperaría. Un famoso y poco dañino “programa travieso”. 9 . Algunos utilizan mensajes del tipo “gotcha”. Ultracool por ejemplo.3 JOKES (BROMAS). pero constantemente movía el botón cancel lejos del cursor del ratón hasta que el contador llegaba a cero (entonces mostraba el mensaje.  Insertar código vírico dentro de la cadena de comandos de forma que se ejecute cuando el código legitimo sea ejecutado. Un troyano es entonces un programa malicioso insertado en un PC sin consentimiento de su dueño que permite el control de ese PC y/o el acceso a sus datos por parte de una persona no autorizada. esto conllevaría a una pérdida de datos real. “Era broma…”). 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 botón de cancel”).2 CABALLO DE TROYA Los troyanos son a menudo definidos como programas que indican el uso deseable. haciendo creer a la victima que había perdido todos sus datos.3. Este virus se adjunta a programas que elije como objetivo.maliciosos descritos por las empresas antivirus deberían ser catalogados como híbridos entre virus y gusano tal el caso del Melissa o MTX.  Añadir código al principio del programa. [REF3] 9.  Añadir código al final del programa. existen básicamente 4 formas de adjuntar condigo a un programa ya existente:  Sobrescribir código de programa existente.

Master Boot. También es posible clasificar a los programas maliciosos por su comportamiento:  Programa: Infectan archivos ejecutables tales como .3. Jessica Mydek. Ana.  Múltiples: Infectan programas y sectores de "booteo".5 Virus de compañía (replicante) La forma más sencilla para un virus de evitar la detección que resulta de modificar un programa original. cabe destacar que los HOAX están diseñados únicamente para asustar a los novatos (y a los que no lo son tanto). este tipo de virus aprovechan una de las características del sistema operativo MSDOS para engañar a Windows XP y poder ser ejecutados tal el caso de los AUTORUN.9.“Practicas engañosas que intentan obtener información de la gente usando un discurso social. empresarial o técnico“(SRI International).com.“Termino usado entre crackers y samuráis (hackers a sueldo) para técnicas basadas mas en la debilidad de la gente que en la del software o hardware” (Jargon File).com / . FAT y la Tabla de Partición. Billy y otros personajes imaginarios tampoco son reales como tampoco lo es la dirección ACS@aol. Por último. [REF7] 9.bin  Boot: Infectan los sectores Boot Record.ovl / .INF y RECYCLER.  Hoax: Se distribuyen por e-mail y la única forma de eliminarlos es el uso del sentido común. ya que fueron creados para producir congestionamiento en la Internet. 10 .4 Ingeniería social [REF8] Lo definiremos a través de una perspectiva orientada más al vandalismo. . Anabelle.exe / . Debe encontrar otra forma de infección.“La hábil manipulación de la población mediante una información errónea para conseguir el cambio deseado” (Keytel).drv / . Otros como el mensaje del carcinoma cerebral de Jessica. . .  Bios: Atacan al Bios para desde allí reescribir los discos duros.sys / .

Los autores mas competentes de los virus tienden a controlar la tecnología antivirus tan cerca como los investigadores antivirus vigilan el software malicioso. Tabla de Ubicación de Archivos). La falta de respeto que tiene la industria hacia los creadores de virus. En este caso. sabremos inmediatamente qué es lo que 11 . segundos o minutos. Daños menores. esta compensada con los medios de comunicación.“La manipulación psicológica de un individuo o conjunto de individuos para producir el efecto deseado en su comportamiento” (David Harley). mezcla los componentes de la FAT (File Allocation Table. generalmente.5 ¿Quién los crea? En la industria de los antivirus. Existen seis categorías de daños hechos por los virus. los viernes 13. [REF9] 9. y se los clasifica según la cantidad de tiempo necesaria para reparar dichos daños. de acuerdo a la gravedad. Daños moderados: Cuando un virus formatea el disco rígido. o sobrescribe el disco rígido. Deshacerse del virus implica.. En el peor de los casos. Un buen ejemplo de este tipo de daño es el JERUSALEM. 9. casi invariantemente varón. tendremos que reinstalar los programas perdidos. se nos dice que el típico creador de virus es joven. Este virus borra. todos los programas que uno trate de usar después de que el virus haya infectado la memoria residente. Daños triviales: Sirva como ejemplo la forma de trabajo del virus FORM (el más común): En el día 18 de cada mes cualquier tecla que presionemos hace sonar el beep. Esto nos llevará alrededor de 30 minutos. quienes siguen fascinados por el mito del joven genio que toma el pelo a los incompetentes geniecillos y jefecillos de los antivirus.6 Daños de los virus El daño será definido como acción indeseada.

polimorfismo. además podemos saber que tan bien esta diseñado un virus no solo observando la posibilidad de infección sino cuanto tiempo pase desapercibido en el sistema. es la intercepción de interrupciones.44. Algunos programas como CHEEBA. elige un sector del disco al azar y en él escribe la frase: "Eddie lives… somewhere in time" (Eddie vive… en algún lugar del tiempo). En el caso de CHEEBA. Cuando este contador llega a 16. y podremos reinstalar el sistema operativo y utilizar el último backup. obtienen la clave del administrador del sistema y la pasan a un tercero. Las técnicas utilizadas son: el ocultamiento. pero el día en que detectemos la presencia del virus y queramos restaurar el último backup notaremos que también él contiene sectores con la frase. 9. que infecta archivos y acumula la cantidad de infecciones que realizó. los antivirus. El daño es entonces realizado por la tercera persona. Esto puede haber estado pasando por un largo tiempo sin que lo notemos. crea un nuevo usuario con los privilegios máximos. Algunos virus. fijando el nombre del usuario y la clave. Es importante tener claro que uno de los fundamentos del funcionamiento de los virus y de la técnica de ocultamiento. Puede que lleguemos a encontrar un backup limpio. Cabe aclarar que estos no son virus sino troyanos. quien ingresará al sistema y haría lo que quisiera. Daños mayores. dada su lenta velocidad de infección y su alta capacidad de pasar desapercibidos. pueden lograr que ni aún restaurando un backup volvamos al último estado de los datos. pero será tan viejo que muy probablemente hayamos perdido una gran cantidad de archivos que fueron creados con posterioridad a ese backup. Esto quizás nos lleve una hora.está sucediendo. autoencriptación.LOGIN y GP1 entre otros. VACSINA. Un ejemplo de esto es el virus DARK AVENGER. Daños ilimitados. acorazado se han ido desarrollando con este fin. y también los backup’s anteriores a ese.7 Técnicas utilizadas por los virus Los virus actuales pueden protegerse de sus enemigos naturales. [REF10] 12 .

Alguna de sus características son: mantiene la fecha original del archivo.8 Técnicas de ocultación 9. cambiando sus atributos y poniéndolos como oculto.  Incluso hay virus que detectan la ejecución de determinados antivirus y descargan de la memoria partes de su propio código “sospechoso” para cargarse de nuevo cuando estos han finalizado su búsqueda.  Cuando un fichero es infectado. modifican la tabla de vectores de interrupción (IVT).2 Tunneling 13 . se instalan por encima de los 640 KB normales de DOS y soportan la re inicialización del sistema por teclado. El virus lo evita manteniendo la fecha y hora que estuvieran establecidas antes de la infección.  Para no levantar sospechas. modificar directamente la FAT. Para que esto no se aprecie. De este modo.1 Stealth Técnica de ocultación utilizada para esconder los signos visibles de la infección que podrían delatar su presencia.8.9. Algunos ejemplos son:  Cuando un fichero es infectado. el virus hará creer al sistema que éste no ha variado. evitan que se muestren los errores de escritura cuando el virus intenta escribir en discos protegidos. variando las características del fichero. [REF11] Los virus que utilizan esta técnica intentan pasar desapercibidos ocultando los síntomas que normalmente delatan su presencia.8. generalmente aumenta de tamaño. es una forma realmente inteligente. el virus envía al antivirus al sector de arranque original para hacerle creer que realmente esta leyendo un sector no infectado y así logra no ser detectado. cuya fecha y hora queda registrada. aunque aumente el tamaño del fichero. el virus sólo incluye su código de infección en las secciones libres (sin contenido) del fichero. se instalan en los buffers de DOS. los virus ocultan algunos de los ficheros que infectan. 9. restar el tamaño del virus a los archivos infectados cuando se hace un DIR. se produce una modificación.

[REF11] 9.8. Por este método los virus generan un código que dificulta la detección por los antivirus.5 Polimorfismo Técnica que impide su detección. Debido a que el virus cambia en cada infección es imposible localizarlo buscándolo por cadenas de código. paso necesario para generar una "vacuna" para el antivirus. [REF11] 9. pero por lo general. no puede codificar todo el código del virus. [REF11] 9. ejecutándose instrucciones y comprobándose 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. Otra forma muy usada para generar un virus polimórfico consiste en sumar un número fijo a cada byte del código vírico. loa antivirus utilizan unos 14 . de tal manera que al ejecutarse cada instrucción.4 Anti-debuggers Técnica de protección que tiende a evitar ser desensamblado para dificultar su análisis. usan una clave distinta en cada infección. para la cual el virus ha colocado una ISR (interrupt Service Routine). En cada operación se hace necesaria una clave.8. por lo que se obtiene una codificación también distinta. ya que requiere colocar al procesador en modo paso a paso. debido a que es reversible.6 Acorazados (Armouring) Técnica de autoprotección tiene como objetivo preservar el código viral de ser inspeccionada. [REF11] 9. Para poder examinar el cuerpo vírico. Es altamente compleja.Es una técnica de evasión que tiende a burlar los módulos residentes de los antivirus mediante punteros directos a los vectores de interrupción.8.8. por la cual varían el método de encriptación de copia en copia. se produce la interrupción 1. La forma más utilizada para la codificación es la operación lógica XOR. Una parte del código del virus queda inmutable y es el que resulta vulnerable y propicio para ser detectado por los antivirus. Esto se consigue utilizando un algoritmo de encriptación que de todos modos. tal cual hace la técnica de escaneo.3 Encriptación o autoencriptación Técnica de ocultación que permite la encriptación del código del virus y que tiene por fin enmascarar su código viral y sus acciones en el sistema.

Los virus protegidos mediante esta técnica. En realidad esta técnica no es exactamente complicada y no tiene otro objetivo mas que el expuesto. En respuesta. preparados para detectar los virus de reciente aparición. aparecen nuevas versiones de los antivirus. pero precisamente por su poca dificultad es mas común encontrarla incorporada en los virus. por lo que no debemos confiar en un antivirus desfasado.  Algoritmo de encriptación. no permiten su desensamblado para su examen.  Generador de números pseudoaleatorios.programas llamados debuggers.10 ANTIVIRUS Son programas capaces de detectar y eliminar los virus que hayan infectado nuestro ordenador. Cada cierto tiempo (uno o pocos meses). loa antivirus emplean el análisis heurístico para efectuar la detección de los virus protegidos de esta manera.  Mecanismo polimórfico. perdiendo la información que contenía. [REF12] La ingeniería de mutación abarca un conjunto de técnicas que permiten al creador del virus. diseñar un programa viral que sea capaz de evitarse detección prematura. 9. que puede ser una combinación de rutinas de encriptación superpuestas unas con otras. podemos citar algunas técnicas:  Mecanismo de mutación.9 Ingeniería de mutación Construir un programa que sea capaz de cambiar su código posteriormente al proceso de ejecución. de manera que puede examinar el código viral. por lo que nos recomendarán eliminar el archivo infectado. En algunos casos. pero no eliminar el virus. cuya misión es desensamblar programas para ver como están realizados. 15 . sólo pueden detectar. [REF11] 9. es una técnica que ha sido adoptada por los virus para evitar su detección durante el proceso de infección.

D. Para ello utiliza Checksumms Criptográficos lo cual. con una velocidad de detección entre 3 y 5 veces mayor que los antivirus tradicionales.E. el cual analiza un código maliciosos para posteriormente catalogarlo y poder actualizar su base datos. hace casi imposible que el virus pueda descubrir la clave de encriptación. sumado a una clave personal de cada usuario. Permite detectar modificaciones producidas tanto en archivos como en la tabla de partición del disco rígido. es un análisis complejo el cual consiste en desensamblar o descompilar el código de maquina para interpretar lo que hace el software maligno.11. teóricamente los antivirus cuentan con este algoritmo de búsqueda. 16 . independiente del virus encontrado.1 Dr. Uno de los últimos desarrollos de S&S es la tecnología G. Motor de Desencriptación Genérica) que permite detectar virus polimórficos sin importar el algoritmo de encriptación utilizado. 9. es lo que se denomina “búsqueda heurística”. el análisis heurístico es realizado en los laboratorios de las empresas de antivirus.11 Tipos de antivirus [REF13] 9. La forma de detección utilizada por las grandes empresas de antivirus es el llamado análisis “Heurístico”. Solomon´s Antivirus Toolkit Detecta más de 6. (Generic Decription Engine. Elimina virus en archivos en forma sencilla y efectiva con pocas falsas alarmas. Cada día crece el número de nuevos programas maliciosos y la alternativa para poder neutralizarlos sin haber programado antes el antivirus para su reconocimiento. solo buscan posibles virus.500 virus gracias a su propio lenguaje de detección llamado VirTran. El gran problema del análisis heurístico sin duda han sido los falsos positivos que dan como resultado de un análisis.Muchos antivirus son usados gratuitamente al menos durante un periodo de prueba. y en sectores de booteo y tablas de partición la protección es genérica. pero en realidad no es así.

con una amplia línea de defensa.2 Norton Antivirus Posee una protección automática en segundo plano.Actualizar la imagen.3 Virusscan 17 .No realiza cambios . Utiliza diagnósticos propios para prevenir infecciones de sus propios archivos y de archivos comprimidos. A. NOVI avisa al usuario y provee las opciones de Reparar . Compuserve.Volver a usar la imagen guardada . que implica control de las actividades típicas de un virus. entre otros.Continuar . También permite reparar los archivos infectados por virus desconocidos.  Trabaja como residente bajo Windows. (Advanced Heuristic Analysis.  Actualizaciones mensuales o trimestrales de software y manuales. 9. La lista de virus conocidos puede ser actualizada periódicamente a través de servicios en línea como Internet. Análisis Heurístico Avanzado). son:  Ocupa 9K de memoria extendida o expandida. América On Line.Inocular . Cada vez que se detecta un cambio en dichas áreas. protegiendo la integridad del sistema). que combina búsqueda. antes de que causen algún daño o pérdida de información.11.11. El escaneo puede ser lanzado manualmente o automáticamente a través de la planificación de fecha y hora. 9.  A. The Microsoft Network o el BBS propio de Symantec. Incluye información sobre muchos de los virus que detecta y permite establecer una contraseña para aumentar así la seguridad.Otras características que presenta este antivirus. detección de virus e inoculación (se denomina 'inoculación' al método por el cual este antivirus toma las características principales de los sectores de booteo y archivos para luego chequear su integridad. Detiene prácticamente todos los virus conocidos y desconocidos (a través de una tecnología propia denominada NOVI. H.  Documentación amplia y detallada en español y una enciclopedia sobre los virus más importantes.

Es bastante flexible en cuanto a la configuración de cómo detectar. Trabaja con el sistema de scanning muy parecido al de Norton Antivirus. reportar y eliminar virus... Para escanear.. demasiados avisos.12 Virus del futuro “En los sistemas modernos hay demasiados tipos de archivos ejecutables. [REF14] La inmensa mayoría de las infecciones víricas actualmente se deben a infecciones por gusanos (programas que se transmiten a través de las redes e Internet) y troyanos (los cuales suelen ejecutar acciones ocultas e indeseables) realizadas en su mayoría de las veces a través del correo electrónico. Estos virus se activan mediante la ejecución de adjuntos en el correo electrónico o simplemente mediante la lectura de correos recibidos con código malicioso dentro de HTML. Es posible desarrollar un entorno completamente protegido por la comprobación de firmas digitales. lo cual. Por todo ello. También es muy complicado que un sistema no tenga problemas.” Eugene Kaspersky. sumado a su condición de programa. lo pone al alcance de cualquier usuario. .. demasiadas limitaciones. programas que pueden acceder a los componentes del computador. y es el mejor en su estilo. los cuales podrán tomar ventaja de las vulnerabilidades existentes o de las 2 3 Escaneo de Matriz de Código Escaneo de Seguimiento de Código 18 . ¡pero los usuarios no lo usarán!. creo que los virus seguirán existiendo aunque el entorno contemple la seguridad basada en certificados digitales. Una de las principales ventajas de este antivirus es que la actualización de los archivos de bases de datos de strings es muy fácil de realizar. incluyendo agujeros de seguridad.. [REF14] Existe la posibilidad que en el futuro aparezcan nuevos virus similares al Nimda o al Klez. hace uso de dos técnicas propias: CMS (Code Matrix Scanning2) y CTS (Code Trace Scanning3).Este antivirus de McAfee Associates es uno de los más famosos. porque un entorno de este tipo no es lo suficientemente amigable. demasiadas preguntas. 9.

13.13 Registro de Windows [REF15] Uno de los apartados más importantes dentro de los sistemas operativos de Microsoft es el registro de Windows. [REF14] Hoy en día. que en un futuro cercano los virus atacarán teléfonos celulares programables y se propagarán cuando encuentren algún vínculo abierto entre dos aparatos. [REF14] Virus. a causa de los virus) no tiene tanto sustento a priori. 9.antivirus” ya tiene sus dos décadas y nada nos indica que vaya a terminar. por ejemplo. pues sus límites antes que ser tecnológicos tienden a ser más bien culturales y ante una situación de esta naturaleza todavía se tienen elementos para prevenirla. No se puede descartar. La principal vía de contagio. 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 clásicos de protección. Los apartados son: 19 . Un posible colapso de la Internet (debido a una saturación del tráfico. La contienda “virus . Está formado por seis apartados. Troyanos. tal como hoy ocurre con las computadoras. la principal causa de los estragos producidos. La educación y la conciencia basada en estrategias adecuadas de seguridad es la única forma de prevenir los posibles daños. constituyendo de esta manera. dado lo sofisticado que son estos programas. y gusanos han existido desde los inicios de los sistemas operativos actuales y de Internet.que lleguen a presentarse. además de todas las claves de acceso. perfectamente estructurados y donde se guarda importante información de cada aplicación o dispositivo conectado a nuestro ordenador. uno solo de ellos tiene la característica que no le piden nada a sus antecesores. que ya está disponible en el mundo de la telefonía móvil. llamados HKEYS (llaves). será el correo electrónico.1 Estructura del registro [REF15] El registro de Windows se crea durante la instalación del sistema operativo. [REF14] 9.

HKEY_LOCAL_MACHINE: Es la llave más importante. etc. desarrolladores deberían conocer para de esta forma ir aumentando los niveles de protección. sino es una rama que todos los programadores. 9. HKEY_CLASSES_ROOT: Contiene los tipos de archivos utilizados y su asociación con cada programa en concreto.14 INGENIERÍA INVERSA [REF16] La ingeniería inversa se basa en quitar. la ingeniería inversa.1 Usos de la ingeniería inversa [REF17]  La ingeniería inversa suele ser empleada por empresas. La ingeniería inversa no simplemente analizar un código. muchas veces es empleada para desarrollar productos que sean compatibles con otros productos. redes y seguridad. HKEY_DYN_DATA: En este apartado se guarda la información de los dispositivos 'plug and play' (los que Windows reconoce e instala) como la tarjeta de sonido. Muchos consideran esto como un arte. sin obtener planos ni detalles de su construcción o desarrollo.  Muchas veces. HKEY_USERS: Contiene la información de usuario. remover. los salvapantallas. guarda las configuraciones de varios usuarios.14. ratón o el monitor. los directorios dónde están instalados y los comandos de apertura. sin conocer detalles de desarrollo de éstos últimos. suspender uno o más temas de protección de alguna aplicación ya siendo comercial y otras. vídeo.  En el software y en el hardware. sonidos. la ingeniería inversa es utilizada en el área militar para investigar (y copiar) las tecnologías de otras naciones. contiene las versiones de los controladores utilizados por nuestro hardware. 9. HKEY_CURRENT_CONFIG: más información sobre configuración de hardware. KHEY_CURRENT_USERS: EL mismo tipo de información que el anterior pero. En otras 20 . para analizar si el producto de su competencia infringe patentes de sus propios productos. como el modo en que tenemos configurado que se presenten las carpetas.

9. reducir los costes y los riesgos de mantenimiento. no puede acceder a los detalles de fabricación de los productos de los que intenta ser compatibles.  Recuperar y/o actualizar la información perdida (cambios que no se documentaron en su momento): en la evolución del sistema se realizan cambios que no se suele actualizar en las representaciones de nivel de abstracción más alto.  Generar diferentes alternativas: del punto de partida del proceso. procedimientos y arquitectura del sistema existente.  La ingeniería inversa también es empleada para comprobar la seguridad de un producto.  Detectar efectos laterales: los cambios que se puedan realizar en un sistema puede conducirnos a que surjan efectos no deseados. Para ello. Permite obtener los siguientes beneficios:  Reducir la complejidad del sistema: al intentar comprender el software se facilita su mantenimiento y la complejidad existente disminuye. esta serie de anomalías puede ser detectados por la ingeniería inversa.palabras. se emplean una serie de herramientas que extraen información de los datos. reparación de productos.2 Beneficios de Ingeniería Inversa La aplicación de ingeniería inversa nunca cambia la funcionalidad del software sino que permite obtener productos que indican cómo se ha construido el mismo. etc. 21 . principalmente código fuente.  Facilitar la reutilización: por medio de la ingeniería inversa se pueden detectar componentes de posible reutilización de sistemas existentes. quien desarrolla los nuevos productos. se generan representaciones gráficas lo que facilita su comprensión. La finalidad de la ingeniería inversa es la de desentrañar los misterios y secretos de los sistemas en uso a partir del código.14. para lo cual se utiliza la recuperación de diseño. generar keygens de aplicaciones. pudiendo aumentar la productividad.

Los depuradores son muy valiosos a la hora de determinar el flujo lógico del programa. o llama a cierta función de la API. cuando un programa accede a cierta variable. Permite avanzar paso a paso por el código.9. etc) para obtener los modelos relacionales o sobre el modelo relacional para obtener el diagrama entidad-relación  Ingeniería inversa de lógica o de proceso: Cuando la ingeniería inversa se aplica sobre código de un programa para averiguar su lógica o sobre cualquier documento de diseño para obtener documentos de análisis o de requisitos. establecer puntos de control y observar las variables y el estado de la memoria en un momento dado del programa que se esté depurando. con objeto de tomarlas como punto de partida en procesos de ingeniería directa que permitan modificar dicha interfaz.  Ingeniería inversa de interfaces de usuario: Se aplica con objeto de mantener la lógica interna del programa para obtener los modelos y especificaciones que sirvieron de base para la construcción de la misma. Algunos depuradores de Windows son:  OllyDbg. rastrear fallos. Tiene numerosas otras características 22 .14.3 Tipos de Ingeniería Inversa La ingeniería inversa puede ser de varios tipos:  Ingeniería inversa de datos: Se aplica sobre algún código de bases datos (aplicación. 9. es un potente depurador con un motor de ensamblado y desensamblado integrado. Un punto de ruptura (breakpoint) es una instrucción al depurador que permite parar la ejecución del programa cuando cierta condición se cumpla. código SQL. 4 Herramientas para la Ingeniería Inversa Los Depuradores Un depurador es un programa que se utiliza para controlar otros programas.14. Por ejemplo. el depurador puede parar la ejecución del programa.

desensamblado y depuración. Algunos ejemplos de desensambladores son:  IDA Pro. Los errores del programa pueden ser analizados para determinar si los errores existen en el software objetivo. Hay herramientas de inyección de fallos basados en el anfitrión que funcionan como depuradores y pueden alterar las condiciones del programa para observar los resultados y también están los inyectores basados en redes que manipulan el tráfico de la red para determinar el efecto en el aparato receptor. como los fallos que permiten un acceso directo del asaltante al ordenador principal o red. Los Desensambladores Se trata de una herramienta que convierte código máquina en lenguaje ensamblador. es un desensamblador que “se centra en facilidad de uso.  23 . El lenguaje ensamblador es una forma legible para los humanos del código máquina.  WinDBG. Los desensambladores revelan que instrucciones máquinas son usadas en el código. claridad y navegación”. es un desensamblador profesional extremadamente potente. El código máquina normalmente es específico para una arquitectura dada del hardware.incluyendo un precio de 0 $. Muy útil para parcheado. No es tan completo como IDA Pro. o incluso depuración remota en modo kernel. es una pieza de software gratuita de Microsoft que puede ser usada para depuración local en modo usuario. Algunos fallos tienen implicaciones en la seguridad. La parte mala es su elevado precio. Las Herramientas de Inyección 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 inserción de fallos. De forma que los desensambladores son escritor expresamente para la arquitectura del hardware del software a desensamblar. PE Explorer. pero tiene un precio más bajo.

También existen decompiladores que transforman lenguaje intermedio en código fuente en lenguaje de alto nivel. Es único en que todo el código desensamblado puede ser re-ensamblado exactamente al mismo código. IDA Pro Freeware 4. Esquema tentativo CAPITULO I 1. Introducción 2. es una excelente perspectiva teórica a la decompilación.  Bastard Disassembler. es un intento de construir un potente descompilador para varias máquinas y lenguajes. permite construir conocimiento sobre un cuerpo de código de manera interactiva e incremental.1. Las herramientas son sumamente útiles para determinar la lógica a nivel superior como bucles o declaraciones if-then de los programas que son decompilados. Antecedentes 3 Planeamiento del problema 24 . pero solo desensambla código para procesadores Intel x86 y solo funciona en Windows. Algunos decompiladores pueden ser:  DCC Decompiler. pero es mucho más legible que el ensamblador puro. pero el descompilador sólo soporta programas MSDOS. es un potente y programable desensamblador para Linux y FreeBSD.  10.  Boomerang Decompiler Project. Reverse Engineering Compiler (REC). es un potente “descompilador” que descompila código ensamblador a una representación del código semejante a C. Los decompiladores son parecidos a los desensambladores pero llevan el proceso un importante paso más allá.  Ciasdis. se comporta casi como IDA Pro. El código está a medio camino entre ensamblador y C. Los compiladores Inversos o Decompiladores Un decompilador es una herramienta que transforma código en ensamblador o código máquina en código fuente en lenguaje de alto nivel.

3 Encriptación o autoencriptación 8. Software malicioso 2. Tipos de virus según el daño causado 3. Alcances y aportes CAPITULO II MARCO TEORICO 1.2 justificación social 6.1 Criptología 7. ¿Quién los crea? 6.3.2 Ingeniería inversa 8.2 Caballos de Troya 3.3 Jokes (Bromas) 3. Hipótesis 6.2 Objetivos Específicos 5. Estructura de un virus 3. Técnicas utilizadas por los virus 8. Ingeniería social 5.1 Stealth 8.1 Gusanos 3.3 Justificación metodológica 7.1 justificación científica 6. Técnicas de ocultación 8.5 Virus de compañía (replicante) 4. Daños de los virus 7. Metodología y herramientas 7.4 Virus que afectan archivos 3.1 Formulación del problema 4 Objetivos de la investigación 4.2 Tunneling 8. Justificación 6.4 Anti-debuggers 25 .1 Objetivo General 4.

Evaluación de análisis CAPITULO V CONCLUSIONES Y RECOMENDACIONES 1.3.2. Características comunes entre virus replicantes CAPITULO IV METRICAS DE SOFTWARE 1.4. 13. Solomon´s Antivirus Toolkit 11. Algunos trucos del registro de Windows. INGENIERÍA INVERSA 14. Herramientas para la Ingeniería Inversa CAPITULO III MARCO APLICATIVO 1. Tipos de Ingeniería Inversa 14. Virus del futuro 13. Beneficios de Ingeniería Inversa 14.2. Registro de Windows 13. Recomendaciones 26 .4. Conclusiones 2.1. 13.5 Polimorfismo 8. Interpretación de resultados 4.1. Dr. Experimentos 2. Modificaciones más comunes de los virus replicantes.1. Usos de la ingeniería inversa 14. Ingeniería de mutación 10.8. Soluciones a problemas causados por los virus. Métricas de calidad 2. Resultados 3. 13. 14.3. Virusscan 12.6 Acorazados (Armouring) 9. Tipos de antivirus 11. Norton Antivirus 11.3. Antivirus 11. Estructura del registro.2.

. España. 456 pág. 1ra Ed.htm “Arquitectura de la información” 25/03/2009 16:30 27 - . Urs Gattiker Pág. Páginas 201-280 Gonzalo Ferreira Cortez.. México Jesús de Marcelo Rodao. Robert Slade. Editorial RA-MA. 103-104. 1997: Seguridad informática: Técnicas criptográficas. editorial Mc Graw-Hill 2002 [REF6] VIRUS INFORMATICOS David Harley. WORMS AND SPYWARE VIRUS INFORMATICOS David Harley.html “Análisis heurístico” 10/12/2008 20:00 http://www.. Macrobit Editores. Urs Gattiker Pág. México Michael Erbschloe. Robert Slade.pandasecurity. 109-110. ALFA OMEGA GRUPO EDITOR. 2000: Virus de sistemas informáticos e internet.. editorial Mc Graw-Hill 2002 [REF5] Referencias WEB “Articulo Análisis heurístico” 20/04/2009 http://www. Urs Gattiker Pág. Robert Slade. 176 pág. 2005: TROJANS.elrinconcito.htm “Artículo estudio de seguridad sobre virus informáticos” 17/02/2009 9:10 http://TRUCOSWINDOWS. Urs Gattiker Pág. editorial Mc Graw-Hill 2002 [REF8] VIRUS INFORMATICOS David Harley.com/spain/homeusers/support/Enquéconsisteelan álisisheurístico-PandaSecurity. 1raed. 1990: VIRUS EN LAS COMPUTADORAS.com/Analisishueristico. editorial Mc Graw-Hill 2002 [REF7] VIRUS INFORMATICOS David Harley.REFERENCIA BIBLIOGRAFICA Caballero P. 450 págs. 122-125. 67-68. Robert Slade.net/conteni5id-6-SEGURIDAD-Estudio-sobrevirus-informaticos-parte-2.

Artículo reproducido por Panda Software 29/10/2008 www.unirioja.0.configurarequipos.imh.htm [REF1] http://foro.com/section-viewarticle-31.frikipedia. www.es/~osmezqui/Introduccion/worms..viruslist. 15:20 .html 11/04/2009 15:59 “Troyanos”..com/Email-Worm_Win32_Brontok_q.net/tipos_de_deteccion_de_virus-t86493.graciosisimo.com/ingenieria%20inversa 17/05/ 2009 17:41 “Evolución de los virus informáticos”.html 28 .algarinejoven.latinohack.htm “Antivirus” 5/03/2009 19:45 http://www.es/HerramientasAntivirus—IMH.elhacker.com/seguridad/gusanos.html “Detección de virus” 16/05/2009 21:28 http://foro.htm “Herramientas utilizadas por los antivirus” 2/03/2009 14:45 http://www.htm “Trucos del registro de Windows” 6/06/2008 15:30 http://www.es/.?noticias=5264&ver=18&p agina=4&numprod=&entorno=-38k“Los gusanos informáticos y su propagación”.htm.cl/heuristico.com/arranque-windows-2000-xp.http://www.adelaflor.com/Antivirus-LaFrikipedia.com/spain/technet/Protección_antivirus./vernoticia.html “Sobre antivirus” 20/11/2008 17:35 http://www. Artículos.htm “Lista de los mas resientes virus” 28/05/2009 10:15 http://www.com/trucos-windows/Graciosisimo.pandasoftware.htm “Sectores de arranque de Windows” 15/07/2008 17:15 http://www.microsoft.arquitecturadeinformacion.aspx.duiops.25/10/2008 https://belenus. Nota de prensa.net/hacking/index.html “Daños causados por virus” 10/10/2008 19:45 http://www. 23/11/2004 14:31 [REF2] [REF3] [REF4] www.

SA.redes/virus/verag. Art.monografias.alegsa. 3 paginas http://alerta-antivirus.venezolano. 22/10/2008 20:25 “Análisis sobre los Troyanos. Arnaldo. Marcelo.html?temas=v&articulo=6&pagina=8 3/11/2008 18:27 [REF14] [REF15] Emilio López articulo reproducido por telemanía. www. SA.web.bocklabs. Lucas Morea/ Sinex. “¿Cómo nacieron los virus informáticos?” 1997.[REF9] Manson.shtml. Lucas Marco/Sinex.com/gusanos.html 23/05/2009 11:50 [REF17] http://www. 28/08/2008 14:05 [REF10] [REF11] [REF12] http://www. Caballos de Troya en nuestra Pc”.ve/archivos/175.monografías.html 18:35 17/MAY/2009 [REF13] Manson.php 17/03/2009 17:41 29 .html 2/09/2008 16:48 Moreno Pérez.analisis_sobre_los_virus_ 22/07/2008 18:45 “Gusanos informáticos” http://mssimplex.wisc. “Virus en el futuro”. http://www.com http://pc.edu/janda/polymorf. Art 16 paginas.com/trabajos/estudiosvirus/estudiovirus.com/contenidos/preguntarTema.com/trabajos/estudiovirus/estudiovirus. Marcelo.com.jhtml?idCanal=85&i dComunidad=680&idTema=683 09/04/2008 14:35 [REF16] http://cnx/org/cnx-styles/newlook/ingenieriainversa. “¿Cómo nacieron los virus informáticos?” 1997.ar/Diccionario/ingenieria_inversa. www.temalia.htm.