Detectando virus desconocidos: La heurística y el código malicioso

Cuando mostraba el análisis de Nod32 Vs. Kaspersky antivirus, comentaba que una de las posibles ventajas de Nod sobre K!, era su mayor capacidad para detectar virus desconocidos.

La detección de Virus desconocidos se realiza mediante Heurística.

Algunos de los mitos más persistentes en informática, tienen que ver con los virus y la tecnología antivirus.
La creencia, ampliamente sostenida, de que las aplicaciones antivirus pueden detectar solamente virus específicos y conocidos, ha existido desde los inicios de las investigaciones en esta materia.

El análisis heurístico utiliza un enfoque basado en reglas para diagnosticar un archivo potencialmente ofensivo (o un mensaje, en el caso del análisis del correo no deseado).

En cierto sentido, la utilización de heurística en las aplicaciones contra el código malicioso intenta aplicar el proceso del análisis humano a un objeto.
De la misma manera que un humano que estudia aplicaciones maliciosas intentaría determinar el proceso de un programa y sus acciones, el análisis heurístico realiza el mismo proceso de toma de decisiones inteligente, actuando efectivamente como un investigador virtual de códigos maliciosos.

 

En el sitio oficial de ESET, encuentro un paper que explica detalladamente lo que es la detección de virus desconocidos. Desde siempre, la detección de virus ha estado basada en términos generales más que en virus específicos. Es por ello que un Antivirus está en capacidad de detectar algo más que "virus": Detectan códigos maliciosos. Estos incluyen a los Virus mismos, a los Gusanos y a los Códigos Maliciosos no multiplicativos.

Si bien existen muchas definiciones de código malicioso, la mayoría de los investigadores especializados en el tema aceptan la siguiente:

"Un programa informático, que puede infectar a otras aplicaciones, modificándolas de forma tal que les permita incluir una copia (posiblemente más evolucionada) de sí mismo.[1,2]

Esta definición abarca muchos tipos de código malicioso, incluyendo:

    • Códigos que infectan el sector de arranque o de particiones.

    • Códigos que infectan archivos (virus parásito)

    • Virus polifacéticos, capaces de infectar diferentes tipos de archivos
      (Multipartite viruses)

    • Virus de guiones y secuencias de instrucciones automatizadas
      (Macro and script viruses)

 

 Visto esto, algunos habrán notado la capacidad de un AntiVirus para detectar virus y no-virus. Los virus en términos básicos se 'ejecutan'. Al ser programas, necesitan ejecutarse. Pero los antivirus suelen detectar archivos no víricos llamados Semillas, Liberadores y Generadores de virus. También son capaces de detectar archivos de prueba, como el Test Eicar del que ya hablé en bolsanegra en una oportunidad.

El código malicioso no multiplicativo -que no es capáz de autoreplicarse- abarca:

 

 Existen variantes llamadas Virus Troyanizados. O troyanos capaces de autoreplicarse. El paper, explica más detalladamente cómo funciona el modelo heurístico actual y su importancia a la hora de detectar con mayor rápidez y eficacia, los constantes virus y códigos maliciosos. 

El modelo heurístico ha pasado de detección de cadenas de análisis, hasta el modelo logarítmico actual, en el que la vieja heurística, de detección de firmas, es un subconjunto de herramientas para detección de aplicaciones maliciosas. Todas aplicadas inclusive para la detección de un mismo virus.

Muchos virus no pueden ser identificados utilizando la cadena de carácteres estáticas o de firmas. Y la dificultad para adaptarse a estos cambios dinámicos y evolición del código malicioso como los virus polimórficos ha entrado en conflicto con una de las prioridades del antivirus: 

La identificación de virus significa un balance entre dos imperativos: evitar los falsos negativos (falla de detección de infecciones existentes), y los falsos positivos (la detección de virus, cuando no los hay).

 

Los falsos positivos, fueron duramente criticados en el software McAffee Antivirus y causaron una pérdida de credibilidad en el producto. Una buena heurística, si bien ayuda a minimizar los falsos negativos y los falsos positivos, no debe considerarse la herramienta difinitiva contra los errores de detección.

El modo más “seguro” para identificar un virus conocido, es verificar la presencia de cada octeto de código viral que podría estar presente en un objeto infectado, generando una suma de verificación por cada bit constante en el cuerpo del virus.
Este proceso generalmente se denomina identificación exacta.

La identificación, es una medida de la habilidad de la aplicación antivirus para detectar y reconocer una muestra de virus, como específico o variante.

Por lo tanto, la identificación exacta denota un nivel de precisión gracias al cual cada octeto constante de código de virus, es tomado en cuenta.

