La Heuristica

Las técnicas heurísticas nacen de la necesidad de una 'detección genérica' de los virus informáticos. Se llama detección genérica a la posibilidad de detectar 'cualquier virus' aun sin haberlo analizado antes y sin estar en la base de datos del antivirus en cuestión. Esto parece una utopía pero es tan simple como buscar 'instrucciones comunes' de los virus para advertir de la posibilidad de que un fichero esté infectado.

Cuando analizamos las primeras instrucciones de un fichero cualquiera, veremos instrucciones para detectar los parámetros de la línea de comandos, borrar la pantalla, etc... sin embargo las primeras instrucciones de un virus suelen ser otras bien diferentes como desencriptar el cuerpo del virus o buscar nuevos ficheros para intentar infectarlos.

La experiencia es sin duda lo que lleva a una persona a reconocer un fichero infectado de uno limpio en cuestión de segundos. Esa 'experiencia' se ha pretendido introducir en los programas antivirus bajo el nombre de 'heurística'.

El funcionamiento de la heurística es sencillo, primero se desensambla el programa y después se buscan instrucciones 'sospechosas' de pertenecer a un virus. Algunos antivirus tan solo van acumulando 'puntos' y al llegar a x le dicen al usuario que el fichero es 'sospechoso de ser un virus del tipo xx' ( el tipo depende de las instrucciones encontradas en el interior del archivo) otros, como el tbav, muestran al usuario una serie de 'flags heuristicos' que nos indican con más precisión que tipo de código sospechoso se ha encontrado.

Sin duda el principal problema de las técnicas heurísticas han sido los falsos positivos. A pesar de que se han mejorado mucho en los últimos años, siguen sin conseguir demasiada efectividad (aunque hay algunas excepciones). El problema además de en la calidad de la rutina heurística está en la interpretación que el usuario realice de ese aviso heurístico. Si es poco experimentado estará cada dos por tres mandando ficheros a su casa de antivirus ya que 'el antivirus le dijo que podía tener un virus'.

Deteccion de Virus

Un programa antivirus que realiza el escaneo de firmas mantiene una base de datos de ¨firmas¨ y busca cada una de estas firmas en todo los programas de una computadora. El programa antivirus  tiene una firma distinta de cada virus  que es capaz de detectar; cada firma es una secuencia corta de bytes que se extrae del cuerpo de un virus dado. Las companias antivirus emplean a docenas de investigadores  para anlaizar el virus y extraer  firmas viables. Normalmente esta secuencia de byte es unica para el virus  y comprende solo un pequeño porcentaje de la serie total de byte que integran la logica del virus .El primer atributo reduce la posibilidad de que el programa antivirus identifique erroneamente a programas  no infectados como si lo estuvieran. El segundo es necesario por que de otro modo los archivos de antivirus serian de cientos megabytes de longuitud (en esencia, el archivo de datos de firmas tendria que incluir una copia completa de cada virus detectado en la actualizaciones de definiciones de cada maes. )
 

Un programa antivirus que use tal tecnica de escaneo de firmas puede identificar si un programa dado contiene o no una   de sus muchas firmas,pero no puede decirse que contoda seguiridad que el programa ya esta infectado con el virus asociado.

Normalmente , los usuarios confian en el diagnostico del programa antivitus cuando hacen tal evaluaciomn , ya que las probabilidades estan a su favor. Sin embargo el programa identificado podria tener informacion que por concidencia  se pareciera al virus, o que podria  contener instrucciones legitimas del programa que por casualidad coincidieran con esos byte en la firma del virus.Por lo tanto, aunque existe una posiblidad extramademente alta de que un programa identificado sea un virus, nuestro escaner de firmas no podria decirnos esto con toda precision.

En consecuencia, el escaneo de firmas es un algoritmo herustico.
 

La tecnica de escaneo de firmas es la mas ampliante usada en los programas antivirus de hoy. Aunque tiene sus defectos, es muy efectiva para identificar virus para los cuales el programa antivirus tiene una firma en sus archivos de datos.
 

Desafortunadamente, los escritores de virus siempre estan vigilantes y estan creando nuevos virus constantemente. E n la mayoria  de lso casos, las firmas que se agrega a lso recientes archivos de datos de antivirus para detectar los virus mas recientes son ineficaces para detectar nuevas linesa de virus. Y com la naturaleza ubica de la internet, estos nuevos virus son accesibles para casi cualquier usuario en minutos.

