|
El análisis
heurístico es frecuentemente considerado como un mecanismo
de detección
genérico,
no como una técnica específica para la descubrir la existencia
de virus.
Algo que no siempre se tiene en cuenta, es que la
recíproca
de esta idea también
es cierta: las soluciones genéricas usan conjuntos
de reglas heurísticas como parte del proceso de diagnóstico.
Por ejemplo:
- Los filtros de los servidores intermediarios de correo
electrónico,
usan reglas para especificar qué tipos de archivos adjuntos
están permitidos.
Esta clase de filtro es muy buena
para detener amenazas obvias, como archivos con extensiones
del tipo .LNK o .JPG y .EXE, pero puede resultar un poco rígida,
al rechazar todos los archivos ejecutables. [*]
Algunos
filtros utilizan técnicas más avanzadas, tales como
verificar que los encabezados de los archivos analizados
concuerden con sus extensiones.
Esto puede reducir significativamente el riesgo de falsos positivos
(y falsos negativos).
- Los detectores de modificaciones, usan la siguiente regla: si
las características de un objeto han cambiado, este debería
ser tratado como sospechoso.
Sin embargo, existen muchos contextos en los
cuales un número binario puede variar su suma de verificación,
por ejemplo: códigos que se modifican a sí mismos
o que son compilados nuevamente, los cambios de configuración por
compresión en tiempo de ejecución, programas emparchados
o actualizados.
Por lo tanto, un criterio de detección de cambios
tan estricto (“si el archivo se ha modificado, entonces debe
estar infectado”),
puede mostrar una alta tasa de falsos positivos.
No obstante, este
tipo de detección puede tener buenos resultados si trabaja
en forma conjunta con el análisis específico
de virus.
Una buena técnica es comparar un objeto con su suma
de verificación,
y realizarle un análisis completo solo si esta es distinta
a la que se había
calculado anteriormente.
Así, se reduce el tiempo que toma procesar
un archivo que no ha variado.
Esta es la causa por la cual el análisis inicial de un sistema podría demorar más
tiempo que las revisiones posteriores, con algunos programas
antivirus.
- Los monitores y bloqueadores de comportamiento, que evalúan
la manera de actuar de las aplicaciones y obran en consecuencia, se encuentran
entre las formas más tempranas de los programas antivirus.
Este
enfoque encastra bien con la heurística, que puede mejorar el rendimiento
del bloqueo, y reducir los falsos positivos.
La monitorización de
comportamiento clásica tiende a verificar dos tipos de formas de
actuar del código: la multiplicación y el daño
potencial.
- El código multiplicativo,
por definición, sugiere con bastante certeza la presencia de un
virus (o gusano, dependiendo del tipo de código y la definición
predilecta de cada lector).
Este enfoque tiene como ventaja que las llamadas
al sistema que aparentan
ser código multiplicativo son relativamente
fáciles de identificar, en especial cuando el código
no está demasiado oscuro.
Sin embargo, es más fácil
identificar un virus que se multiplica escribiendo una copia perfecta
de sí mismo, y no una versión
evolucionada (por ejemplo, un virus polimorfo).
- El código potencialmente dañino refleja
la probabilidad de una sobrecarga maliciosa.
Este enfoque no es efectivo
cuando no hay sobrecarga, o esta no es obviamente destructiva.
Algunas
formas de daño, como la eliminación de archivos,
son más fáciles de detectar que otras, como la aparición
no deseada, y potencialmente embarazosa, de mensajes o imágenes
ofensivas.
Por otro lado, la detección exitosa por sobrecarga tiene
una ventaja cuando se trata de detectar código malicioso no multiplicativo,
como troyanos y otros programas no virales.
Sin embargo, hay
que tener ciertos recaudos.
Por ejemplo, eliminar un archivo
es, por sí mismo,
un indicador de malicia poco confiable: muchos programas, rutinaria y
legítimamente, borran o sobrescriben
archivos tales como configuraciones o datos antiguos.
* ¿Por qué estos
tipos de archivos son considerados amenazas obvias?
En el primer caso, porque
el sufijo .LNK denota un atajo de programa.
Este tipo de archivos, usualmente no tiene sentido como adjunto
en un mensaje de correo electrónico, porque no hay un vínculo
directo entre el atajo y la aplicación a la que debería
estar enlazado.
Sin embargo, un atajo de programa en un archivo adjunto,
generalmente es un archivo ejecutable de Windows, cuyo nombre ha sido
modificado para eludir los filtros dispuestos para bloquearlo.
En el segundo
caso, la doble extensión sugiere un intento de disimular un archivo
ejecutable, bajo otra apariencia (una imagen, por ejemplo).
Esto es un
truco muy común, utilizado por los programadores de virus.
|