heuristica antivirus
TRANSCRIPT
HEURISTICA ANTIVIRUSSeguridad Informática:
el análisis proactivo de amenazas
Autor: Sebastián Bortnik
‘Heurística Antivirus’ - Sebastián Bortnik
El presente trabajo es publicado bajo una licencia de Creative Commons, AtribuciónNo ComercialCompartir Obras Derivadas Igual 2.5 Argentina
Usted es libre de:
• copiar, distribuir, exhibir, y ejecutar la obra.
• hacer obras derivadas de ella.
Bajo las siguientes condiciones:
• Usted debe atribuir la obra en la forma especificada por el autor o el licenciante.
• Usted no puede usar esta obra con fines comerciales.
• Si usted altera, transforma, o crea sobre esta obra, sólo podrá distribuir la obra derivada resultante bajo una licencia idéntica a ésta.
http://creativecommons.org/licenses/byncsa/2.5/ar/
-Pág. 2 de 35
‘Heurística Antivirus’ - Sebastián Bortnik
HEURISTICA ANTIVIRUSSeguridad Informática: el análisis proactivo de amenazas.
ResumenLa tecnología está cambiando rápidamente y los virus informáticos se han adaptado para aprovechar estos cambios e incrementar los daños causados y, fundamentalmente, su capacidad de propagación. La velocidad con la que se reproducen los virus ha crecido exponencialmente, más que la capacidad de los laboratorios antivirus para combatirlos. En la ‘ventana de tiempo’ que se genera entre el lanzamiento de un nuevo virus y la creación de una vacuna para prevenirlo, se infectan cada vez más ordenadores y los métodos originarios de prevención que se utilizaban, ya son insuficientes.En el presente trabajo, se expone en qué consisten las nuevas soluciones que han desarrollado empresas antivirus para proteger los sistemas, sin la necesidad de brindar una vacuna específica para cada virus encontrado. Estas, se basan en la utilización de búsquedas heurísticas como complemento a los métodos ya existentes. Los temas son abordados desde una perspectiva conceptual, independiente de las implementaciones técnicas de cada empresa. A modo de cierre, se incluye un modelo para la creación de reglas heurísticas en seguridad, que sintetiza a través de un esquema teórico, los conceptos desarrollados a lo largo de texto.
AbstractTechnology is changing rapidly and computer viruses have taken advantage of these changes to increase damages and, mainly, its capacity to spread more quickly. The speed of viruses propagation has exponentially increased, faster than the capacity of antivirus laboratories to fight them. There is a ‘window time’ between the launch of the new threat and the appearence of the signature to prevent it. In the meantime, more and more computers get infected. As a consequence, the old tools to detect computer viruses are not enough.This paper presents new tools that antiviruses companies have developed to protect computers, without the need of ‘signatures’ of previously captured viruses. It also shows what these solutions consist of. They are based on heuristic research as a complement to the already existing methods. This paper does not take into consideration the technical implementation of each vendor, but rather tackles the subject matter from a general view. As a closure, this research work includes a model for the creation of heuristic rules in security, which summarizes, through a theoretical outline, the concepts contained in this text.
Autor / Author: Sebastián Bortnik
Palabras Clave: heurística, antivirus, seguridad informática, virus, malware, métodos de prevención, proactivo.
KeyWords: heuristic, antivirus, information security, virus, malware, prevention methods, proactive.
Fecha / Date: Agosto de 2007 / August 2007
-Pág. 3 de 35
‘Heurística Antivirus’ - Sebastián Bortnik
INDICE
Introducción 5
Qué es heurística 7
Heurística e Informática 10
Heurística y Seguridad Informática 12
Heurística Antivirus
Qué es un virus 13
Breve historia del surgimiento de los virus 13
Cómo funciona un virus 14
¿Virus o Malware? 15
Ejemplos de virus 16
Antivirus 17
Heurística antivirus 19
Aspectos negativos de la heurística 20
Técnicas heurísticas 21
Cómo se evalúa una técnica heurística 21
¿La heurística reemplazará la exploración por firmas? 24
Otras aplicaciones en Seguridad Informática
Antispam 25
Firewall 25
Filtros de Internet 26
Educación en Seguridad 26
Conclusión 27
Modelo teórico para la creación de reglas heurísticas en seguridad 29
Fuentes 31
-Pág. 4 de 35
‘Heurística Antivirus’ - Sebastián Bortnik
INTRODUCCIÓN
El concepto de heurística es poco popular en la actualidad, a pesar de que su concepción proviene de la Grecia antigua. A lo largo de los años se fue introduciendo el concepto en diferentes ciencias, incluso en las ciencias de la computación.
En el área de la Seguridad Informática, el término se volvió popular a través de los software antivirus, encargados de proteger a nuestros computadores, de todo tipo de virus (o malware) que pueda ingresar en él y dañarlo. Muchos usuarios habrán escuchado que cierto antivirus, utiliza ‘búsquedas heurísticas’ sin saber qué significa tal afirmación y qué implicancia tiene esto en el rendimiento del software.
Existen diversos escritos sobre la aplicación de la heurística en antivirus. Sin embargo, se pretende con el presente trabajo, aportar una visión más global, estudiando el concepto desde sus orígenes y sus aplicaciones más allá de la informática. En consecuencia, se presentarán analogías y ejemplos con respecto a las personas y sus ‘decisiones heurísticas’.
Las técnicas heurísticas ya son aplicadas por muchas de las empresas que proveen soluciones antivirus y, de hecho, ya son indispensables para el buen desempeño del software y la seguridad de nuestra Pc. Desde ya, que los algoritmos utilizados por cada motor antivirus no son publicados y, como se verá, no cualquier heurística ofrece resultados positivos. Sin embargo, no es propósito del presente comparar y juzgar a las diferentes empresas antivirus sino simplemente estudiar el concepto y sus aplicaciones más allá de las implementaciones particulares de cada empresa, que pueden ser evaluadas por cada usuario en particular.
En los últimos años, teniendo en cuenta su crecimiento en los software antivirus, se han comenzado a aplicar razonamientos heurísticos en otras aplicaciones de la Seguridad Informática, tales como sistemas de detección de intrusos (IDS), antispam y otros. Es decir, la heurística se encuentra en una etapa de crecimiento en el área de la seguridad. Esto se debe a nuevas características de las amenazas informáticas que existen hoy en la red que obligaron a reformular las estrategias de defensa y prevención ya que, como se explicará posteriormente, las utilizadas hasta el momento ya no brindan suficiente protección.
Como conclusión, he desarrollado un modelo teórico para la creación de reglas heurísticas en la seguridad que puede ajustarse, tanto para la creación de estrategias de seguridad y desarrollo de algoritmos heurísticos, como así también, para la comprensión de estos en aplicaciones ya existentes.
-Pág. 5 de 35
‘Heurística Antivirus’ - Sebastián Bortnik
“Si no puedes resolver un problema, entonces hay unamanera más sencilla de resolverlo: encuéntrala.”
George Pólya
“Si tomas una conclusión heurística como una certeza, podrás equivocarte y sentirte engañado; pero si rechazas totalmente las conclusiones heurísticas, no
harás ningún progreso.”
George Pólya
-Pág. 6 de 35
‘Heurística Antivirus’ - Sebastián Bortnik
QUÉ ES HEURÍSTICA
La definición del término heurística es una tarea compleja, si se tiene en cuenta las diferentes formas de expresarlo que existen, según el contexto en el que se la delimite. Sin embargo, todas las definiciones son válidas y refieren a un mismo concepto. Explorando desde sus orígenes, se concluirá en una definición base para la lectura del presente trabajo.
La etimología de la palabra, proviene del griego “heurísko”, es decir, encontrar, lo cual ofrece una primera guía en la búsqueda de una definición común. De la misma palabra griega proviene el famoso ‘Eureka’ (“lo encontré”) mencionado por Arquímedes al encontrar la solución al problema de comprobar que una corona era realmente de oro.
A pesar que el término es utilizado desde la Grecia antigua, fue popularizado en el año 1945 por el matemático George Pólya1 en su libro “How to solve it” (“Como resolverlo”), que trata sobre métodos para la resolución de problemas, especialmente en el área de la matemática. El autor hace mención a la necesidad de estudiar el concepto ya que “ha sido comúnmente presentada a grandes rasgos, pero rara vez en detalle”2. En la obra, se presenta el término en función del descubrimiento matemático y el autor diferencia la utilización del mismo como adjetivo o sustantivo; refiriéndose a algo que “guía el descubrimiento” en el primer caso y a una disciplina propiamente dicha que posee técnicas que guían el descubrimiento, si es utilizada en cambio como sustantivo.
Una técnica heurística nunca es utilizada como resolución final o búsqueda de la mejor solución. Justamente nos permite, ante cualquiera de estas situaciones, guiar el accionar hacia una posición favorable en pos del objetivo.Como también menciona Pólya en su texto, generalmente estamos obligados a utilizar el razonamiento heurístico.
A partir de la mención de Pólya y a lo largo de los años, el concepto de heurística comenzó a ser más frecuente en diferentes áreas de estudio y no solo en las matemáticas, sino también en la lógica, la psicología, la filosofía y la computación. Hoy en día, se pueden encontrar diferentes definiciones del mismo concepto, algunas de las cuales se mencionan, para poder precisarla.
La Real Academia Española la define como “técnica de la indagación y del descubrimiento.”3 Otras posibles formas de definirla son: “reglas del sentido común deducidas de la experiencia”, “proceso de ganar conocimiento o un resultado deseado por conjeturas inteligentes”, o, de forma más sencilla, “el problema de resolver problemas”.
1 http://es.wikipedia.org/wiki/George_P%C3%B3lya2 “Heuristic was the name of certain Branch of study [...] often outlined, seldom presented in detail.” Pág. 112. Polya, George – “How To Solve It: A New Aspect of Mathematical Method”3 http://buscon.rae.es/draeI/SrvltGUIBusUsual?LEMA=heur%C3%ADstico&origen=RAE
-Pág. 7 de 35
‘Heurística Antivirus’ - Sebastián Bortnik
En función de las variadas definiciones leídas y el contexto en el que se aplicará en el presente, se define a la heurística como una técnica que, a través de conjeturas ‘inteligentes’ basadas en la experiencia, encuentra estrategias y reglas que guían el descubrimiento hacia la toma de decisiones o búsqueda de respuestas.
Como se puede apreciar, la definición elegida es abarcativa y será más útil para la lectura del presente. Sin embargo, como ya se mencionó, se pueden utilizar diferentes términos para una propia definición según el contexto en el que se encuentre.
La capacidad heurística es un rasgo característico de los humanos. Para aplicar heurística, siempre se debe tener un problema que resolver, una respuesta que encontrar, “algo“ por descubrir. Constantemente las personas aplican reglas heurísticas para guiar su accionar en la vida diaria.
EjemploSe tienen 100 números de teléfono de todo el mundo y se debe encontrar el de Harald Müller sin conocer a nadie. Se podría empezar llamando uno a uno a todos los teléfonos y se encontraría al individuo en cuestión. Pero esto consumiría mucho tiempo y sería muy costoso. Una solución heurística sería comenzar por los números que fueran de Alemania y el proceso se habría optimizado bastante4.
De forma similar, un encargado de Recursos Humanos filtra una serie de Currículos para una selección de personal (ya que son muchos los candidatos), comenzando por las personas que provengan de cierta universidad que es elegida según la propia experiencia, la reputación de la facultad y otras posibles variables a considerar.
EjemploJosé desea ir desde su casa (o un origen cualquiera) hacia un estadio de fútbol para entretenerse (destino) y desea llegar lo más rápido posible. Dentro de las soluciones ideales (y casi ficticias), José podría estudiar la frecuencia de los semáforos, buscar imágenes satelitales sobre el estado del tránsito, conocer el estado de las calles, informarse sobre los cortes, y otras tantas y así obtener la ruta que más rápido lo hará llegar a destino. Visto y considerando la dificultad de lo propuesto, José tomará decisiones basándose en un conocimiento previo y, por ejemplo, tomará el camino que menos semáforos tenga. Se ha aplicado aquí heurística, pero ¿se logrará así realizar el camino más rápido? Es probable, pero no seguro, ya que pueden aparecer otras variables no tenidas en cuenta como un embotellamiento, un corte, etc. La heurística funciona efectivamente en la mayoría de las circunstancias pero, sin embargo, puede conducir a errores en la toma de decisiones.De la misma forma, en el primer ejemplo, Harald Müller podría no vivir en Alemania y el encargado de Recursos Humanos podría perderse de un gran profesional que provenga de otra universidad que la elegida.
4 Extraído de http://foro.msgpluslive.es/showthread.php?tid=3689
-Pág. 8 de 35
La historia de ‘Eureka’
Herón II, rey de Siracusa, pidió un día a su pariente Arquímedes (aprox. 287 a.C. aprox. 212 a.C.), que comprobara si una corona que había encargado a un orfebre local era realmente de oro puro. El rey le pidió también de forma expresa que no dañase la corona.Arquímedes dio vueltas y vueltas al problema sin saber como atacarlo, hasta que un día, al meterse en la bañera para darse un baño, se le ocurrió la solución. Pensó que el agua que se desbordaba tenía que ser igual al volumen de su cuerpo que estaba sumergido. Si medía el agua que rebosaba al meter la corona, conocería el volumen de la misma y a continuación podría compararlo con el volumen de un objeto de oro del mismo peso que la corona. Si los volúmenes no fuesen iguales, sería una prueba de que la corona no era de oro puro. A consecuencia de la excitación que le produjo su descubrimiento, Arquímedes salió del baño y fue corriendo desnudo como estaba hacia el palacio gritando: "¡Lo encontré! ¡Lo encontré!".La palabra griega "¡Eureka!" utilizada por Arquímedes, ha quedado desde entonces como una expresión que indica la realización de un descubrimiento.Al llevar a la práctica lo descubierto, se comprobó que la corona tenía un volumen mayor
‘Heurística Antivirus’ - Sebastián Bortnik
Es decir, al aplicar heurística, se sacrifican demandas de completitud; en pos de obtener una solución óptima en un tiempo razonable.
No se debe confundir la aplicación de una decisión heurística con el azar, la intuición o aspectos por el estilo. No siempre que se solucione un problema en forma rápida se aplican reglas heurísticas. Lo hago, si baso mis decisiones en la experiencia y en cierto aspecto inductivo al respecto. Volviendo al primer ejemplo, una persona en esa situación podría tener una corazonada de que Harald Müller vive en Brasil y hasta incluso podría ser cierto pero no por ello se ha aplicado un razonamiento heurístico.
Diferenciar una resolución de un problema en forma completa y en forma heurística es vital para la obtención de resultados y su valoración. Así lo explicita también en su libro George Pólya: “La heurística es buena en sí misma. Lo que es malo es mezclar el razonamiento heurístico con pruebas rigurosas y, lo que es peor, vender el razonamiento heurístico como una prueba rigurosa”5.
5 “Heuristic reasoning is good in itself. What is bad is to mi up heuristic reasoning with rigorous proof. What is worse es to sell heuristic reasoning for rigorous proof.” Pág. 113. Polya, George – “How To Solve It: A New Aspect of Mathematical Method”
-Pág. 9 de 35
‘Heurística Antivirus’ - Sebastián Bortnik
HEURISTICA E INFORMÁTICA
Un algoritmo es un conjunto finito de instrucciones o pasos que sirven para ejecutar una tarea o resolver un problema. Consta de una secuencia de pasos lógicos que permite cumplir un objetivo u obtener una solución.
En informática se utilizan constantemente algoritmos para diversas funciones y objetivos, aplicándolos a cualquier tarea de programación. Al desarrollar software, se deben crear algoritmos que satisfagan las necesidades del programa en cuestión.
Un problema de optimización es cualquier que necesite encontrar, no solo una solución aceptable, sino la mejor. Cualquiera de estos problemas, puede presentarse como un conjunto de estados con funciones que permiten pasar de uno a otro; teniendo un estado inicial y un estado objetivo. De esta forma, se puede simplificar diciendo que un algoritmo es un proceso de búsqueda desde un problema (estado inicial) hacia una solución (estado objetivo).Si se piensa en estos términos, se pueden clasificar las búsqueda según si son ciegas o no; es decir, si evalúan y recorren todo el árbol de posibilidades o no. Las búsquedas heurísticas, no pertenecen a las búsquedas a ciegas, sino todo lo contrario: se aplican ante la imposibilidad de emplear una búsqueda que evalúe todas las posibilidades y obtenga el mejor resultado. Esto se debe siempre a un problema de recursos (sea tiempo, costo, memoria, etc.).
Al aplicar las reglas heurísticas, se pueden dar dos posibilidades:
• Que el razonamiento permita acotar la búsqueda y encuentre el resultado en este nuevo subconjunto de estados.
• Que el razonamiento permita orientar una sucesión dentro de todo el conjunto, parando en el primer estado objetivo posible.
En cualquiera de los dos casos, la aplicación de una técnica heurística no garantiza encontrar el mejor resultado, sino uno aceptable, teniendo en cuenta la optimización de la búsqueda.La especificación de qué es ‘aceptable’ depende de cada caso en particular y es propio de análisis para el desarrollo de cualquier función heurística.
La Inteligencia Artificial (IA) es la parte de la computación que se encarga del estudio del comportamiento inteligente de las máquinas. Las metas a largo plazo de la IA son el desarrollo de máquinas (o programas) que puedan hacer cosas que hacen los humanos, incluso mejor que estos.Como ya se mencionó, la heurística proviene del pensamiento humano, por ende, su aplicación en la informática se encuadra en la Inteligencia Artificial y es una aplicación de la misma.
-Pág. 10 de 35
‘Heurística Antivirus’ - Sebastián Bortnik
En resumen, las técnicas heurísticas son utilizadas para agilizar los procesos de búsqueda de una solución a través de los algoritmos de programación.
EjemploEn una habitación hay n elementos, cada uno con un valor vi y un peso pi. Se tiene además, una mochila con un peso P. El objetivo es llenar la mochila con el mayor valor posible, eligiendo los elementos convenientes. Si tuviéramos 1, 2, 3 o 4 elementos sería fácil probar todas las alternativas y elegir la de mayor valor. Sin embargo, la explosión combinatoria6 hace difícil de evaluar todas las posibles soluciones al ser mayor el número de elementos. Si tuviéramos solamente 10 elementos, serían millones las combinaciones posibles a evaluar. Una técnica heurística que podríamos aplicar es la de ir agregando a la mochila, el elemento que aporte mayor valor en proporción a su peso (vi/pi), de esta forma, se supone o presume, encontraremos una solución, que aunque óptima, seguramente no la mejor. En términos matemáticos podríamos decir que no encontraremos el máximo absoluto de la función aunque sí, probablemente nos acercaremos a él. De hecho, es necesario aplicar alguna heurística para encontrar una solución en un tiempo razonable. Es decir, la heurística aumenta la eficiencia del proceso de búsqueda, sacrificando, como ya hemos mencionado, demandas de completitud.
Se presenta un caso con números para ejemplificar en forma más clara, como la técnica heurística puede no guiar hacia la mejor solución. Este es solo un ejemplo y no se debe concluir que la heurística no es efectiva; al contrario, pero es útil entender el por qué de su utilización y sus limitaciones. Nunca que podamos encontrar la solución real (en un tiempo prudente o con los recursos prudentes) se aplicará una técnica heurística.
Dado el problema de la mochila y teniendo los siguientes 3 elementos, ¿cuál es la mejor solución si la mochila puede soportar hasta 3000 grs?
Elemento Peso Valor1 1800 grs. $722 600 grs. $363 1200 grs. $60
Si se aplicara la técnica heurística de sumar a la mochila los objetos que más valor aporten en función a su peso, la solución final sería $96 con los objetos 2 y 3 (cuyo valor vi/pi es de 0.06 y 0.05 respectivamente contra 0.04 del primer objeto).
Sin embargo, analizando todas las soluciones posibles (12, 13 y 23) y teniendo en cuenta que el número de objetos es chico y es factible hacerlo, se observa que la mejor solución era la de colocar en la mochila los objetos 1 y 3, obteniendo así un valor de $132.
6 Propiedad de la combinatoria matemática (factorial de N) en donde, al agregar un nuevo elemento, el número de combinaciones posibles crece mucho más que en 1, de forma exponencial.
-Pág. 11 de 35
‘Heurística Antivirus’ - Sebastián Bortnik
HEURÍSTICA Y SEGURIDAD INFORMÁTICA
La Seguridad Informática es la característica de cualquier sistema que nos indica que está libre de todo peligro, daño o riesgo y que es, en cierta medida, fiable. Como la seguridad absoluta es imposible, se habla de fiabilidad, es decir, la probabilidad de que un sistema se comporte como se espera de él.Todo proceso que nos permita preservar la información y los objetos de nuestro sistema pertenece a la seguridad de la información.
Un sistema es seguro o confiable cuando se garantizan 3 aspectos:
Confidencialidad: Los elementos de un sistema serán accedidos únicamente por elementos autorizados a ello.
Integridad: Los elementos de un sistema solo pueden ser modificados por las personas autorizadas.
Disponibilidad: Los objetos tienen que permanecer accesibles a los elementos autorizados.
En el campo de la seguridad también se aplican técnicas heurísticas en diferentes aplicaciones de protección del sistema.
Retomando el concepto, la seguridad se encarga de proteger a la información de las diversas amenazas existentes en su contexto. Comparando con los humanos: ¿cómo determina una persona que algo/alguien es una amenaza para él/ella? Cuando se dispone de toda la información es simple. Por ejemplo una persona va por la calle y se cruza con otra que reconoce haber visto en el noticiero, donde se informó que es un asesino serial prófugo. Obviamente se reconocerá rápido el peligro, ya que se tiene la certeza que se está ante una amenaza, pero esta situación es la menos común. En la mayoría de los casos, utilizamos nuestro razonamiento basado en la experiencia y la inducción para deducir (¡no suponer o adivinar!) que algo/alguien es para nosotros una amenaza. Suponga que una persona va por la calle y se acerca a un perro cualquiera: ¿Cruzará esta persona la calle debido a que el animal lo va a morder? Seguramente se tomará esa decisión en función de la raza del perro y la agresividad media asociada a la misma. Es decir, aunque no se tiene la certeza si es o no una amenaza, cierto parámetro (en este caso el de pertenecer a una raza que es común que muerda) nos indica que es muy probable que así lo sea, y que mejor evitarlo.
En Seguridad Informática ocurre lo mismo: muchas veces al no saber si a lo que uno se enfrenta es una amenaza, se deben aplicar técnicas heurísticas para tomar una decisión al respecto. La idea es muy simple: en la protección del sistema se pueden identificar amenazas conocidas (y registradas) o bien pueden encontrarse “sospechosos” y se debe evitar que estos, a pesar de no tener la certeza de que hay un peligro, ingresen en el sistema. La decisión de qué es sospechoso para nuestro sistema, le corresponde a los algoritmos heurísticos.
-Pág. 12 de 35
‘Heurística Antivirus’ - Sebastián Bortnik
HEURÍSTICA ANTIVIRUS
Qué es un virus
Un virus es un programa informático, creado voluntariamente por alguna persona, que posee las siguientes características:
• Tiene la capacidad de reproducirse a sí mismo.• Produce algún daño en el ordenador infectado.• Actúa sin que el usuario se de cuenta.
Cualquier virus informático, en su definición clásica, debe poseer las tres características mencionadas. Pueden replicarse por sí solos (es decir, su vida depende de ellos y no de un usuario que los crea y los elimina), al igual que con los virus humanos y, asimismo, multiplicarse a través de diferentes ordenadores y archivos. El daño que producen es muy variable según los diferentes casos; desde un simple mensaje que moleste al usuario hasta inhabilitar el acceso al sistema operativo son algunas de las variantes que se pueden encontrar. Por último, el virus realiza todas sus acciones sin el consentimiento del usuario y es invisible a este, salvo a través de los problemas que le cause su existencia.Si se intenta determinar de alguna forma, su grado de peligrosidad, puede decirse que para un virus, su capacidad de propagarse es más determinante que el daño que ocasiona.
Existen diferentes tipos de virus, como los virus de sector de arranque, que infectan el sector de booteo de nuestra Pc; los virus de programas ejecutables o los virus residentes en memoria, que están latentes mientras utilizamos nuestro Sistema Operativo para atacar o infectar según el caso.
Breve historia del surgimiento de los virus
El concepto de virus siempre fue conocido por los seres humanos (de hecho en la informática, se llama también ‘vacunas’ a las curas de los programas) y, los comienzos de los virus informáticos, le corresponden a la Inteligencia Artificial que, desde las décadas del ’40 y el ’50 intentaba crear programas autoreplicantes aunque sin fines dañinos.
En al año 1959 aparece el precursor del que sería el primer virus informático y fue simplemente un juego nombrado CoreWar. El mismo fue desarrollado en los laboratorios de la Bell Computer por Robert Morris, Douglas Mcllroy y Victor Vysottsky. El juego consiste en el enfrentamiento entre 2 o más programadores trabajando en código máquina7 con el objetivo de ocupar toda la memoria de la máquina del oponente.En 1972 aparece el primer virus, llamado Creeper, creado por Robert Morris. El programa emitía en forma regular un mensaje en pantalla con la inscripción “I’m a creaper... catch me if you can!” (soy una enredadera, atrápame si puedes). Para eliminar el virus, se creó
7 http://es.wikipedia.org/wiki/Lenguaje_m%C3%A1quina
-Pág. 13 de 35
‘Heurística Antivirus’ - Sebastián Bortnik
un ejecutable llamado Reaper que sirve de referencia como el comienzo de los antivirus a pesar de que en esa época no existía el concepto de software antivirus8.
En forma simplificada, los virus se pueden enmarcar en 3 generaciones: la primera hasta el año 1995 en donde los virus se transmitían prácticamente por medio de diskettes y su propagación era lenta; una segunda generación, hasta el año 2000, donde se expandían en unos pocos meses y una tercer generación, desde el comienzo del presente milenio, conformada por los actuales virus de rápida propagación (en horas o días). Esta última generación se la suele llamar también ‘Los virus de Internet’.
Cómo funciona un virus
Un virus al ejecutarse comienza a realizar dos acciones en paralelo: por un lado ejecuta un daño de cierta magnitud en el sistema y, por el otro, continúa su propagación.
Un virus puede entrar a nuestro ordenador por cualquier medio de almacenamiento (un disco rígido, un diskette, un pen drive, etc.), a través de una red local o bien, a través de Internet (mail, paginas web, Chat, etc.) que es hoy en día el medio más habitual de transmisión de virus. Es decir que cualquier contacto entre nuestro sistema y otro es una posible infección.
En un principio los virus afectaban solo a archivos ejecutables como .EXE, .COM o .BAT pero hoy en día ya pueden afectar a archivos de imagen (.JPG) o de música (.MP3) o a cualquier tipo de archivo (.SYS, .PDF, etc.).
Un virus funciona suplantando el archivo infectado por el que contiene el código malicioso y modificando el nombre del archivo original. Cuando el usuario ejecuta el archivo, en un primer término se ejecutan los pasos del virus y, luego, este llama al archivo original (el virus conoce su nuevo nombre y ubicación). De esta forma, el virus se ejecutó pero el usuario no se entera de la ejecución del virus ya que está viendo el archivo que quería utilizar.
8 Más info en http://www.kriptopolis.org/elprimerantivirus
-Pág. 14 de 35
‘Heurística Antivirus’ - Sebastián Bortnik
¿Virus o Malware?
El concepto de virus en su forma pura, como fue presentado hasta el momento, evolucionó a lo largo de los años con el avance de la informática y, con la popularización de Internet, ha encontrado nuevas formas que, eventualmente, se nombran también como virus. Sin embargo, la mejor forma de englobar todo el software dañino es Malware (del inglés malicious software; software malicioso). Se puede considerar como malware todo programa con algún fin dañino. Dentro de este grupo se encuentran los virus en su concepción clásica y otras nuevas formas que fueron apareciendo en los últimos años y que, algunas de ellas, se describen brevemente a continuación.
• Gusano: A diferencia de los virus, no infectan archivos. Su propósito es agotar lo recursos del sistema y se reproducen a través de diferentes medios de comunicación. No necesitan de un archivo huésped para seguir vivos. El primer gusano que apareció fue el Morris9 en el año 1988, que llegó a colapsar cientos de sistemas pertenecientes a ArpaNet10.
• Troyano: Su nombre proviene del mito del caballo de Troya11 ya que el objetivo es el de engañar al usuario. Son archivos que simulan ser normales e indefensos como juegos o algún tipo de software que tienta a la victima a ejecutarlo; de esta forma logran instalarse en los sistemas.
• Spyware: Derivan de las aplicaciones basadas en publicidad (Advertised Software – Adware). En este caso son aplicaciones espías (Spy Software), ya que no son instaladas con el consentimiento del usuario y tienen como objetivo robar información de este y enviarla a través de Internet, generalmente con fines publicitarios.
Usualmente, se denomina virus a la infección de la computadora, a pesar de que en la mayoría de los casos nos encontramos ante un gusano o alguna de las variantes presentadas. Es también probable que algún código malicioso presente características de más de una de las variantes expuestas.
Existen más variantes de virus maliciosos como backdoors, rootkits, exploits pero su explicación escapa el alcance del presente12. Las tres variantes mencionadas son las más usuales y generales cuando se habla de Malware13.
9 Más info sobre los daños causados y gusanos en http://snowplow.org/tom/worm/worm.html.10 Precursora de Internet, perteneciente al Departamento de Defensa de los Estados Unidos. http://en.wikipedia.org/wiki/Arpanet11 http://es.wikipedia.org/wiki/Caballo_de_Troya http://www.jornada.unam.mx/2005/04/27/029a1eco.php12 Para conocer más visitar http://en.wikipedia.org/wiki/Malware o http://es.wikipedia.org/wiki/Malware#Spyware13 De aquí en adelante, se utilizarán las palabras Virus y Malware indistintamente para identificar cualquier archivo con fines maliciosos hacia nuestro ordenador.
-Pág. 15 de 35
‘Heurística Antivirus’ - Sebastián Bortnik
Ejemplos de virus
Se presentan algunos virus de los más famosos para conocer sus principales efectos, sus variantes y sus medios de propagación.
• Virus Melissa
El virus Melissa apareció en el año 1999 y llegó a colapsar cientos de servidores de correo a las pocas horas de su propagación.Melissa afectaba documentos de Word 97 y Word 2000. Si el virus se ejecutaba, enviaba un correo electrónico a los primeros 50 contactos del Outlook Express con asunto “Important message from <name of sender>” donde ‘name of sender’ corresponde a la Pc infectada que envía el correo.En el cuerpo del mensaje, solo estaba escrita la siguiente leyenda (traducida al pie al español):
Here is that document you asked for ... don't show anyone else ;)TCizzle“Aquí está el documento que pediste ... no se lo muestres a nadie ;)TCizzle”
El correo contenía un adjunto de Word (LIST.DOC) que contenía una lista de sitios pornográficos y los passwords para acceder a ellos.
El virus además, poseía daños secundarios al modificar los archivos que eran abiertos en el momento en que los minutos del horario coincidieran con el día (ej. 18:30 un 30 de Marzo); y agregaba líneas de texto al archivo sin el consentimiento del usuario.
El virus Melissa es considerado de los primeros malware con daños significativos al poco tiempo de la propagación. Tuvo además, diferentes variantes que añadían o modificaban pequeños aspectos respecto al original.
El código del virus puede observarse en http://www.62nds.co.nz/62nds/documents/melissa.txt.14
• Win32/Sober
Fue un gusano de Internet que apareció en el año 2003 pero que sus variantes llegaron a afectar masivamente hasta el 2005; de hecho, fue el gusano de más propagación en aquel año. Alcanzó niveles de reproducción altísimos en unas muy pocas horas.Se propagaba en forma masiva a través del correo electrónico y tanto el asunto, el texto del mensaje y el adjunto eran variables en su idioma y extensiones respectivamente.
14 Posiblemente el antivirus detecta la página como amenaza pero el código está en texto plano por lo que es inofensivo.
-Pág. 16 de 35
‘Heurística Antivirus’ - Sebastián Bortnik
• I Love You
Es un gusanotroyano que se propagaba a través de IRC (mensajería instantánea) y el correo electrónico. Al ejecutar el archivo, la Pc se infectaba y se sucedían las siguientes acciones:
1) Se reenvía a todas las direcciones de la libreta de correo.2) Se descarga un archivo para el robo de información.3) Se eliminan distintos tipos de archivos.
El código del virus puede observarse en http://www.62nds.co.nz/62nds/documents/iloveyou.txt.15
Antivirus
Los antivirus son programas encargados de detectar y eliminar ataques informáticos de virus que quieran, o hayan accedido a nuestra Pc. Actualmente, los software no solo detectan virus, sino otros tipos de ataques de Malware, como los que ya se mencionaron en la sección anterior.
El software detecta el archivo, lo elimina y desinfecta el sistema. Muchas veces las tres acciones no son posibles y puede que solo se detecte el archivo y se lo elimine y, en el peor de los casos, puede que solo se detecte el archivo. Esto dependerá del virus al que se esté enfrentando.
Los antivirus tienen una serie de módulos de protección encargados de analizar diferentes tipos de archivos y tráfico en nuestro ordenador. Entre estos, los que se encuentran usualmente son:
• Análisis de archivos: se encarga de verificar los archivos que se van utilizando en la Pc (abrir, guardar, copiar, etc.). En caso de encontrar Malware, informa automáticamente al usuario.
• Análisis de archivos por demanda: a pedido del usuario, escanea todos los archivos de la Pc (o de un sector indicado) en busca de Malware realizando un informe final de archivos infectados encontrados.
• Análisis del tráfico de Internet: verifica las páginas que son visitadas y los archivos que estas contienen. En caso de encontrar malware, avisa al usuario y cancela el acceso a la página web.
• Análisis del correo electrónico: analiza el correo entrante y saliente de nuestra Pc, eliminando adjuntos o correos infectados por Malware.
Estos son los módulos principales de cualquier motor antivirus. Con ellos, se monitorea prácticamente todo el tráfico de la Pc, en busca de Malware, tanto en tiempo real mientras
15 Posiblemente el antivirus detecta la página como amenaza pero el código está en texto plano por lo que es inofensivo.
-Pág. 17 de 35
‘Heurística Antivirus’ - Sebastián Bortnik
el usuario trabaja como por demanda, cuando se utilizan las herramientas de Scanner que posee el software.
Desde sus orígenes, los antivirus cuentan con un método de detección basado en firmas. Este consiste en una base de datos generada por el fabricante que le permite determinar al software si un archivo es o no un virus. El sistema es simple: se compara cada archivo con la base de datos y, si hay coincidencia, se utiliza la firma para la detección y desinfección (si esta existe) del archivo y la Pc. El proceso para estar protegidos por esta metodología es el siguiente:
a) Aparece un nuevo virusb) Se recibe la muestra en la empresa antivirusc) Se crea la vacuna (llamada firma) para el nuevo virusd) La computadora descarga la firma y comienza a detectar el nuevo virus
A este método se debe la importancia de tener actualizado nuestro antivirus: si la firma ya ha sido creada por el fabricante, pero no la hemos descargado en nuestro ordenador, no estamos protegidos para esa amenaza en particular.
Además de esta, este método posee dos principales desventajas:
• El sistema no puede detectar virus que no se encuentran en la base de datos del fabricante.
• El sistema debe poseer una firma por cada variante de un mismo virus.
Debido a la alta velocidad de propagación (y aparición) de nuevos virus informáticos, el método de detección basado en firmas se volvió lento e insuficiente. Virus como el Melissa (antes mencionado) generaron miles de host infectados a las pocas horas de ser lanzado. El virus Bagle infecto casi veinte mil ordenadores en 4 horas16 y tuvo decenas de variantes desde su lanzamiento.El proceso de creación de firmas puede llevar horas. Según las estadísticas, recién a partir de las 34 horas aparecerán las soluciones en las primeras empresas y muchas veces se debe esperar hasta 20 horas para tener la actualización disponible. Por otro lado, la cantidad de virus nuevos que aparecen día a día es creciente y esto hace más compleja la tarea de los laboratorios antivirus. Ya en 2003, los laboratorios antivirus recibían más de diez virus nuevos por día. Hoy ese número, llega a ser dos o tres veces mayor.
La pregunta que surge entonces es: ¿hay probabilidades que en las horas hasta que aparezca la firma y se actualice el antivirus, la Pc se infecte? Obviamente la respuesta es sí. Cada vez más ordenadores están conectados full time a Internet y se navega y se descargan emails constantemente.
16 “La historia sin fin: Virus Bagle” – Pág. 10http://www.esetla.com/press/informe/historia_sin_fin_virus_bagle.pdf
-Pág. 18 de 35
‘Heurística Antivirus’ - Sebastián Bortnik
Los virus se reproducen muchas veces como una epidemia y las probabilidades de infectarse antes de descargar la firma son muy altas. Es aquí donde surge la necesidad de encontrar un método que complemente la detección por firmas. Como antes se mencionaba, al no existir la posibilidad ideal de que las computadores tengan siempre la firma contra los virus in the wild17, se debe aplicar alguna técnica que nos permita determinar que es probable que un archivo sea una amenaza. He aquí que los software antivirus aplican heurística para detectar (sospecharconcluir) que un archivo es una amenaza a nuestro sistema, a pesar de no figurar en la base de firmas.
De esta forma, se complementan los métodos reactivos, que necesitan conocer la amenaza para brindar la solución, con nuevos métodos proactivos de detección de amenazas.
Heurística antivirus
La búsqueda heurística es un complemento de la detección basada en firmas. El funcionamiento es similar al que se desprende del comportamiento humano en la detección de amenazas18: al encontrar ciertos parámetros que se corresponden con las amenazas ya conocidas, se supone que cierto elemento es una amenaza. Los motores antivirus utilizan comportamientos heurísticos para poder detectar amenazas, aunque éstas no se encuentren identificadas en una base de firmas.
La heurística se compone de una serie de algoritmos “inteligentes” que permiten detectar virus nuevos y desconocidos. Es importante recordar que la búsqueda heurística no depende de la actualización del software, siempre está disponible con el antivirus en funcionamiento.
Entre algunos de los comportamientos comunes en los códigos maliciosos, se pueden nombrar: envío masivo de emails, modificación del registro del Sistema Operativo, modificación de archivos protegidos contra escritura o archivos del Sistema Operativo, detención de procesos en ejecución o archivos que comiencen con un salto a una instrucción sobre el final del código, entre otros.
Observando ciertos test independientes19 se desprende que hoy en día, pocas heurísticas, en líneas generales, obtienen altos rendimientos (difícilmente superen el 80%) aunque algunas empresas han aventajado al resto. Algunas de ellas, alcanzan a detectar el 70% de los virus sin utilizar la detección con firmas. Sin embargo, más de la mitad de las empresas no detectan siquiera un 35% de los virus utilizando solo las funciones de búsqueda heurística.
17 Listado de los códigos maliciosos para computadores que aún se encuentran activos para atacar. Este es mantenido por ‘The WildList Organization International’ y se puede consultar en la web http://www.wildlist.org/.18 Ver sección “Heurística y Seguridad”19 http://www.avcomparatives.org/index.html?http://www.avcomparatives.org/seiten/comparatives.html
-Pág. 19 de 35
‘Heurística Antivirus’ - Sebastián Bortnik
Cabe resaltar que, de todas formas, las técnicas heurísticas han evolucionado y resultan altamente efectivas en virus imitadores, es decir, aquellos que solo tienen leves modificaciones sobre un virus original que ya está cargado en nuestra base de firmas. De hecho, en los virus que poseen alta cantidad de variantes20, se hace imposible para las empresas analizarlas todas y realizar una firma para cada una.
En resumen, las técnicas heurísticas son la única protección de la que disponemos frente a la aparición de una nueva amenaza que no posea aún la firma.
En el análisis heurístico se examina el código de un archivo basándose en reglas para saber si lo que hace es normal o no. Básicamente, funciona buscando comandos ‘sospechosos’. Hay ciertos comandos que son muy utilizados por los autores de virus y que suelen aparecer frecuentemente. Si en un archivo “desconocido” se encuentran varios de estos comandos, se puede catalogar a este de “sospechoso” o “posible virus”. De una forma simplificada, se intenta deducir qué haría el programa si se ejecutara y se buscan patrones habituales empleados por códigos maliciosos.
Existen variadas técnicas para la implementación de algoritmos heurísticos en motores antivirus. Es importante destacar que técnica heurística es una descripción general de una forma de detectar amenazas que puede tener rendimientos muy variables según la implementación particular que haga cada empresa. Una mala implementación, no significa que conceptualmente, las técnicas genéricas de detección de amenazas son una solución excelente para complementar las búsquedas reactivas y brindar una solución integral ante el malware.
Aspectos negativos de la heurística
La aplicación de las técnicas heurísticas conlleva ciertas desventajas propias de la naturaleza de su implementación. Una búsqueda heurística:
• consume más recursos (fundamentalmente tiempo) que una búsqueda clásica.• pueden aparecer falsos positivos. Se produce un falso positivo cuando el software
antivirus detecta como amenaza un archivo que en realidad no lo es.
Es imposible eliminar totalmente ambos efectos, aunque es deseable minimizarlos lo máximo posible. Siempre una búsqueda heurística demorará más que un simple escaneo basado en firmas y es imposible afirmar que no existirán falsos positivos. Un falso positivo puede generarle al usuario más problemas que un simple virus.
Otra limitación que existe aún, es que una amenaza encontrada a través de una búsqueda heurística, no podrá ser reparada sino simplemente eliminada o puesta en cuarentena, a
20 Otro ejemplo, además de los ya mencionados, el virus Stration que tuvo cientos de variantes. http://www.rompecadenas.com.ar/articulos/1452.php
-Pág. 20 de 35
‘Heurística Antivirus’ - Sebastián Bortnik
diferencia de las firmas que brindan protección completa al sistema y desinfección total del virus.Cuando un antivirus identifica un archivo infectado a través de la base de firmas, se informa al usuario todas las características conocidas y almacenadas en la base, entre ellas el nombre. En cambio, al identificarse una amenaza a través de una técnica heurística, la información que se brinda al usuario es más genérica indicando que el archivo puede provocar algún daño al sistema. Al identificar el virus detectado, el mensaje será, por ejemplo “Probablemente desconocido NewHeur_PE(Virus)”21 según NOD32; “Suspicious” (sospechoso) o “PossibleThreat” (posible amenaza) en el caso de Fortinet; o “HEUR/Crypted” y “HEUR/Malware” entre otros para AntiVir de Avira.
Técnicas Heurísticas22
Existen diferentes técnicas para realizar implementaciones y algoritmos específicos de búsquedas heurísticas en motores antivirus. Cualquiera de ellas responde a la idea básica antes explicada: identificar patrones conocidos de malware en archivos que no figuran en la base de firmas y clasificarlos como una ‘posible amenaza’. Algunas de ellas son:
• Firmas Genéricas: Permite la identificación de toda una familia de virus (el original y sus variantes) a través de una única vacuna genérica.
• Reconocimiento de código compilado: Analiza las instrucciones que se le darán al sistema y busca aquellas comunes en software malicioso.
• Desensamblado: Analiza el código fuente y busca técnicas de desarrollo comúnmente encontradas en códigos maliciosos.
• Desempaquetamiento: Es común la utilización de empaquetadores para modificar la apariencia de los virus. Esta técnica consiste en desempaquetarlo para así poder analizar el código fuente.
Cómo se evalúa una técnica heurística
Para testear el rendimiento de los algoritmos heurísticos en cualquier antivirus, se realizan las llamadas ‘Evaluaciones retrospectivas’. Estas consisten en detener las actualizaciones para el software durante un periodo determinado de tiempo y, luego de ello, someter al antivirus al análisis de códigos maliciosos nuevos recolectados en ese mismo periodo sin tenerlos en su base de firmas. De esta forma, solo a través de su heurística el antivirus podrá reconocer las amenazas.El resultado de este test es un porcentaje de detección que, como antes nombramos, todavía en promedio no se encuentra en valores muy altos.
21 Perteneciente al antivirus NOD32. Más info en http://blogs.esetla.com/laboratorio/2007/07/28/alguemmandoucartaovirtual/22
Extraído de “Así funciona una heurística antivirus.” de Sergio Hernando en http://www.sahw.com/wp/archivos/2006/07/03/asifuncionaunaheuristicaantivirusprimeraparte/http://es.wikipedia.org/wiki/Heur%C3%ADstica_en_antivirus
-Pág. 21 de 35
‘Heurística Antivirus’ - Sebastián Bortnik
Muchas veces este es el único valor que se considera para evaluar los algoritmos heurísticos. Sin embargo, es útil considerar otras variables del test además del porcentaje de detección. Estas, refieren a los ya nombrados efectos colaterales negativos de la heurística: falsos positivos y bajo rendimiento de los recursos.
Como ejemplo, tomaremos la última evaluación retrospectiva realizada por el sitio web independiente avcomparative.org23, con fecha en Mayo de 200724.
El informe posee las tres secciones ya explicadas y se presenta a continuación los gráfico resumen en cada característica evaluada:
• Porcentaje de detección de nuevos códigos maliciosos sin base de firmas
• Falsos Positivos
23 Se toma como referencia por ser el último realizado (Agosto de 2007). Otros sitios web recomendables que realizan test independientes son Virus Bulletin (http://www.virusbtn.com) e Hispasec (http://www.hispasec.com/)24 http://www.avcomparatives.org/seiten/ergebnisse/report14.pdf
-Pág. 22 de 35
‘Heurística Antivirus’ - Sebastián Bortnik
• Rendimiento del escaner25
Más allá del resultado puntual de esta evaluación, es importante evaluar los tres aspectos para conocer realmente el rendimiento heurístico de un producto.
Una heurística muy paranoica detectará muchos virus pero también tendrá un alto grado de falsos positivos26.Una heurística muy liviana tendrá muy pocos falsos positivos pero un bajo porcentaje en la detección de códigos maliciosos.Una heurística muy compleja podrá tener valores aceptables en las primeras dos variables pero disminuir en forma notable el rendimiento de nuestro sistema.
Ninguno de los tres casos es lo que se pretende. Al desarrollar algoritmos heurísticos se busca el equilibrio entre las tres variables: alto grado de detección, bajo grado de falsos positivos y buen rendimiento.
Queda al lector conocer otras evaluaciones y hacer un seguimiento de estas a lo largo de los meses para ir evaluando a su criterio los diferentes antivirus. Además, las evaluaciones retrospectivas como la aquí presentada, evalúan solo la heurística de un producto. Una evaluación como esta, debe ser acompañada de otra que evalúe el rendimiento del producto a través de las bases de firmas.
25 El mismo está medido en MB/sec. A más valor, mayor rendimiento.26 Ver Noticia “Heurísticas primitivas (antivirus)”. http://blog.hispasec.com/laboratorio/189
-Pág. 23 de 35
‘Heurística Antivirus’ - Sebastián Bortnik
¿La heurística reemplazará a la exploración por firmas?
Como ya se ha explicado, con las nuevas características de los virus, las técnicas heurísticas son un complemento indispensable para la detección basada en firmas. No obstante, las limitaciones de la heurística hacen imposible escindir de las bases de firmas; en un primer término por los índices de detección y, en segundo lugar, por la incapacidad para desinfectar el ordenador de un virus específico.
En el campo de la Inteligencia Artificial es muy difícil hacer afirmaciones ya que los avances son cada vez más importantes. Decir que la heurística no alcanzará técnicas genéricas de desinfección sería aventurar demasiado. Pero en el corto y mediano plazo, las técnicas heurísticas seguirán conviviendo con las técnicas clásicas en los motores antivirus. Aunque cada vez más importantes, por el momento nos permiten estar cubiertos y poseer una detección pro activa antes de que se genere la vacuna contra alguna amenaza.
La actualización de los antivirus y la utilización de firmas siguen siendo cuestiones prioritarias para el usuario si se desea tener una protección completa frente a los virus informáticos.
-Pág. 24 de 35
‘Heurística Antivirus’ - Sebastián Bortnik
OTRAS APLICACIONES EN SEGURIDAD INFORMÁTICA
El mismo concepto aplicado en los software antivirus, se fue aplicando en otros aplicativos de la Seguridad Informática. Muchos de ellos ya funcionaban con técnicas reactivas y, en los últimos años, comenzaron a complementarse con nuevas técnicas genéricas de detección de amenazas para brindar una solución integral.A continuación, se presentan algunas aplicaciones y una breve explicación de cómo han empezado a implementar el concepto de heurística, solo presentado en forma genérica para poder compararlo con la utilización que dan a estas técnicas los antivirus.
AntiSpam
Spam es un mensaje no solicitado por el destinatario que se envía en forma masiva. El objetivo del mismo es ofrecer algún tipo de producto o servicio. A pesar de que el medio más común, y el que se explicará a continuación, es el correo electrónico, existen otros medios donde están apareciendo mensajes no deseados como foros, blogs o celulares por citar algunos. Actualmente, más del 50% del correo recibido en una cuenta, es Spam.
Un antispam es un programa que se encarga de identificar aquellos correos no deseados y diferenciarlos del correo ordinario. El funcionamiento básico del Spam es la utilización de blacklists (listas negras), que son listas de direcciones de correo o direcciones IP que están catalogadas como Spammers. De esta forma, el antispam puede filtrar los correos que provengan de direcciones que figuren en la lista negra que utilice27. La similitud entre esta técnica y la base de firmas en los antivirus es clara: una técnica reactiva que requiere conocer la amenaza (en este caso su dirección) antes de poder atacarla.La implementación de algoritmos de detección proactiva para prevenir el spam consiste en una serie de reglas para identificar, analizando el contenido de un correo electrónico, si este es un spam. Se analizan los remitentes (si están falseados o no), el asunto del correo, las palabras, ciertas frases comunes, la puntuación, etc.Según la simlitud con los mensajes no deseados ya conocidos se cataloga o no al correo como sospechoso.Al igual que con los virus, las técnicas heurísticas en el spam poseen falsos positivos. Cualquier lector habrá encontrado alguna vez en su correo no deseado algún mail que no era Spam.
FireWall
Es un elemento de hardware o software que controla el tráfico entre dos redes diferentes. Al igual que con el spam, los firewall poseen desde sus orígenes comportamientos más estáticos: bloqueo de puertos, bloqueo de ciertos tipos de paquetes, etc.
27 Existen varias listas negras. Diferentes soluciones utilizan algunas de ellas. Algunas direcciones web son: http://dsbl.org/listing http://www.au.sorbs.net/lookup.shtml http://spamcop.net/bl.shtml
-Pág. 25 de 35
‘Heurística Antivirus’ - Sebastián Bortnik
Las nuevas funcionalidades heurísticas para los firewall consisten en algoritmos inteligentes que analizan el paquete e intenta determinar ‘qué quiere o va a hacer’ dicho paquete. Este tipo de algoritmos son más complejos ya que existen una amplia variedad de paquetes diferentes que pueden querer atravesar la red.
Filtros de Internet
Los filtros de Internet son aplicaciones que permiten controlar el uso seguro de Internet prohibiendo el ingreso a sitios web de sexo, violencia, prostitución, venta ilegal, entre otros. Estos programas están diseñados fundamentalmente para controlar el uso de los menores e Internet.El funcionamiento se divide de igual forma que los antispam, en dos protecciones:
• La reactiva que tiene una lista de sitios web que se actualiza constantemente, clasificados de forma tal que el usuario puede filtrar según la categoría y prohibir/permitir el acceso a la web.
• La proactiva que analiza el contenido de la página web y busca palabras asociadas a las diferentes categorías elegidas. De esta forma se define un umbral para permitir/denegar el ingreso al sitio que, muchas veces, es configurable. De esta forma, se puede decidir restringir un sitio al encontrar 5/10/15 veces palabras asociadas. La lista de palabras también posee actualizaciones.
Los falsos positivos aquí también son simples de graficar. El ingreso a un sitio sobre psicoanálisis puede ser prohibido si se posee una política muy exigente y se encuentran muchas palabras relacionadas con el sexo.
Educación en Seguridad
Con el pasar de los años, cada vez son más las amenazas que aprovechan una vulnerabilidad del sistema que no está protegida por ninguno de los software antes mencionados: la ignorancia del usuario.Es por ello que es indispensable la educación hacia la seguridad. Muchas amenazas como el phishing28, enmarcadas en la Ingeniería Social29, aprovechan la ignorancia del usuario para ejecutar el ataque con su inconciente colaboración.Obviamente un usuario no puede poseer una lista de qué es una amenaza y qué no. Aunque parezca exagerado, todo lo referente a educación en Seguridad pretende que las personas utilicen sus capacidades de razonamiento heurístico para protegerse a sí mismos. Obviamente no es importante que el usuario lo dimensione en estos término pero sí brindarles los conocimientos para poder identificar una posible amenaza y tomar los resguardos suficientes para protegerse de ello.
28Más info: http://es.wikipedia.org/wiki/Phishing29Más info: http://www.esetla.com/pub/mvis.pdf
-Pág. 26 de 35
‘Heurística Antivirus’ - Sebastián Bortnik
CONCLUSIÓN
Hace un tiempo, se hablaba de la necesidad de implementar técnicas de detección genéricas en los software antivirus. Hoy, con varios años de experiencia aparecen, a mi criterio, dos desafíos importantes en el campo de la Seguridad Informática:
• Modificar la estructura de los antivirus priorizando cada vez más las búsquedas heurísticas y, principalmente, optimizar los algoritmos de estas para obtener altos rendimientos y mejores resultados en la prevención de malware.
• Implementar la prevención proactiva a través de algoritmos heurísticos en otras aplicaciones de la Seguridad Informática.
Los avances informáticos y la popularización de Internet, han sido más rápidamente aprovechados por los creadores de malware que por las empresas antivirus. Los métodos reactivos a través de firmas, efectivos durante mucho tiempo, ya son insuficientes para proteger la Pc. La implementación de búsquedas heurísticas como método de prevención ha sido de suma utilidad, especialmente en las empresas que han puesto el eje en ello y han logrado alta efectividad en la prevención proactiva. Sin embargo, los números indican que hay que seguir trabajando al respecto. Crear y mejorar algoritmos ‘inteligentes’ es una tarea mucho más compleja que crear vacunas para virus conocidos, pero es la realidad que hoy nos toca enfrentar. No obstante, considero que la optimización de los resultados es un paso que debe ir acompañado de un cambio estructural y educativo en cuanto a la utilización de cualquier software antivirus. Los efectos colaterales de la heurística, principalmente los falsos positivos, no serían un problema significativo para los usuarios si se llevaran a porcentajes razonables, y si estos fueran concientes de los métodos de búsqueda que posee el antivirus.Un usuario que conozca las capacidades de detección genérica de su software, no debería molestarse al ver en su Pc, un aviso como el siguiente:
“El motor de búsqueda ha detectado, a través de sus capacidades heurísticas, un archivo sospechoso que podría ser una amenaza para su ordenador”
Obviamente, el mensaje aquí propuesto es bastante más extenso que los breves, y por momentos inentendibles, avisos que arrojan los antivirus en la actualidad al detectar una amenaza. Es justamente por ello que considero primordial la educación de los usuarios al respecto. De esta forma, los software antivirus podrán modificar su estructura para trabajar interactivamente con el usuario. Un usuario medio nunca podrá entender en profundidad el funcionamiento de un antivirus pero sí las ideas fundamentales y los conceptos. Hoy en día este, la única certeza que tiene sobre su antivirus es que “busca virus en su computadora”. El mismo usuario en muchas ocasiones, no sabe qué hacer ante el alerta de virus, ni qué botón seleccionar cuando se le ofrece más de una acción. Es por ello, que
-Pág. 27 de 35
‘Heurística Antivirus’ - Sebastián Bortnik
todos los avances en los métodos de detección genéricos son en vano si los usuarios no aprenden a tenerlos en cuenta, a la hora de elegir qué antivirus instalar en su ordenador.
En segundo término, considero que se deben terminar de plasmar los métodos genéricos de búsqueda en todas las aplicaciones de la Seguridad Informática. En estas técnicas, reposa el futuro de la detección de amenazas y debe profundizarse este cambio para brindar protección real a los sistemas. Sin métodos proactivos, ninguna aplicación (Firewall, Antispam, IDS, etc.) será capaz de dar una solución integral para detectar y prevenir de cualquier amenaza informática.Como ya se ha mencionado, la creación de estos métodos de búsqueda es mucho más compleja que mantener los “antiguos” procedimientos reactivos utilizados hasta el momento. Los nuevos desafíos, implican estudiar mucho más en profundidad las amenazas y la clave del éxito está en caracterizarlas profundamente, saber cómo funcionan y qué recursos utilizan. Para resumir, diría que lo importante es ‘conocer al enemigo’.
Estos son los desafíos próximos en lo que respecta al análisis heurístico y detección genérica de amenazas informáticas. Con el avance de estos, los antiguos métodos reactivos que brindan una solución por cada amenaza conocida, se convertirán en un aspecto básico de cualquier software pero no permitirán inesperados niveles de rendimiento o diferenciarse de otras soluciones. Además, el avance de la Inteligencia Artificial es tan veloz que es imposible afirmar que los algoritmos heurísticos no podrán desinfectar la Pc. Si así fuera y se agregara a ello la capacidad de aprendizaje autónomo en función de las diferentes amenazas encontradas, probablemente algún día los métodos reactivos dejarán de existir.De una u otra forma, es innegable que el futuro de la detección de malware reposa en estos métodos y que la detección genérica de amenazas es el nuevo paradigma de la seguridad informática, al cual el entorno deberá terminar de adaptarse para que las soluciones sean cada vez más efectivas.
-Pág. 28 de 35
‘Heurística Antivirus’ - Sebastián Bortnik
Modelo teórico para la creación de reglas heurísticas en seguridad
El siguiente modelo fue creado a forma de resumen sobre cómo se utiliza el concepto de heurística en la seguridad. Consta de en una serie de pasos para la creación de las reglas y un algoritmo general que permite detectar las amenazas a través de una búsqueda heurística. El mismo, no es de utilidad para implementaciones reales en algoritmos de programación. Es solo un modelo teórico para facilitar la comprensión.Cabe mencionar, que considero que el modelo es útil, no solo para la seguridad informática, sino también para la aplicación heurística en cualquier área de la seguridad.
Un conjunto de reglas heurísticas está determinado por los siguientes elementos:
• Una base de datos de características genérales de amenazas• Criterio/s de selección para determinar si un elemento es o no una amenaza.
Los pasos propuestos para obtener los mismosresultado final son:
1. Identificar las amenazas conocidas.2. Caracterizar las amenazas individualmente.3. Organizar las características y agruparlas según su aparición.4. Ponderar cada característica según su frecuencia.5. Seleccionar uno o más criterios de aceptación/rechazo en función de los valores
adoptados en el paso anterior.
Suponga que se selecciona una base de 200 gusanos de alta propagación en los últimos meses. En segundo término, se deben caracterizar individualmente. Este paso es el más arduo y complejo en la elaboración de reglas y de su buena realización dependerá el resto del proceso. Una vez listadas todas las características, se debe realizar, como tercer paso, un filtro de selección. Este consiste en agrupar las características comunes y ordenarlas según su aparición y, considerar solo las características que tengan una frecuencia de aparición razonable. Por ejemplo, el envío masivo de emails seguramente aparecerá en la mayoría de los gusanos analizados. Sin embargo ciertas características con baja frecuencia, que aparezcan en menos de 10 gusanos por ejemplo, pueden dejar de tenerse en cuenta para los siguientes pasos.El cuarto paso consiste en ponderar a través de un “valor de peligro” cada una de las características. Esto se hace según las frecuencias de aparición. Una característica encontrada en 100 gusanos tendrá el doble “valor de peligro” que una encontrada en 50 gusanos. Esto, en la realidad, puede variar y hacerse exponencial según los métodos específicos que se creen para la ponderación de variables. Por último, se debe decidir a partir de qué “valor de peligro” acumulado, un elemento, será considerado una amenaza. Es decir, no se calificará a un objeto un gusano solo porque encuentro una línea de código sospechosa. Se deben reunir un conjunto de características que indicaran que el elemento es sospechoso. Este valor es el que se
-Pág. 29 de 35
‘Heurística Antivirus’ - Sebastián Bortnik
define en este último paso. De esta forma se tienen los dos requerimientos para configurar una regla heurística.
Una vez creadas las reglas, para cualquier elemento que se desee determinar si es o no una amenaza, deberá pasar por algún algoritmo heurístico, cuya forma teórica se explica a continuación. La entrada es el elemento a analizar y se inicializa su “valor de peligro” en 0 (cero). Se tienen los resultados de las reglas antes mencionadas: una base de datos con características comunes y sus “valores de peligro”; y el criterio de selección (se supone un único criterio para simplificar el caso).
Para cada característica en la base de datos¿Se encuentra en el elemento la característica?Si sí � Si no �Sumar al “valor de peligro” el valor asociado a la característica
¿Es el “valor de peligro” > ‘umbral de selección’?Si sí � Si no �Se considera al elemento una amenaza para el sistema.
Se considera al elemento seguro.
En resumen, para el elemento que se desea analizar se buscan cada una de las características que figuran en la base de datos y se acumulan los valores individuales de aquellas que coincidan y sean encontradas en él. En el caso que el “valor de peligro” total supere el criterio de selección, se considera al elemento una amenaza a través de la búsqueda heurística y se deberá indicar un alerta. Obviamente, en el caso de que el “valor de peligro” no sea lo suficientemente alto, el elemento se considerará seguro y se confiará en él.
El modelo aquí presentado, lo he creado mientras avanzaba en el desarrollo del trabajo y me ha sido de utilidad resumir las ideas en él y comprender mejor la relación entre las variables y conceptos que se interrelacionan en la utilización de reglas heurísticas en seguridad.
-Pág. 30 de 35
elemento
Mensaje de alerta
‘Heurística Antivirus’ - Sebastián Bortnik
FUENTES
Bibliografía
• HARLEY, DAVID; SLADE, ROBERT; GATTIKER, URS – “Viruses Revealed: Understanding and Counter Malicious Software”. McGrawHill Companies (2001). ISBN 0072130903
• PAJARES, MARTINSANZ; SANTOS PEÑAS, MATILDE. “Inteligencia Artificial e ingeniería del conocimiento”. Alfaomega (2006). ISBN 9701511662.
• POLYA, GEORGE. “How To Solve It: A New Aspect of Mathematical Method”. Princeton University Press (1973). ISBN 0691023565.
• RUSSELL, STUART; NORVIG, PETER. “Inteligencia Artificial, un enfoque moderno”. Pearson Prentice Hall (2004). ISBN 842054003X
Sitios Web
• “Alerta AntiVirus”http://alertaantivirus.red.es/
• “AvComparatives”http://www.avcomparatives.org/
• Blog Laboratorio Esethttp://blogs.esetla.com/laboratorio/
• “Enciclopedia Virus”http://www.enciclopediavirus.com/home/
• “Eureka”http://ciencianet.com/eureka.html
• “Kriptopolis”http://www.kriptopolis.org/
• “Real Academia Española”http://www.rae.es/
• “SeguInfo”http://www.seguinfo.com.ar
• Virus List
-Pág. 31 de 35
‘Heurística Antivirus’ - Sebastián Bortnik
http://www.viruslist.com
• Webopediahttp://www.webopedia.com/
Papers
• ATOCHA, ALISEDA – "Heurística, hipótesis y demostración en matemáticas"http://www.filosoficas.unam.mx/~Tdl/atocha.htm
• BENJUMEA PULIDO, MIGUEL A. – “EUREKA, EUREKA, el principio de Arquímedes visto desde la perspectiva de un diálogo clásico.”http://personales.ya.com/casanchi/rec/arqui01.pdf
• BORGHELLO, CRISTIAN F. – “Cronología de los virus informáticos”http://www.esetla.com/press/informe/cronologia_virus_informaticos.pdf
• BORGHELLO, CRISTIAN F. – “Guía básica de utilización de medios Informáticos de forma segura”Perteneciente al curso online de seguridad en http://edu.esetla.com/
• BORGHELLO, CRISTIAN F. – “La historia sin fin: Virus Bagle”http://www.esetla.com/press/informe/historia_sin_fin_virus_bagle.pdf
• GORDON, SARAH – “The AntiVirus Strategy System”http://www.research.ibm.com/antivirus/SciPapers/Gordon/Strategy.html#GENERAL
• GORDON, SARAH – “What is Wild?”http://vx.netlux.org/lib/pdf/What%20is%20Wild%3F.pdf
• GORDON, SARAH; FRASER HOWARD – “Antivirus Software Testing for the New Millenium”http://csrc.nist.gov/nissc/2000/proceedings/papers/038.pdf
• HARLEY, DAVID; LEE, ANDREW – “Análisis heurístico: detectando malware desconocido”http://www.esetla.com/press/informe/analisis_heuristico_ detectando_ malware_desconocido.pdf
• HERNANDO, SERGIO – “Así funciona una heurística antivirus”http://www.sahw.com/wp/archivos/2006/07/03/asifuncionaunaheuristicaantivirus primeraparte/
• KUMAR, SANDEEP; SPAFFOR, EUGENE H. – “A Generis Virus Scanner in C++”
-Pág. 32 de 35
‘Heurística Antivirus’ - Sebastián Bortnik
http://vx.netlux.org/lib/pdf/A%20Generic%20Virus%20Scanner%20in%20C%2B%2B.pdf
• MACHADO, JORGE – “Breve Historia de los Virus Informáticos”http://www.perantivirus.com/sosvirus/general/histovir.htm
• MCAFEE – “An Introduction to Computer Viruses (and other destructive programs)”http://www.mcafee.com/common/media/vil/pdf/av_white.pdf
• MERELO, J. J. – “Técnicas heurísticas de resolución de problemas: computación evolutiva y redes neuronales”http://geneura.ugr.es/~jmerelo/tutoriales/heuristics101/
• MIN, PATRICK – “Virus Detection Alternatives”http://vx.netlux.org/lib/apm00.html
• MOSTOVOY, DMITRY – “Modern Methods of Detecting and Eradicating Known and Unknown viruses”http://vx.netlux.org/lib/pdf/Modern%20Methods%20of%20Detecting%20and%20Eradicating%20Known%20and%20Unknown%20Viruses.pdf
• SCHMALL, MARKUS – “Heuristic Techniques in AV Solutions: An Overview”http://www.securityfocus.com/infocus/1542
• SCHMIDT, CHARLES; DARBY, TOM – “The What, Why, and How of the 1988 Internet Worm”.http://snowplow.org/tom/worm/worm.html
• SPAFFORD, EUGENE – “Computer Viruses as Artificial Life”http://vx.netlux.org/lib/aes02.html
Otros
• ANTIVIRUS COMPARATIVE NO. 14 (Test independiente – Mayo 2007)http://www.avcomparatives.org/seiten/ergebnisse/report14.pdf
• ANTIVIRUS, RENDIMIENTO VS. PROTECCIÓN (Artículo)http://www.hispasec.com/unaaldia/3210/
• COMO FUNCIONA UN ANTIVIRUS (Video desarrollado por McAfee)http://www.youtube.com/watch?v=0Q_hSXqsmTA
• CÓMO FUNCIONA UN LABORATORIO ANTIVIRUS (Noticia)http://www.terra.es/tecnologia/articulo/html/tec10175.htm
-Pág. 33 de 35
‘Heurística Antivirus’ - Sebastián Bortnik
• HEURÍSTICA ANTIVIRUS (Artículo) Moreno Pérez, Arnolodohttp://alertaantivirus.red.es/virus/ver_pag.html?tema=V&articulo=6&pagi na=4
• HEURÍSTICA DE LOS ANTIVIRUS (Artículo)http://www.zonavirus.com/datos/articulos/19/Heur%C3%ADstica_Antivirus.asp
• HOW COMPUTER VIRUSES WORK (Video Artículo)http://www.howstuffworks.com/virus.htm
• LOS LABORATORIOS DE ANTIVIRUS, DESBORDADOS POR LA MULTIPLICACIÓN DE PROGRAMAS PELIGROSOS (Artículo)http://www.mnsoft.net/es_seguridad_los_laboratorios_de_antivirus_ desbordados_por_la_multiplicacion_de_programas_peligrososno9.html
• RICHARD MARKO, de ESET (Entrevista)http://www.enciclopediavirus.com/enciclopedia/articulo.php?id=343http://www.wikilearning.com/entrevistawkccp49111.htm
• TEST DE ANTIVIRUS (Página Web de Eicar)http://www.eicar.org/anti_virus_test_file.htm
-Pág. 34 de 35
‘Heurística Antivirus’ - Sebastián Bortnik
El presente documento es autoría de Sebastián Bortnik y puede descargarse del siguiente link:
http://unmundobinario.wordpress.com/articulos/
-Pág. 35 de 35