Estos  factores han creados la necesida de una tecnologia antivirus que sea capaz de detectar virus sin firmas y sin el lento y el caro proceso de analisis de virus.

Adopcion de la Heuristica

El término de heurística es usado para describir un tipo de tecnología de detección de virus.
Especificamente la heuristica es un termino que acuñaron los investigadores para decribir un programa antivirus que los detecte no de acuerdo a sus firmas si no  con un analisis de estructura del programa, su compartamiento y otros atributos.

Cada vez que un programa antivirus heuristico escanea un archivo ejecutable ,examina a fondo la estructura general del programa. Au logica de Programacion a las Instrucciones de la computadora, toda la informacion contenida en el archivo y muchos otros artributos.Entonces hace una evaluacion de la probabilidad de que el programa este infectado por un virus, y algunas veces la heuristica no lograra detectar o reconocer el compartamiento de un virus y como nuestros oficial, la heuristica puede identificar proframas inocentes como infectados con virus.

Segun los Expertos de la industria, los scanners heuristicos de alta tecnologia de hoy alcanzan de un 70 a un 80 % de dteccion de virus nuevos y desconocidos.
 

Estos porcentajes son dignos de elogios daado la dificultas del problema. Aunque la mayoria de las tecnologias de escaneo heuristico han logrado porcentajes similares de deteccion de virus, su propension de identificar erroneamente programas limpios varia ampliamente .Algunos productos antivirus populares regularmente identifican equivocadamente programas limpios con su escanner heuristico. Esto le ha dado a las heuristicas mala reputacion, lo cual no se merece.

Un gran punto a favor de la heuristica es su habilidad de detectar virus en archivos y proteger registros antes de que tengan una probabilidad de correr e infectar su computadora.Como un scanner de firmas standar, el usuario puede iniciar un esacaneo heuristico¨en demanda¨ de un nuevo programa o disco antes de usarse .

Asi mismo, los usuarios que corren un programa antivirus¨en acceso¨ con tecnologia de escaneo heuristico puede detectar un alto porcentaje de nuevos virus cuando son descargados de la internet o salvados de un anexo de correo electronico.
 

Otra Tecnologia antivirus como¨el bloqueo de comportamiento¨o la ¨revision de integridad¨requieren que el virus se ejecute en la computadora y muestre un comportamiento sospechoso y pontencialmente dañino antes de que pueda ser detectado y detenido. La herustica y el escaneo de firmas reciben una calificacion positiva por su habilidad de detener a un virus antes de que tenga la oportunidad de hacer estragos en su computadora.
 
 

Como funciona la Herustica ?

Hasta la fecha, los investigadores han analizado dos arquitecturas de escaneo heuristicas antagonistas ¨heuristica estatica ¨ y ¨heuristica dinamica¨. La diferencia principal entre dos esquemas es si el escanner heuristico emplea  no la emulacion del CPU para detectar el compartamient de los virus. Por el momento vamos a ignorar las difernecias y hablemos de los atributos que sosn comunes en ambas arquitecturas .
 

Cuando de bisca virus en un archivo ejecutable, el scanner herustico tiene por lo menos dos fases de operacion. En la primera, el objetivo del scanner heuristico es catalogar que comportamiento es capaz de mostrar el programa. El scanner heuristico comienza detectando el lugar donde existe una posibilidad que un virus se adhiera al archivo ejecutable, si el archivo fuese infectado. Este es un paso importante porque algunos archivos ejecutables tienen una longitud de hasta cientos de Kilobytes o, Incluso de megabytes, Seria muy lento realizar un analisis herustico detallado en un programa tan grande. Dado que la mayoria de los virus de computadoras DOS son de pocos Kilobytes de longitud, un scanner herustico bien diseñado puede limitar esas regiones del archivo para ser analizado. A menudo esta region seran lso primeros y ultimos pocos Kilobytes del archivo.
 
 
 
 

            ARCHIVO.EXE           HOST

                       CUERPO DEL VIRUS.

            region viral o escanear

            ARCHIVO . COM   HOST

            CUERPO  DEL VIRUS

            region viral a escanear

            CUERPO DEL VIRUS

            ARCHIVO . COM     HOST

            reguion viral a escanear.
 
 

