La Heurística y los Antivirus

Publicado en Artículos, Seguridad, Software,


Tweet about this on TwitterShare on Google+1Share on Facebook0Share on LinkedIn0

Como concepto, la Heurística es la capacidad de un sistema para realizar de forma inmediata innovaciones positivas para sus fines. La etimología de la palabra heurística proviene del griego “heurísko”, uno de cuyos significados es encontrar. La capacidad heurística es un rasgo característico de los humanos, desde cuyo punto de vista puede describirse como el arte y la ciencia del descubrimiento y de la invención o de resolver problemas mediante la creatividad y el pensamiento lateral o pensamiento divergente. La palabra heurística aparece en más de una categoría gramatical. Cuando se usa como sustantivo, identifica el arte o la ciencia del descubrimiento, una disciplina susceptible de ser investigada formalmente. Cuando aparece como adjetivo, se refiere a cosas más concretas, como estrategias heurísticas, reglas heurísticas o silogismos y conclusiones heurísticas. Claro está que estos dos usos están íntimamente relacionados ya que la heurística usualmente propone estrategias heurísticas que guían el descubrimiento.

¿Qué es y que hace un antivirus?

Un antivirus es un software que posee la función de detectar códigos maliciosos.  Aunque su nombre está relacionado con los virus informáticos, en la actualidad estos programas son soluciones antimalware que poseen protección contra gusanos, troyanos, rootkit, spyware y otros elementos dañinos; es decir, todo tipo de códigos maliciosos.

Además, un antivirus tiene como función identificar una amenaza. Esto se refiere a la capacidad de la aplicación no sólo de detectar un malware, sino también de describir de qué amenaza se trata, tanto por su tipo (virus, troyano, gusano, etc.) como su nombre (por ejemplo Michelangelo, Conficker, QHost, Nuwar, etc.). Finalmente, una vez detectada e identificada cierta amenaza, un antivirus debe prevenir o eliminar la misma del sistema. En el primer caso se trata de un código malicioso que es detectado al momento de intentar infectar un sistema, por lo tanto el antivirus bloqueará su acceso y prevendrá la infección. En el otro caso, cuando se descubre el malware en un sistema que ya está infectado, el antivirus debe eliminar (o desinfectar) la amenaza.

Sin embargo, tal como se describe en este sencillo proceso de funcionamiento de un antivirus, el primer paso es la detección de un código malicioso. Para este fin el antivirus analiza los archivos (puede ser en tiempo real o a petición del usuario) en búsqueda de malware. En su visión simplificada, el antivirus examina cada archivo respondiendo a la pregunta: ¿es un código malicioso?

Teniendo en cuenta que la evolución de las amenazas y el escenario del malware ha crecido, los métodos reactivos utilizados originalmente por los software de detección de malware ya no son suficientes para resolver el problema de una detección efectiva de códigos maliciosos. De la misma forma, los antivirus han comenzado a utilizar algoritmos heurísticos como base de la mayor parte de métodos de detección de malware proactivos.

La Heurística en antivirus permite detectar malware nuevo o desconocido.

El análisis heurístico en tecnologías antivirus,  posee un comportamiento basado en reglas para diagnosticar si un archivo es potencialmente ofensivo. El motor analítico trabaja a través de su base de reglas, comparando el contenido del archivo con criterios que indican un posible malware, y se asigna cierto puntaje cuando se localiza una semejanza. Si el puntaje iguala o supera un umbral determinado, el archivo es señalado como amenaza yprocesado de acuerdo con ello.

Detección reactiva: base de f irmas

Desde sus orígenes los antivirus cuentan con un método de detección basado en firmas (también llamadas vacunas). Este emplea una base de datos generada por el fabricante que permite determinar al software si un archivo es o no una amenaza. El sistema es sencillo: se coteja cada archivo a analizar con la base de datos y, si existe coincidencia (es decir, existe en la base una firma que se corresponde con el archivo), se identifica el archivo como código malicioso.

El proceso de generación de firmas se compone de los siguientes pasos:

  1. Aparece un nuevo código malicioso
  2. El laboratorio de la empresa antivirus recibe una muestra de ese código
  3. Se crea la firma para el nuevo código malicioso
  4. El usuario actualiza el producto con la nueva base de firmas y comienza a detectar el malware

Recién a partir del último paso, el sistema estará protegido contra esta amenaza. Aquí radica  la importancia de tener actualizado el antivirus: si la firma ya ha sido creada por el fabricante, pero no ha sido descargada en el sistema del usuario, el mismo no estará protegido contra esa amenaza en particular.