Si bien suena deseable que esta precisión se aplique a todos los análisis de búsqueda de virus, esto raramente ocurre en el mundo real, debido al impacto potencial sobre el tiempo de análisis y los recursos del sistema, y porque este nivel de detalle es pocas veces necesario.

 

 Al leer el artículo completo, se nota una posición de defensa hacia el trabajo del programador de antivirus. Cosa que está lejos de ser mala. La industria de los virus y malware, fluye igual o más rápido que la industria que intenta protegernos. Con tantas variantes de un mismo problema y la limitación a la que se ve sometido un antivirus (eficiencia vs tiempo de ejecución o rendimiento) obliga a que tengan que sacrificarse algunos aspectos del análisis heurístico. 

Norton Antivirus, un buen antivirus hace algunos años, ha sufrido de críticas por este asunto: se ha vuelto uno de los antivirus más lentos en la actualidad. Razón por la que muchos usuarios prefieren no utilizarlo.

 

En bolsanegra siempre hemos recordado que la industria de los virus es una industria y como toda industra, ha evolucionado. Anteriormente, se esperaba que los virus y código malicioso tuvieran como prioridad expandirse al mayor número de equipos. Sin embargo, hoy en día -

Los autores de código malicioso tienen otras prioridades.
Más que en un enfoque expansivo (máxima diseminación de una sola variante), ahora su técnica se basa en breves ráfagas de una determinada instancia de código malicioso, que podría estar dirigido a individuos o grupos específicos.

 

Recomiendo que le echen una mirada completa al artículo. Procuré hacer un resumen basado en todo lo que se explica, pero hay cosas muy interesantes que no he mostrado -como para dejarles que las investiguen  ;-)

5 Comments »

RSS feed for comments on this post. TrackBack URI

  1. El artículo es muy explicativo. Como usuario normal, me basta con decir que me basta con no tener virus en la pc. Pruebo varios, paso alguna vez el Norton, pasó alguna vez el Panda, pasó el Kaspersky, AVG, y otros como Avast o BitDefender ni los probé. Creo que el sentido común basta para decir que Norton es muy pesado y no el más eficaz. Cualquier usuario sabe que la PC queda mucho mas lenta y no vale para lo que nos ofrece. Me quedo con el NOD32 o en su defecto el AVG, aunque desde hace un tiempo estoy haciendo la prueba de vivir sin antivirus y lo estoy logrando. Me limito al firewall del router y a usar Firefox y tratar de ser un usuario prudente.

    Sobre los aspectos técnicos, se lo dejo a los demás ;D

    Comment by Nico — April 27, 2007 #

  2. AVG tiene el problema de los Antivirus gratuitos. Según pude leer, estos softwares tienden a ser más limitados en cuanto a heurística y detección de programas desconocidos.

    Para un usuario cauteloso y prudente, viene bien. Hace lo que tiene que hacer. No lo pongo en duda.

    Siempre le digo a las personas que me preguntan sobre antivirus que más que tener el mejor antivirus, hay que ser cauteloso, estar informado y entender que lo más vital para un antivirus es mantenerse actualizado.

    Comment by myself — April 27, 2007 #

  3. Totalmente de acuerdo. Ser cautelosos. Va mucho en que usamos Windows, Outlook Express 6, y el IE6 que todavía es más utilizado que el 7, y que el usuario normal es engañado.

    No recomiendo a un usuario normal no usar un antivirus, Yo porque soy un loco que odia tener un AV instalado. Avg es limitado…pero me refiero a que como alternativa sin costo es lo mejor que ví, y a grandes rasgos, nos protege. NOD32 no es gratis, y a menos en Uruguay y en años de trabajo técnico a particulares, jamás vi alguien que pregunte siquiera por un antivirus de pago, sin bien tampoco son tan caros, pero nadie los compra. Normalmente se lleva uno crackeado o simplemente, el AVG.

    De momento la perfección en cuanto a protección no existe. Teniendo 2 antivirus, firewalls, antispywares, utilizando Linux, Firefox y Thunderbird seguimos siendo vulnerables. Por lo que es bueno al menos educar en cuanto a que los usuarios sepan cuales son las vías normales de entrada de virus y malware a nuestro ordenador y tips fáciles de prevención, utilizando programas alternativos y con un uso prudente de la PC y la navegación por Internet. Creo que no hay mejor arma que esa, la educación.

    Comment by Nico — April 27, 2007 #

  4. [...] remembranza, ESET presentó un interesantísimo documento que hablaba sobre la detección de código malicioso mediante técnicas de heurística. En él se recalca la importancia de la habilidad de un antivirus en detectar no sólo [...]

    Pingback by bolsanegra.blog » Nuevos virus encriptados, amenaza que evita la detección — May 1, 2007 #

  5. [...] Detectando virus desconocidos: La heurística y el código malicioso [...]

    Pingback by bsod » ¡CUIDADO! Tu página puede estar infectada con un virus maligno — June 2, 2008 #

Leave a comment

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Powered by WordPress with GimpStyle Theme design by Horacio Bella.
Entries and comments feeds. Valid XHTML and CSS.

Clicky Web Analytics