Un blog mas de seguridad informatica

miércoles, septiembre 27, 2006

¿Como Funciona la heurística antivirus? (Primera Parte)

La heurística muchas veces es vista como magia, como esa capacidad que tiene una solución antivirus para clasificar como maliciosa una muestra sin tener consignada una firma específica para la misma. Una técnica “mágica” que permite marcar al software como sospechoso de tener un comportamiento potencialmente malicioso.

Nada mas lejos de la realidad. El principio de la heurística es muy sencillo y fácil de comprender. Otro tema bien distinto es que los algoritmos resultantes sean mejores o peores, que es donde está realmente el quid de la cuestión.

Wikipedia: Se denomina heurística a la capacidad de un sistema para realizar de forma inmediata innovaciones positivas para sus fines.

Heurística en computación
Si tenemos el motor antivirus corriendo y detecta un comportamiento sospechoso, éste pasará a un estado de alerta y nos notificará que la muestra es potencialmente peligrosa. El antivirus no va a estar totalmente seguro del carácter malicioso, puesto que lo ha marcado como sospechoso en función a indicios de comportamiento, y no en función a una firma conocida y con la que existe un 100% de coincidencia. El sistema realiza innovaciones positivas para su finalidad (nuestra salvaguarda) en tiempo real, o al menos, de modo inmediato.

Este análisis de comportamiento sencillito que hemos visto da origen a toda una rama de las ciencias exactas. Las matemáticas heurísticas son complejas, ya que a fin de cuentas tratan de modelizar comportamientos y no realidades claras y directas. La gran mayoría de las veces, los resultados de este tipo de aproximaciones no podrán ser explicadas.

Estas técnicas de reconocimiento inteligente son lo que matemáticamente se conoce como algoritmos exploratorios multivariantes. Veamos qué es cada cosa en esa frase.

* Algoritmo: Modelización matemática de un comportamiento finito, es decir, que tiene un comienzo y un final.
* Exploratorio: Método de observación y análisis que permite, posteriormente, la toma de decisiones.
* Multivariante: Carácter matemático que establece la dependencia de un evento determinado de múltiples factores concurrentes.

En resumen, si la detección heurística de virus es un problema matemático de exploración multivariante que necesita ser modelizado, a través de distintos algoritmos.

Segun Wikipedia:

Firmas Genéricas

Muchos códigos maliciosos son modificados en forma constante por sus autores para crear nuevas versiones. Usualmente, estas variantes contienen similitudes con los originales, lo cual se denomina como una familia de virus. Gracias a las similitudes dentro del código del virus, los antivirus pueden llegar a reconocer a todos los miembros de la misma familia a través de una única firma o vacuna genérica. Esto permite que al momento de aparecer una nueva versión de un virus ya conocido, aquellos antivirus que implementan esta técnica puedan detectarlo sin la necesidad de una actualización.

Reconocimiento de código compilado

Cuando un programa es compilado para poder convertirlo en un archivo ejecutable, la codificación resultante representa instrucciones que se le darán al sistema para realizar ciertas acciones. Las implementaciones de heurística de algunos antivirus utilizan técnicas para reconocer instrucciones comúnmente aplicadas por los códigos maliciosos, y así poder identificar si un archivo ejecutable puede llegar a ser un código malicioso.

Desensamblado

Todo archivo ejecutable puede ser desensamblado con el objetivo de obtener el código fuente del programa en lenguaje ensamblador. La heurística de algunos productos antivirus es capaz de analizar el código fuente de los programas sospechosos con el fin de reconocer en él técnicas de desarrollo que normalmente sean usadas por los programadores de virus y así reconocer un código malicioso nuevo sin la necesidad de una actualización.

Desempaquetamiento

Los programadores de códigos maliciosos suelen usar empaquetadores de archivos con el fin de modificar la “apariencia” del virus a los ojos del análisis antivirus. Empaquetadores como UPX, son ampliamente utilizados para esto. Para evitar ser engañados por un código malicioso antiguo, reempaquetado, los antivirus incluyen en sus técnicas heurísticas métodos de desempaquetamiento con el fin de poder analizar el código real del programa, y no el empaquetado.

La mejor heurística, la más óptima

Por definición, un algoritmo heurístico es aquel que, sin poder obtener certeza de un evento, se pretende aproximar lo máximo a la realidad. Parece por tanto adecuado deducir que el mejor algoritmo heurístico será aquel que, para una actividad determinada, se aproxime más al comportamiento real de los sucesos sometidos a exploración. Los factores de mejora básicos de la optimización son los siguientes:

* Inversión mínima de recursos computacionales
* Minimización de falsos positivos y fallidos verdaderos
* Extensibilidad del modelo a escenarios de alta variabilidad

Evaluaciones Retrospectivas

La Heurística es un aspecto muy díficil de probar en los productos antivirus, dado que se requiere realizar las denominadas evaluaciones retrospectivas. Para poder analizar correctamente el funcionamiento de las capacidades heurísticas o proactivas de un antivirus, lo
que se hace es detener la actualización de firmas del producto durante un período de tiempo X. En ese lapso, se acumulan muestras de códigos maliciosos nuevos, para que una vez recolectada una cantidad suficiente, se analice si los productos antivirus las reconocen o no. Al no haber sido actualizados para detectar esas muestras, el antivirus solo podrá reconocer si están infectadas o no a través de sus capacidades heurísticas.

Gracias a estas evaluaciones se puede conocer en detalle el rendimiento de los productos antivirus frente a virus nuevos o desconocidos.

Origen