La demora necesaria para generar una firma es variable, y depende del tiempo que tarde el malware en ser descubierto por el laboratorio, de las características del código malicioso y de la dificultad para generar la firma. De una u otra forma, se puede considerar que la demora puede oscilar entre las 2 y las 10 horas; aunque existen casos y excepciones que se escapan de este rango en ambos límites.

En conclusión, la detección por firmas es un método de protección reactivo: primero se debe conocer el malware para que luego sea detectado. Sin embargo, debido a la alta velocidad de propagación de nuevos códigos maliciosos, y la gran cantidad de nuevas variantes que aparecen día a día, este método se volvió, con el pasar de los años, lento e insuficiente.

Detección proactiva: heurística antivirus

Para dar solución a esta problemática aparecen los métodos de detección proactivos basados en heurística, como complemento de la detección basada en firmas. Esto quiere decir que la detección proactiva es un agregado a la detección por firmas y para una óptima protección son necesarios ambos métodos, tal como trabajan las soluciones antimalware en la actualidad.

El objetivo esencial de los algoritmos heurísticos es dar respuestas en aquellas situaciones en donde los métodos reactivos no pueden darla: la capacidad de detectar un archivo malicioso aunque una muestra deéste no haya llegado al laboratorio antivirus, y que aún no se posea la firma correspondiente.

Por lo general la programación heurística es considerada como una de las aplicaciones de la inteligencia artificial y como herramienta para la resolución de problemas. Tal como es utilizada en sistemas expertos, la heurística se construye bajo reglas extraídas de la experiencia, y las respuestas generadas por tal sistema mejoran en la medida en que “aprende” a través del uso y aumenta su base de conocimiento. La heurística siempre es aplicada cuando no puedan satisfacerse demandas de completitud que permitan obtener una solución por métodos más específicos (por ejemplo la creación de una firma para un malwaredeterminado).

Tipos de heurística

Los algoritmos heurísticos, como su pluralidad lo indica, son distintas metodologías de análisis proactivo de amenazas. Se definen a continuación las tres variantes más comunes que son utilizadas en este tipo de análisis:

  • Heurística genérica: se analiza cuán similar es un objeto a otro, que ya se conoce como malicioso. Si un archivo es lo suficientemente similar a un código malicioso previamente identificado, este será detectado como “una variante de…”.
  • Heurística pasiva: ese explora el archivo tratando de determinar qué es lo que el programa intentará hacer. Si se observan acciones sospechosas, éste se detecta como malicioso.
  • Heurística activa: se trata de crear un entorno seguro y ejecutar el código de forma tal que se pueda conocer cuál es el comportamiento del código. Otros nombres para la misma técnica son “sandbox”, “virtualización” o “emulación”. Asimismo, los algoritmos de detección proactiva de amenazas contienen instrucciones que le permiten sortear diversos mecanismos que poseen los códigos maliciosos para ocultar su comportamiento, especialmente el empaquetamiento y el cifrado.

A modo de conclusión

Desde la aparición de los primeros virus informáticos se ha descubierto una gran variedad de códigos maliciosos, cada vez en mayor cantidad y calidad (nuevos alcances y nuevas metodologías). En un principio la tecnología de detección de códigos maliciosos ha sido principalmente reactiva. Sin embargo, la evolución del desarrollo de malware hace imperiosa la necesidad de contar con soluciones antivirus concapacidades proactivas de detección.

La heurística antivirus permite disminuir la cantidad de infecciones en sistemas y redes, detectando malware nuevo (en la “ventana de tiempo” existente para liberar una firma) como así también variantes desconocidas por el fabricante. Un antivirus debe contar con los métodos reactivos combinados con la heurística antivirus, que a su vez debe proporcionar buenos índices de rendimiento y una baja tasa de falsos positivos. La combinación detodas estas variantes permitirá al usuario confiar en una solución efectiva para las necesidades actuales en materia de protección contra malware.

Mientras que en los métodos reactivos el antivirus va un paso detrás de las amenazas, creando la firmaluego de su descubrimiento, la heurística pretende situarse un paso por delante de los desarrolladores de malware. Este es el desafío al mantener algoritmos de detección proactivas: poder adelantarse a los creadores de códigos maliciosos, que están en constante movimiento y evolución.


Fuentes consultadas: Wikipedia, Heurística Antivirus: detección proactiva de malware Autor: Sebastián Bortnik, Analista en Seguridad de ESET para Latinoamérica

La Heurística y los Antivirus
5 (100%) 1 voto

Etiquetas: ,


Deja un comentario

Cuanto es 23 + 20 ?
Please leave these two fields as-is:
IMPORTANTE! Necesitas resolver la operación matemática para poder continuar.

Newsletter

Redes sociales

Centro de soporte

Centro de recursos