Diagrama 1 : Los virus de archivo DOS normalmente se adhiere al fianal de los archivos .EXE de DOS. Los virus de archivos DOS se anticipan y adhieren a lso archivos.com de DOS. Existen otras tecnicas de infeccion posibles, pero son menos comunes.
 

Una vez que el scanner herustico ha identificado el area probable de infeccion analiza la logica del programa contenida en esta reguion en un intento por determinar  lo que sus instrucciones son capaces de hacer . Este es un programa muy complicado ya que existen difernte formas para escribir un programa dado en al compuadora .Por ejemplo, consideramos las siguientes dos secuencias de instrucciones.
 
 
 

EJEMPLO 1:
 

BYTES DE LENGUAJE DE LA MAQUINA

            ( En Hexadecimales )

            B8 00 4C

             CD 21
 

INSTRUCCIONES QUE ENTIENDE EL USUARIO
 

      MOV AX. 4C00

      INT  21
 

EJEMPLO 2 :
 

BYTES DE LENGUAJE DE LA MAQUINA
 

            ( En Hexadecimales )
 

      B4 3C

            BB 00 00

            88 D8

            80 C4 10

      8E C3

      9C

      26

      FF 1E 84 00

      (0084)
 

INSTRUCCIONES QUE ENTIENDE EL USUARIO.
 

      MOV AH, 3H

      MOV BX, 0000

      MOV AL, BL

      ADD AH, 10

      MOV ES,BX

      PUSHF.

      ES:

      CALL          FAR
 
 

Diagrama 2: dos ejemplos de como escribir la logica del programa en la computadora personal para finalizar un programa y regresa al promt DOS. La columna  de la izquierda indica los bytes del lenguaje de la maquina en hexadecimales que entiende el microprocesado de la computadora. La columna derecha muestra como un programdor escribiria las instrucciones en una computadora.
 

Los fragmentos anteriores realizan la misma funcion provocan que un programa se autofinalize y vuelva al prompt del DOS. Sin embargo, si observamos la secuencia de los bytes de codigo de la maquina que conforman a cada fragmento, son totalmente distintos.La primera secuencia de codigo recurre al sistema operativo usandoouna simple tecnica comun . La segunda secuenci ausa un modelo indirecto para hacer la misma solicitud al sistema opreativo.
 

Bytes del lenguaje de la maquina del fragmento 1:
 

                        B8 00 4C CD 21
 

Bytes del lenguaje de la maquina del fragmento 2
 

                        B4 3C BB 00 00 88 D8 80

                        C4 10 8C C3 9C 26 FF IE

                        84 00
 
 

Diagrama 3 : Dos ejemplos de los bytes de lenguaje de la maquina que le dan instrucciones a la computadora para finalizar un programa. Aunque  las dos secuencias de byte ordenan a la computadora hacer la misma tarea lucen totalmente difernte.
 
 
 

Dado que existe un numero practicamente infinito de formas de escribir un fragmento de codigo, pareceria casi imposibele que un programa de computadora examinara la secuencia de byte que conforman un programa y recogiera algun tipo de informacion. Por suerte, la matoria de los virus de DOS usan tecnicas sencillas como la primera descrita antes para realizar la mayoria de sus tareas. En cualquier cosa se supone que un escanner heuristico detecta este tipo de comportamiento ? .

Las heuristicas estaticas y dinamicas realizan esta tarea usando tecnicas totalmente distintas
 

El escanner heuristico estatico reconoce varios comportamientos del programa usando uan serie de metodos. Primero el escanner euristico estatico puede mantener una gran base de datos de byte (firmas) como las anteriores, asocia cada secuencia de byte en su base de datos con su comportamiento funcional.

El escanner puede usar wilcards simples para ayudar a detectar la informacion que puede cambiar de un virus a otro.
 
 

#SECUENCIA DE BYTE                                       Comportamiento  Asociado
 

1. B8 ?? 4C CD 21                  terminate  program

  (PERMUTACION 1 )

2. B4 4C CD 21     terminate  program

  (PERMUTACION 2 )

