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” aún sin haberlo analizado antes y sin
estar en la base de datos del antivirus que se esté considerando. Esto
pareciera que carece de sentido pero es tan simple como buscar “instrucciones
comunes” de los virus para advertir de la posibilidad de que un archivo o
programa esté infectado. .
Cuando analizamos las primeras instrucciones de cualquier archivo, veremos
instrucciones para detectar los parámetros de la línea de comandos, borrar la
pantalla, llamar a alguna función, ejecutar alguna macro, etc.. No obstante
tratándose de un virus suelen ser otras bien diferentes como activar el cuerpo
del virus o buscar más archivos para intentar implantarles su código.
La experiencia es sin duda lo que lleva a una persona a reconocer algo
infectado de algo 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 analiza cada
programa sospechoso sin ejecutar las instrucciones, lo que hace es desensamblar
o "descompilar" el código de máquina para deducir que haría el
programa si se ejecutara. Avisando que el programa tiene instrucciones para
hacer algo que es raro en un programa normal, pero que es común en un virus.
Sin duda el principal problema de las técnicas heurísticas ha 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
más que 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á
constantemente mandando muestras a su casa de antivirus ya que “el antivirus le
dijo que podía tener un virus”.
Entendiendo la Heurística como un indicador de probabilidad de contagio, esto
nos lleva a considerarla como un sistema de detección mejorada que al incluirla
los antivirus nos permite establecer un sistema de alerta y de prevención ante
la aparición de mutaciones de virus o de nuevos virus.
Esta técnica permite "barrer" diferentes tipos de códigos dentro de
los archivos, que sean susceptibles de ser malignos. Códigos que son genéricos
dentro de los archivos maliciosos y que siempre suelen ser parecidos. O por lo
menos respetar parte de las cadenas de comandos que activan los virus.
Pero ¿cómo opera un
antivirus? Los virus tienen patrones de códigos que son como sus "huellas
digitales". Los software antivirus buscan estos patrones, pero sólo de los
que tienen almacenados en su lista (por esto la actualización es tan
importante). Estos productos también pueden valerse de la heurística, es decir,
analizan los archivos para detectar comportamientos similares a los de los
virus.
Cada día crece el número de nuevos virus y la alternativa para poder
neutralizarlos, sin haber programado antes el antivirus para su reconocimiento,
es la denominada “búsqueda heurística”. A través de ella, el programa antivirus
analiza el código de los programas buscando instrucciones, acciones sospechosas
o indicios que delaten la presencia de virus en la computadora, de acuerdo a
los patrones habituales empleados por los códigos maliciosos.
El método Heurístico es una tecnología de programación que dentro de sus
rutinas de detección de especies virales, incluye las cadenas clásicas que son
similares, parecidas o afines a virus auténticos. El método heurístico, si no
está bien programado, es susceptible de incurrir en resultados falsos positivos
o negativos. Además, al encontrar un virus desconocido, variante de otro
existente, el antivirus que emplea este método de búsqueda no podrá eliminar
eficientemente el virus y mucho menos reparar el archivo o área afectada.
Para que un antivirus detecte y elimine eficientemente a un virus así como
también repare los daños ocasionados, debe incluir en la base de datos de sus
rutinas de detección y eliminación el exacto micro código viral de esa especie.
Sin embargo la técnica de búsqueda heurística de virus por "familias"
es una forma eficiente de detectar a especies virales que pertenecen a una
misma familia, aunque no es un método absolutamente exacto o eficiente.