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.