3. B4 4C B0 ?? CD 21    terminate  program

  (PERMUTACION 3 )

4. B0 ?? B44CCD21    terminate  program

   (PERMUTACION 4 )
 
 

100. B8 02 3D B4  ??  ?? CD 21                               Open file  (permutation 1)
 

101.BA  ??  ?? B8 02 3D CD 21   Open file  (permutation 1)
 

Diagrama 4: El escaner herustico tiene una base de datos de firmas de comportamientos. Si una de las secuencia de byte de arriba se localiza de ntro de un programa indica que el programa probablemente es capaz de exibir el comportamiento asociado. Los signos  ?? son llamados Wilcards y equivaldran a cualquier valor en bytes.
 

Byte del programa: b4 09 ba 20 01 cd 21 cd b8 02 3d 12 34 cd
 

Firma 100

Firma 1
 

Firmas equivalentes
 

100.B8 02 3D BA ?? ?? CD 21 este programa abre un archivo

1. B8 ?? 4C CD 21 Este programa de auto finaliza.
 

Diagrama 5 : Los bytes del programa anteriores representan a un programa simple que podria ser un virus.Si un escaner heuristico fuera a buscar todas las dirmas mostradas en el diagrama 4 encontraria  las firmas 1 y 100 en el programa .Nte que la firma numero 100 usa wildcards para guardar los valores de bytes 12 y 34 en el programa.
 

Estas linea se paraecen mucho a las firmas de virus estandar usadadas por los productos antivirus hace años y por una buena razon , lo son!!. Sin embargo las firmas de virus estandar como aquellas usadas por el scanner  de virus tradiconales se utilizan para identificar definitivamente a un grupo virus especifico.Las firmas mostradas anteriormente se usan para identificar a un grupo especifico de virus . La firmas mostradas anteriormente se usan para identificar si un programa dado contiene  o no logica del programa para exibir un compartimiento dado, lo cual puede ser viral por derecho propio.Si nuestro escanner heuristico localiza esa linea en el programa no significa necesariamente que el programa sea viral. Todo lo que indica es que el programa puede ser capaz de exhibir un comportamiento dado.
 

Firmas de virus tradicionales (encontradas en la revista Virus Bulletin)
 

Paulus, 1804 : B9 D5 00 8B DE ?? ?? 27 06 43 ?? ?? 07 86 CA ?? ??86 CA 2E 88 07 4 A ??V.974: 9C 80 FC AA 75 04 B4 BB 9D CF 80 FC 4B 74 0B 80 FC AB 74 06 9D 23 FF 23
 

Diagrama 6Estas firmas de virus lineales especifica de virus de computadoras en lugar de un comportamiento aislado como abrir un archivo o formatear el disco duro.
 

Ademas de esta base de datos simple de firmas de compartimiento, el scanner heuristico estatico tambien puede usar programas mas elevados de codigo duro (escrito para un investigador antivirus  en lenguaje de programacion como el C++ o un lenguaje de reunion ) para buscar y reconocer compartimientos de mas virus complejos. Por ejemplo los virus de DOS encriptados y polimorfeados a menudo tienen indtrucciones de computadoras para desencriptarse cuando un progama  infectado es liberado.Los byte que integran estas instrucciones pueden variar ampliamente en apariencia, aun asi es posible que los investigadores antivieus escriban  sbrutinas de  deteccion de escanner herustico localiza lo que cree que es una rutina de desncriptacion, tambien catalogara este compartimiento.
 

Aunque el escaner herustico estatico depende de subrutina de analisis de firmas y codigos simples para catalogar el compartimiento de un programa, el scannerhrudtico dinamico usa la emulacion del CPU para reunir su informacion. Despues de inspeccion inicial , el scannerherustico dinamico carga el archivo ejecutable sospecho en una computadora virtual  y emula su ejecucion. El programa que es emulado no tiene idea de que esta corriendo dentro de una computadora simulada cree que esta corriendo el McCoy real. Cuando el programa corre dentro de la computadora virtual , muestra compartimientos que son catalogados por el scanner dinamico.
 

Mientra que el programa esta coriendo dentro de la computadora virtual, el scanner herustico dinamico puede monitorear todas las solicitudes (llamadas de Interrupcion) que hace el sistema operativo.Cada vez que el sistema operativo virtual es solicitado por el programa emulado continue ejecutandose .Ya que la vasta mayoria de virus DOS depende en gran medida del sistema operativo para infectar  nuevos programas este monitoreo es una manera robusta para determinar el compartimiento de un virus. Esto le da  al scanner dinamico ventajas sobre el scanner heuristico estatico.
 

Quizas una analogia ayude.Supongamos que soy un embajador ( y un astuto espia) de los Estados Unidos en Votslovia. Si quiero espiar al principal cientifico nuclear que trabaja a cuatro calles, pedo tomar mucha ruta distintas para llegar a el. Puedo ir una calle al norte, dos calles al este , y una ves mas una calle al norte , Ambas rutas me llevarian a la residencia del cientifico.

Exiten tanta rutas que pudo tomar para llegar a su laboratorio, como las muchas secuencias posible de las instrucciones de computadoras que llegaran al mismo objetivo.
 

Unoficial de intelligencia Votsloviano podria determinar que yo estaba espiando de varia smanera distintas .Primero podria decir monitorear una ruta probable entre la embajada y el laboratotio del cientifico .Si me observara recorrer esa ruta podria reportar esta informacion a las autoridades.Sin embargo ¿ que pasa si tomo una ruta alterna? Enste caso probablemente no me veria, por supuesto podria asignar a un agente adiccional para que monitoreara la otra ruta. Pero existen muchas rutas posibles que podria tomar.
 

Como alternativa el oficial podria permanecer en el laboratorio del cientifico oculto en algun lugar del laboratorio si hace esto no necesita preocuparese de cómo llegaria yo al laboratorio nuclear.En lugarde eso solo tomo una fotografia que demuestra que de algun modo llegue hasta alli.
 

La ultima estrategia es semejante a la que usan los scanners herusticos estatico busca uncomportamiento distinto y su éxito  depende de gran medida de comoel programa sospechoso ejecute su logica . Si el programa que es analizado usa un metodo confuso para llamar al sistema operativo, el scanner estatico puede no detectar este comportamiento ,como el oficial de inteligencia no detectaria mi presencia si monitorea solo a una o pocas tutas hacia el laboratio del cientifico.
 

Esta ultima estrategia es similar a la usada por el scanner dinamico.El scanner dinamico permite que el programa corra libremente dentro de la maquina virtual el programa puede usar la logica que desee para hacer su trabajo, pero eventualmente recurrio a sistema operativo  y cuando lo haga, el resultado de todos sus calculos y maquinacione se aclararan
 

Pareciera como si el scanner herustico dinamico fuera mucho mas eficente en el analisi e identificacion de comportamientos  de un programa.En mucho casos los es .sin embargo puede ser mucho mas lenta que su contraparte estatica. La emulacion de la CPU es un proceso relativamente lento y normalmente es mucho mas lento que escanear lineas en una region limitada de la memoria
 

Ademas, la emulacion de CPU es supseptible a la logica y los caprichos del programa que esta siendo emulado. Por ejemplo y si quisieramos detectar los siguientes virus usando la tecnica dinamica.
 

Virus en supuesto codigo.
 

1. Si la hora actual es exacta pese a la instrucción 3

2. Vaya al paso 2

3. Infecte a un nuevo programa usando instrucciones de computadora simples e identificables.

4.
 

Diagram 7 un virus de computadora que ua un truco de logico para ocultar sus intrucciones de unfeccion a un scanner heuristico dinamico .El virus solo infectara un nuevo programa bajo circustancias especificas. Cuando un virus es EMULADO en una computadora virtual, el truco logico puede provocar que el scanner euritico dinamico no detecte la logica de la infeccion..
 

La euristica dinamica emularia el programa antes mencionado dentro de su computadora virtual. De inmediato se  tropezaria con la primera instrucción que consultaria la hora actual. Si la hora actual durante la emulacion fuese de non (1 pm, 3pm,etc.) el programa emualdo ejecutaria  al instrucción 2 indefinidamente y el scanner heuristico dinamico no podria observar ninguno de los comportamientos odicionales del virus (de la linea tres en adelante). En general si el emulador de CPU no logra dar al virus lo que desea, la logica del virus evitara que ejecute sus comportamientos reveladores y delatar al virus . Por desgracia el emulador de CPU no es un buen adivino
 

Por otro lado, nuestro scanner heuristico dinamico detectara todos los comportamientos en el programa anterior ya qu eno es forzado por la logica del programa. El scanner statico busca en el cuerpo del virus los comportamientos sin importar si sean o no detectados durante una ejecucion tipica de virus. Como se pude ver ambos enfoques tienen sus pro y sus contras
 

Despues de analizar la logica/instrucciones del progreso (usando la tecnica estatica o la dinamica)el scanner heuristico tambien busca lineas de byte o informacion sospechosa almacenada dentro de la posible reguion virtual los escritores de virus a menudo incluyen voces expleticvas o la palabra VIRUS en su virrus.Ya que la mayoria de los programas a menudo no tienen normalmente este tipo de informacion, es a menudo un indicador fidedigno de que el progama pueda estar infectado .El scanner heuristico registra esas lineas y otras señales delatora de infeccion para usarlas durante la segunda fase del proceso heuristico
 

Una vez que se a obtenido  un grupo de posibles compotamientos  y atributos la segunda fase comienza: el analizis de los comportamientos observados en general, la segunda fase sera la misma para el scanner heuristico dinamico y estatico, el scanner heuristico ahora tiene uan lista de todos los comportamientos,atributos y otra informacion que se pudiera recoger del programa objetico. En este punto  debe hacerse una evaluacion para si el grupo de comportamientos que se detecto parece un virus o no. Este es un problema extremadamente complicado!
 

El scanner heuristico debe saber por ejemplo que los virus con la extencion .COM puede usar los siguientes compartimientos cuando infecta a un archivo ejecutable.
 

1. Pedir al sistema operativo que localice el primer archivo COM en el directorio actual.

2. Pedir el sistema operativo que abra el archivo.

3. Pedir al sistema oerativo que busque al fin del archivo

4.  Pedir al sistema oerativo que busque al inicio del archivo.

5. Pedir al sistema  operativo que transcriba  3 o 4  bytes al inicio del archivo.

6. Pedir al sistema oerativo que busque al fianl del archivo

7. Pedir al sistema operativo que transcriba varios cientos de bytes al final del archivo.

8. Pedir al sistema operativo que cierre el archivo.
 

Si un scanner herustico observara todos esto comportamientos durante la primera fase podria reportar con toda confianza en la segunda fase que ha detectado un virus.Por desgracia  la primera fase raramente obtiene una lista completa de comportamientos. La tecnologia  de identificacion /catalogacion de comportamientos ya se aestatica o dinamica  tiene sus defectos y ocasionalmente no logra detectar ciertos comportamientos del programa objetivo. Por lo tanto, la segunda fase debe ser capaz de hacer supociones informadas en cuando la ausencia de virus de un programa basado en grupo (probablemente incompleto) observado de comportamientos..
 

Por ejemplo, y si solo se observaran los comportamientos cuatro a ocho durante la fase de catalogacion de comportamiento?. Para la mayoria de los investigadores de virus, este subgrupo de comportamientos seguiria levantando uan gran bandera roja.Sin embargo, el scanner herustico debe reportar una posible infeccion al investigador, quien puede examinar el archivo ejecutable y verificar la evaluacion del scanner .Es otra de las cosas que les corresponde totalmente al scanner reporta a un usuario final que no tiene totales habilidades de analisis de virus dado que el grupo de comportamiento obseravados puede estar incompleto el componete de analisis de comportamientos del scaner heuristico debe ser diseñado con sumo cuidado . Si este componente es muy estricto en sus requerimientos tendra dificultad  para detectar un numero importante de virus. Por otro lado, si el progamador antivirus diseña el componente de analisis para ser muy indulgente en sus requerimientos de comportamiento, el producto antivirus puede ser demasiado susceptible a identificaciones erroneas, ahora se pude ver por que algunos productos  antivirus pueden ser demasiado susceptibles a identificaciones erroneas,ahora se puede ver porque algunos programas antivirus con heuristica frecuntemente fracasan, sus diseños optaron por mayores porcentajes de deteccion con menores requerimientos de comportamiento a expensas de identificaciones erronea ocasionales.
 

Hasta ahora, se han usado varios modelos distintos para ralizar esta evaluacion de comportamiento .IBM antivirus por ejemplo usa una red nerviosa para analizar la informacion de los comportamientos en su escanner de virus heuristico. Por otro lado la tecnologia Bloodhound de Symantex usa ¨R sistema experto¨para analizar los comportamientos registrados y evalua la probabilidad de infeccion viral . Existe probablemente tantosanalizadores de compartimiento distintos como prductores de escaneo heuristico , y es probable que esta tecnologia evolucione significativamnet en los proximos años.
 

Bloodhound : la Proxima Generacion de Heuristica
 

La tecnologia Bloodhound de Symantec representa un alojamiento completo de los scanners heuristicos tradiccionales en numerosas areas clave.La primera y la mas importantes, el sistema Bloodhound no usa algoritmos clasicos de catalogacion de comportamiento estatico o dinamico .En su lugar usa una tecnologia hibrida que disfruta de los beneficios de ambos esquemas.
 

Como lo hemos visto los sistemas heuristicos tradicionales catalogan el comportamiento usando unas de la tecnicas. Las alogoritmo de catalogacion  tiene  la ventaja de ser muy rapidos sin embargo estos alogoritmo mo logran reconocer una logica de programa ligeramnte distinta a la no estandar . Cuando los escritores de virus adquieren mas conocimiento , los scanner de heruristica estatica seran cada vez menos efectivos en la deteccion de virus.

Por otro lado los alogaritmo de catalogacion de comportamientos dinamicos sobresalen en la identificacion de la logica de programas confusos, pero a menudo son mas lentos  que sus contraparte estatica . Ademas los logaritmo dinamico pueden no catalogar los comportamientos  debido a los trucos logicos que realizan los virus . Los escritores de virus pueden insertar esos trucos logicos en susu virus para confundir intencionalmente a los scanners dinamicos ( ver diagrama 7); sin embargo en muchos casos los virus ordinarios que usan la logica convecional tambien evaden al scanner dinamico.
 
 

Por ejemplo muchos virus solo infectan programas que esten dentro de un aerea de un tamaño dado, Si un virus de esos intenta infectar nuevos programas y localiza un archivo ejecutable que sea demasiado grande o demasiado pequeño, los ignorara y continuara buscando otros archivo apropiados. En consecuencias el virus no lograra exibir el comportamiento del virus para la deteccion. Otros virus por ejemplo se negaran a infectar programas que tienen un valor en segundos de 12 ( cada archivo tiene una señal de tiempo que indica cuando fueron modificados por ultima vez en el formato HR:MIN:SEC) ya que el virus usa esa señal de tiempo para indicar que ya ha sido infectado el archivo

Algunos no infectaran archivos que tengan nombres que terminen en ¨AV¨ ya que muchos scannerde virus como el NAV.EXE y el TBSV.EXE tienen nombres de archivos que finalizaran con estas letras, e infectara a ese programa alteraria al usuario de la infeccion . Desafortunadamente , cada virus tiene su propio grupo unico de condiciones y cada condicion es un obstaculo para el escanner dinamico.
 

Aquí hay un analoguia un poco aterradora pero precisa. Puede  comparar un virus dificil con una rana del laboratorio. Un cientifico quizas quiera ver  que distancia pueda  saltar una rana o medir la fuerza de sus musculos  de sus ancas. El cientifico podria medir estos atributos colocando a la rana en habitat artificial ( un acuario ) y observar para ver que tan lejos salta. Sin embargo , la rana quizas nunca salte  o solo de algunos saltos pequeños. Los problema s experimentados por el investigador son los mismo s a los que se enfrenta el programa antivirus herustistico dinamico. Es dificil exactanebte lo que el virus es capaz de hacer , dado que el virus tiene control sobre ssu acciones y puede eliminar algunos compartimientos mientras de su habitat virtual ( una PC simulada)
 

Un neurologo que estudia una rana no se molestaria en ponerla en tanque y esperar.En lugar de eso, conectaria electrodos a cada uan de las diferentes regiones del cerebro de la rana y estimularia cada region. Esto obligaria a la rana a mostrar cada uno de sus comportamientos , lo desear  o no. Esto es como cuando se prueban los reflejos durante un examen medico; cuando el doctor golpea su rodilla con un martillo no tiene control del reflejo de su pierna. Aunque  esa tecnica de ¨estimulaciom cerebral¨ pude considerarse cruel e insual cuando se aplica a las ranas u otras criaturas vivientes , es perfectamente legal y etico cuando se usa con los virus de computadoras.¡ Y es exactamente efectiva!.
 

El Booldhound emplea la tecnologia de inteligencia para aislar y localizar las varias regiones logicas de cada programa  que se asegura a escanear, de la misma manera en que el neurologo aislaria varias regiones del cerebro. Despues de analizar la logica del programa en cada uno de estos componentes podra detecar el comportamiento de un virus, estimulandoselos como el neurologo podria estimular las regiones del cerebro de la rana. Usa tecnicas estaticas y dinamicas para hacer este analisi /estimulacion, y es capaz de detectar uan mayor variedad de comportamientos que cualquiera de los algoritmos tradicionales. Debido a que el Bloodhound identifica y examina cada componente logico del virus, es insensible a la mayoria de los ataques de trucos logicos y dificultad general de los virus. Y debidos a que usa tecnicas  de analisis dinamico puede identificar hasta la mas enredada y confusa logica del programa
 

Una vez que Bloodound ha ¨estimulado¨el programa en cuestion e hizo que mostrara sus comportamientos ¨reflejo¨ usan un sistema experto para analizar los comportamientos  observados y seterminar si el programa es o no un virus. Un sistema experto es un programa que hace deducciones inteligentes  respecto a un programa dado, donde puede estar no disponible la informacion completa. Se le denomina sistema experto por que su logica de reglas y de tomas de desiciones  es diseñada y progamada por expertos en el campo de la medicina para ayudar a los doctores a diagnosticar condiciones medicas. Tambien los han usados las companias de tarjeta de credito  para detectar patrones de compra sospechosa y fraudes. Ahora , Symantec  esta usando la tecnologia de sistemas  expertos para detectar virus.
 

Los investigadores de Symantec han invertido mucho esfuerzo e investugacion para producir un sistema experto de deteccion de virus exepcionalmente robusto para Bloodhound. Ademas los ingenieros  de Symantec han diseñado un sistema experto tal que pude ser actualizado mensualmente, a traves de acatualizaciones de definiciones de virus estandar pero significa que los ingenieros de SARC pueden continuar perfeccionando el sistema  Bloodhount, ofreciendo estas mejoras a los clientes automaticamente a trvaes de LiveUpdate , sin conexione o prooductos de reinstalacion costoso.
 

El sisitema Bloodhound tambien recurre a la tecnologia en el Striker, el mecanismo de deteccion de virus polimorfos de Symantec .Los componentes el mecanismo Stricker se usan para descubrir virus encriptados  y polimorfos. Estos virus encriptan su logica para ocultase de otros scanner heuristicos. Sin embargo Bloodhound usa la tecnolgia Striker )que esta para patentarse) para romper la inscripcion viral y frustar los intentos de ocultarse del virus.
 

Aunque los equipos de desarrollo de symantec han trabajado intensamente para segurar que el bloodhound logre una deteccion exepcional en la deteccion de virus desconocidos, tambien a invertido  incontables horas de investigacion y desarrollo para eliminar las  falsas alarmas. Los miembros del equip de Symantec  Antivirus Research (SARC) han revisado la internet, las bibliotecas comerciales de software  y CDs de software para someter y probar al Bloodhound bajo cualquier circunstancia  posible. El equipo a recolectado giga-bytes de archivos ejecutables de los Estados Unidos y de lugares  tan lejanos como Japon para realizar las pruebas , lo que hace a Bloodhound la tecnologia heuristica mas robusta del planeta.
 

Finalmente aunque Bloodhound es capaz de detectar hasta el 80% de virus nuevos y  desconocidos, lo hace a un costo minimo. El Boodhound fue diseñado para nrealizar analizis profundos de programas solo si cumplen co pre-requisitos rigurosos. En la mayoria de los casos, el Bloodhound puede derterminar microsegundos que esta observando un que podria estar infectado por un virus .Cuando hace tal determinacion inmediatamente cesa el analisis del arachivo y continua. Eso lo hace uno de los sistemas heuristicos mas eficientes disponibles.