Los antivirus son programas cuya función es detectar y eliminar virus informáticos y otros programas maliciosos (malware).
Básicamente, un antivirus compara el código de cada archivo con una base de datos de los códigos de los virus conocidos, por lo que es importante actualizarla periódicamente a fin de evitar que un virus nuevo no sea detectado. También se les ha agregado funciones avanzadas, como la búsqueda de comportamientos típicos de virus o la verificación contra virus en redes de computadores.
Breve reseña histórica
En el año 1986, se descubrió que en el sector del boot de un disquete, había código ejecutable. Esté código se ejecutaba cada vez que se iniciaba la PC con un disquete y quedaba residente en memoria. El código ejecutable podía ser reemplazado por otro un código y ese código podía ser copiado en otros disquetes.
Como el programa se copiaba a sí mismo, le dieron el nombre de 'virus', por su semejanza con los virus biológicos. Este proyecto de virus solamente infectó 360Kb de disquetes.
Cada vez crecía más la repercusión en torno a los virus. Muchas investigaciones en laboratorios, tesis de doctorados y nuevos virus que surgían. Algunos causaban que se reinicie la computadora, otros hacían que se cuelgue la computadora, etc.
En 1988 se marca un hito importante, porque surgen los primeros antivirus. Las companías que hacían los antivirus eran pequeñas. Los productos normalmente servían para la cura de un único virus.
Todavía había cierto escepticismo acerca de la existencia de los virus. Un experto informático del Reino Unido llegó a proclamar que tenía la prueba de que los virus eran un producto de la imaginación.
Hasta que en 1988 se produjo la intrusión del virus 'Jerusalem' en una importante institución financiera, para ser difundido a finales de ese año, en España y todo el Reino Unido.
Esto representó la prueba definitiva de la existencia real de los virus.
A partir de 1990 se incrementó la complejidad de los virus con el surgimiento de los virus polimórificos. Estos son capaces de cambiar las características de su código cuando se replica, lo que complica su detección.
La mayoría de las empresas del sector no fueron capaces de desarrollar herramientas antivirus apropiadas. Para peor, los antivirus que detectaban estos virus, normalmente daban falsas alarmas, lo que producía mucha confusión en los usuarios.
En 1991, el problema de los virus ya era lo suficientemente preocupante como para atraer a las grandes compañías. Symantec lanzó a principios de ese año el producto Norton AntiVirus. Además muchas otras empresas lanzaron sus propios antivirus.
Definición de Worm
Dentro de las categorías de virus, los Worms (gusanos) son de los más conocidos. Sin embargo la definición de lo que es un Worm puede ser en algunos casos imprecisa.
Algunas definiciones que manejan distintos autores son las siguientes:
Programa que distribuye múltiples copias de sí mismo dentro de un sistema, o a través de un sistema distribuido.
Programas que son capaces de copiarse a sí mismo completamente, y que no dependen de la existencia de un programa host que se encargue de tal tarea.
Un Worm es un programa independiente el cual, al ser ejecutado, intenta infectar otros sistemas. En este caso el host es el sistema operativo de la computadora, y el código infectado es un proceso o thread de ejecución corriendo bajo el sistema operativo.
Un Worm es un programa que está diseñado para copiarse a sí mismo de una computadora a otra, a través de la red utilizando algún medio: TCP, email, etc. El Worm se concentra en infectar la mayor cantidad posible de máquinas en la red, y no tanto en efectuar tantas copias de sí mismo como le sea posible en una máquina en particular.
Los Worms son una forma de software que, como los virus, se dispersan copiándose a sí mismo.
En términos generales, un worm es un fragmento de código cuyo objetivo es replicarse a otros sistemas tanto como le sea posible, a través de uno o más mecanismos. La característica de copiarse a sí mismo a otros sistemas es la más distintiva en un worm. La distinción más notable con virus es que estos se replican mayoritariamente en un mismo sistema, mientras que los worms intentan replicarse en sistemas distintos distribuidos en una red.
Ejemplos de Worms
Los primeros worms existentes no disponían de un mecanismo de replicación sofisticado. En algunos casos, como CHRISTMA EXEC (1987), el usuario mismo debía ejecutar el worm para que éste se copie a sí mismo. En otros casos, como Xerox (1980) se replicaba a sí mismo a través de una versión primitiva de una LAN, teniendo que ser ejecutado por primera vez dentro de la red por un usuario.
En 1987 aparecen los worms que se replican a través de canales IRC, siendo necesario que un usuario se conecte a través de un canal IRC con otro usuario infectado.
En 1999 ya eran populares los worms que infectaban máquinas a través de canales IP. En ese año aparece en acción el worm conocido como Happy99 que atacaba a sistemas Windows 95, utilizando el protocolo SMTP.
Melissa apareció en 1999 como tal vez el primer híbrido, siendo clasificado como worm y virus a la vez. Constaba de dos formas de replicarse: a través de una macro, y utilizando el envío de correo a las 50 primeras direcciones de la libreta de Outlook. Para esa fecha, era el worm que más dispersión tuvo.
En 2000 aparece Kak, un worm que no solo no necesitaba ser ejecutado para infectar un sistema, sino que se dispersaba a través de emails con contenido HTML. Un usuario sólo tenía que abrir un correo infectado para ejecutar el worm. Hasta el día de hoy aún existen máquinas infectadas por este worm.
Técnicas de replicación de Worms
Existen variadas técnicas utilizadas por worms para copiarse a sí mismos, y estas varían dependiendo si el objetivo del worm es copiarse dentro de una LAN, o a través de Internet.
Dentro de una LAN, un worm puede utilizar las carpetas compartidas de la red para copiarse de una máquina a otra. En caso de carpetas compartidas que utilizan algún mecanismo de autenticación, algunos worms utilizan un sistema que intenta secuencias de passwords hasta dar con el correcto, basándose en fuerza bruta o en diccionarios. Otras técnicas utilizan unidades de disco remotas, montadas en la máquina infectada, o incluso llegan al empleo de sistemas de correo corporativo.
En el caso de Internet sin duda el mecanismo más utilizado es el empleo de correo electrónico, ya que otros sistemas de replicación suelen ser detectados más fácilmente.
Últimamente han surgido nuevas clases de worms que se replican a través de otros medios no utilizados con anterioridad. Un ejemplo de ello son los worms que infectan servidores de bases de datos. Uno de ellos, conocido como Spida, intenta acceder a servidores de bases de datos SQL Server de una forma bastante primitiva: infecta aquellos servidores que no tengan una contraseña para el usuario sa (que posee privilegios de administrador en el servidor). Es de esperar que en el futuro cercano sean comunes worms con capacidad de infectar mediante el uso de diccionarios para romper passwords, e incluso que sean capaces de infectar a varios servidores de bases de datos comunes, como Oracle o MySQL.
Otra novedosa línea de acción de los worms hoy en día es su capacidad de infectar dispositivos móviles, tales como celulares o PDAs. Actualmente existen muchos modelos de celulares con verdaderos sistemas operativos, lo que los hace vulnerables a worms. Cabir por ejemplo utiliza la conectividad bluetooth para descubrir y transferirse a sí mismo a otros dispositivos celulares, en forma de un archivo.
Definición de Trojans
Un trojan es un programa que actúa como un impostor. Simula ser algo deseable para un usuario, pero termina siendo un programa con fines maliciosos.
Es posible que un trojan advierta de su peligrosidad al usuario, pero esta información nunca será evidente para el mismo.
Los trojans, a diferencia de los worms, no se replican a sí mismos, sino que al ser ejecutados causan daño al sistema infectado. Entre sus efectos puede mencionarse la destrucción de datos, o permitir el acceso remoto a un sistema.
Ejemplos de Trojans
Backdoor. No es un trojan, sino una agrupación de trojans. Los trojans de este tipo abren un canal en el sistema para que un hacker tenga acceso al mismo.
Donald Dick. Este es un trojan que actúa como server en la víctima, permitiendo que un hacker se comunique a través de los protocolos TCP o SPX. Ataca a los sistemas Windows 95, Windows 98 y Windows NT. Entre sus acciones se encuentran la posibilidad de que el hacker vea, altere o borre archivos, cambie la prioridad de los procesos en ejecución, altere passwords o la fecha del sistema, capture imágenes de las ventanas abiertas, capture la digitación de un password al momento de escribirlo, prenda o apague el monitor, abre o cierra la bandeja del CD-ROM, reinicia el sistema, etc.
Crack2000. Este trojan utiliza a la víctima como un servidor FTP. Luego utiliza este mecanismo para alojar números seriales de programas, que pueden ser descargados desde otras máquinas.
Extasis. En este caso el trojan ataca a un programa (AutoCAD), provocando un comportamiento no esperado en el mismo.
KillCMOS. En este caso vemos un ejemplo de un trojan que no ataca al sistema operativo, sino al BIOS. Este trojan borra la memoria del CMOS, lo que provoca que el sistema arranque con los valores por defecto traídos de fábrica.
Técnicas usadas por Trojans
Al ser activados por un usuario, los trojans simplemente deben aparecer como benignos ante dicho usuario. Esto lo logran de múltiples maneras, agrupadas en un área conocida como ingeniería social.
Una vez activados, los trojans disponen de los mismos privilegios y permisos en el sistema que el usuario, lo que le facilita cumplir sus propósitos.
Los trojans se distribuyen a través de medios como el correo electrónico, descargas de Internet, o se instalan como parte de otro programa.
En este capítulo veremos que son estos dos tipos de "malware". Se presentarán juntos porque tienen muchas cosas en común. Primero se darán algunos ejemplos, se hablará de sus diferencias y se verán las maneras de combatirlos.
Hoaxes
En términos generales un hoax es un engaño, un truco para hacer creer a alguien algo que es falso y usualmente también absurdo.
Llevándolo al tema que estamos analizando, Hoaxes no son virus, son mensajes falsos enviados por mail, advirtiendo sobre la existencia de un virus que en realidad no existe.
Un ejemplo: Good Times
La historia más conocida en el mundo sobre un virus no existente es la de Good Times. En 1994 el siguiente mensaje electrónico comenzó a circular por la Internet:
Here is some important information. Beware of a file called Goodtimes. Happy Chanukah everyone, and be careful out there. There is a virus on America Online being sent by E-Mail. If you get anything called "Good Times", DON'T read it or download it. It is a virus that will erase your hard drive. Forward this to all your friends. It may help them a lot.
Podemos ver que se trata de generar pánico en los usuarios de Internet diciendo que el virus borrará todo su disco duro y que reenvíe el mensaje a todos sus amigos para prevenirlos del mismo.
Así fue creciendo el rumor rápidamente, y a pesar de que boletines sobre virus, y también muchas empresas anti-virus, salieron a desmentirlo rápidamente, el mito del virus Good Times duró mucho tiempo. Aún hoy se hacen consultas sobre este virus en muchos newsgroups de Internet.
Hypes
Hype se podría definir de una simple manera: "bombardeo publicitario". Son exageraciones y mentiras, noticias comunes hiperbolizadas, de modo generalmente voluntario y consciente, hasta la notación exponencial.
Un ejemplo: Michelangelo
La más grandiosa histora de un hype en este mundo de los virus, fue la que estuvo relacionada con el famoso virus Michelangelo.
El virus Michelangelo fue uno de los que más se difundió en el mundo y causó los mayores daños de la historia. El mismo, que debido a sus novísima técnica de programación Stealth y la de Infector Lento, fue difundiéndose a través de casi un año, permaneciendo oculto en cientos de miles de computadoras, sin que sus poseedores se percatasen de su presencia. Es un virus de Boot, variante del Stoned, que al infectar a un sistema sobre-escribe los primeros 17 sectores, cabezales 0 al 3 en las primeras 256 pistas del disco duro del Sector de Boot y copia el MBR original al lado 0, cilindro 0, sector 7 en los discos duros, reemplazándolo con su código viral. El virus ocupa 512 bytes y además de infectar el Sector de Boot, lo hace también con el MBR, logrando deshabilitar a los discos duros infectados, en la fecha para la cual fue programada. El 6 de Marzo de 1992 se manifestó paralizando y dañando miles de sistemas, debido a que en ese tiempo no había ningún antivirus que lo detectase, mucho menos lo eliminase. Hoy día el Michelangelo y sus variantes están extinguidas, a pesar de que estuvo programado para manifestarse los días 6 de Marzo de todos los años. Sin embargo con el advenimiento del año 2000, ya no es posible que este virus se manifieste, debido al nuevo formato de la fecha.
Debido al intensivo bombardeo publicitario que se dio en distintos medios sobre este tema, fueron solicitados y vendidos miles de anti-viurs que ofrecían una "cura" para dicho virus.
Razones del "éxito" de los Hypes & Hoaxes
Las preguntas que nos hacemos son:
¿Qué tienen los hoaxes que hacen que la gente crea en ellos?
¿Por qué todo tipo de hoaxes siguen circulando por Internet?
¿Por qué se propagan tan rápidamente?
Para contestar estas preguntas veremos 5 factores que podrían ser las razones principales del "éxito" de los hypes y hoaxes:
1. Confianza
Las personas generalmente aceptan datos como correctos basados en la confianza que perciben de la persona o grupo que los haya enviado. Si previamente nos han provisto de distinto tipo de información, es natural que tendamos a aumentar nuestra credibilidad en cada nueva información que nos llegue de la misma fuente.
2. Entusiasmo
El entusiasmo de leer las últimas noticias, de conocer lo último en virus, da a las personas satisfacción y ganas de compartirlo con los demás.
3. Carencia de un apropiado escepticismo científico
La gente tiene la tendencia de aceptar todo lo que lee en Internet sin considerar si la fuente es verdaderamente confiable. Por ejemplo, si vamos a una tienda siempre dudamos un poco de lo que el vendedor nos está diciendo para tratar de vendernos el producto. Ahora la pregunta es: por qué no hacer lo mismo en Internet? Aplicar un poco de nuestro escepticismo científico probablemente sea la arma más poderosa que tenemos para combatir los hoaxes.
4. Necesidad de ser importante en un grupo
Compartir nueva información sobre cosas nuevas que surgen puede ayudar a las personas a sentirse más importantes en un grupo. Especialmente cuando la información es de ayuda para los integrantes del grupo.
5. Fomentar nuestras propias creencias, intereses y metas
Si nos llega un hype o un hoax sobre algo en que nos interesa o en que creemos (un ej. podría ser sobre temas espirituales), tendemos a reenviarlo para decir: Viste? Yo tenía razón! Los hoax sobre virus, tendemos a pasarlos por el interés que tenemos de proteger a nuestros sistemas informáticos de los virus.
En la siguiente sección veremos la teoría "Meme". Esta teoría fue creada por Richard Dawkins y nos permitirá especular cuando un hype o un hoax podría llegar a ser exitoso.
Teoría Meme
Los hypes y hoaxes son una comunicación basada en "ideas". Con las nuevas tecnologías difundir ideas es mucho más rápido y simple que en el pasado. Investigadores han estudiado por qué ciertas ideas son tomadas en cuenta y son muchos más aceptadas que otras. Para esto muchos se han basado en la existencia de algo llamado "meme".
Un meme es un patrón de información que se propaga en la mente humana, interactuando, adaptándose, mutando y persistiendo en ella. En otras palabras un meme es un "virus de la mente".
La Teoría Meme fue creada por Richard Dawkins y luego ampliada por otros científicos. Darwing propuso que estudiando el meme, podemos predecir como y por qué ciertas ideas son más aceptadas que otras, simplemente usando memes efectivos.
Memes pueden ser entidades como peligro, sexo, amor, miedo, etc. La presencia de alguno de estos memes en una idea (o en un e-mail que contenga la idea), hará que mágicamente prestemos una mayor atención al mensaje.
Memes en Hoaxes y Hypes
Aplicando la Teoría Meme, podemos ver que los hoaxes y hypes más comunes contienen el meme "peligro".
En los ejemplos presentados anteriormente, tanto el Hype debido a Michelangelo, como el Hoax Good Times tienen el mime "peligro". Esto parece obvio, ya que al fin y al cabo quién se preocuparía de un virus si no es peligroso.
En la teoría meme, hay algo que es la complexión del meme, que es básicamente la escencia de la idea. La complexión del meme de los hypes y hoaxes sobre virus, además del meme "peligro", contiene un elemento que se denomina "cebo". En el caso de los ejemplos vistos, el "cebo" sería hacer una buena acción transmitiendo a los demás sobre el "peligro" del virus.
Finalmente, la teoría meme utiliza el concepto de "inmuno-meme". El inmuno-meme se define como "cualquier meta-meme que confiera resistencia o inmunidad a uno o más memes, evitando que una persona se "infecte" . Los inmuno-meme más comunes son "fe", "lealtad", "escepticismo", y "tolerancia".
Llevando esto último a los hypes y hoaxes, los podríamos combatir diseminando algunos inmuno mimes, como por ejemplo transmitiendo ideas sobre antecedentes de este tipo de mensajes.
Técnicas "anti-hoax"
Obviamente una persona no tiene por qué tener la habilidad técnica para determinar si una advertencia sobre un virus es verdadera o no. De todas formas se pueden seguir una serie de técnicas que ayudarán a por lo menos intuir cuando es un hoax.
Las advertencias deben estar firmadas y autenticadas. Aquellas que no contengan el nombre de la persona que envió el mensaje original, o que provengan de direcciones de e-mail que no existen deberían ser cuestionadas.
En una organización se pueden establecer ciertas políticas para evitar la propagación de este tipo de mensajes. Por ejemplo se podría asignar una persona para que esté al tanto de los últimos virus. Esa persona sería la encargada de decidir si la advertencia sobre el virus es verdadera o falsa. Otra política que se podría establecer es la de solo permitir circular mails de una determinada fuente de información. Esto permite evitar rumores y que circule información incorrecta.
Hoaxes y hypes causan pérdidas de tiempo y dinero en una organización. Pensar cuales son las razones por la cual hoaxes y hypes se siguen difundiendo y se siguen expandiendo tan rápidamente, probablemente sea la mejor manera de evitar que lo sigan haciendo.
Un poco de historia
El primer caso de spam del que se tiene noticia es una carta enviada en 1978 por la empresa Digital Equipment Corporation. Esta compañía envió un anuncio sobre su ordenador DEC-20 a todos los usuarios de ArpaNet (precursora de Internet) de la costa occidental de los Estados Unidos. Sin embargo, la palabra spam no se adoptó hasta 1994, cuando en Usenet apareció un anuncio del despacho de los abogados Lawrence Cantera y Martha Siegel. Informaban de su servicio para rellenar formularios de la lotería que da acceso a un permiso para trabajar en Estados Unidos. Este anuncio fue enviado mediante un script a todos los grupos de discusión que existían por aquel entonces.
Características y tipos
Algunas de las características más comunes que presentan este tipo de mensajes de correo electrónico son:
La dirección que aparece como remitente del mensaje no resulta conocida para el usuario, y es habitual que esté falseada.
El mensaje no suele tener dirección Reply.
Presentan un asunto llamativo.
El contenido es publicitario: anuncios de sitios web, fórmulas para ganar dinero fácilmente, productos milagro, ofertas inmobiliarias, o simplemente listados de productos en venta en promoción.
La mayor parte del spam está escrito en inglés y se origina en Estados Unidos o Asia, pero empieza a ser común el spam en español.
Aunque el método de distribución más habitual de este tipo de malware es el correo electrónico, existen diversas variantes, cada cual con su propio nombre asociado en función de su canal de distribución:
Spam: enviado a través del correo electrónico.
Spim: específico para aplicaciones de tipo Mensajería Instantánea (MSN Messenger, Yahoo Messenger, etc).
Spit: spam sobre telefonía IP. La telefonía IP consiste en la utilización de Internet como medio de transmisión para realizar llamadas telefónicas.
Spam SMS: spam destinado a enviarse a dispositivos móviles mediante SMS (Short Message Service).
El spam es un fenómeno que va en aumento día a día, y representa un elevado porcentaje del tráfico de correo electrónico total.
¿Cómo funciona?
Obtención de direcciones de correo
Los spammers tratan de conseguir el mayor número posible de direcciones de correo electrónico válidas, es decir, realmente utilizadas por usuarios. Con este objeto, utilizan distintas técnicas, algunas de ellas altamente sofisticadas:
Listas de correo: el spammer se da de alta en la lista de correo, y anota las direcciones del resto de miembros.
Compra de bases de datos de usuarios a particulares o empresas: aunque este tipo de actividad es ilegal, en la práctica se realiza, y hay un mercado subyacente.
Uso de robots (programas automáticos), que recorren Internet en busca de direcciones en páginas web, grupos de noticias, weblogs, etc.
Técnicas de DHA (Directory Harvest Attack): el spammer genera direcciones de correo electrónico pertenecientes a un dominio específico, y envía mensajes a las mismas. El servidor de correo del dominio responderá con un error a las direcciones que no existan realmente, de modo que el spammer puede averiguar cuáles de las direcciones que ha generado son válidas. Las direcciones pueden componerse mediante un diccionario o mediante fuerza bruta, es decir, probando todas las combinaciones posibles de caracteres.
Por lo tanto, todos los usuarios del correo electrónico corremos el riesgo de ser víctimas de estos intentos de ataques. Cualquier dirección pública en Internet (que haya sido utilizada en foros, grupos de noticias o en algún sitio web) será más susceptible de ser víctima del spam.
Técnicas utilizadas.
Los spammers utilizan numerosas técnicas para componer mensajes que consigan saltarse todo tipo de filtros de correo. A continuación destacamos algunos de los trucos empleados para ofuscar el código HTML del mensaje:
División de la línea de Asunto del mensaje mediante falsos saltos de línea:
Subject: =?utf-8?q?Identical drugs — l?= =?utf-8?q?ittle monetary valu?= =?utf-8?q?e!?=
Permutar letras en las palabras usadas. El mensaje sigue siendo legible para el receptor, pero los filtros no reconocen las palabras usadas:
I finlaly was able to lsoe the weight.
Invertir el texto, utilizando la anulación derecha-a-izquierda ( right-to-left override ) de Unicode, expresada como entidades HTML ( y ):
Your Bnak Cdra Linknig (Your Bank Card Linking)
Incluir el mensaje de spam como archivo adjunto en otro mensaje válido
Uso de CSS (Cascading Style Sheets) en los mensajes de spam para ocultar determinadas palabras o partes del mensaje.
Los perjuicios del spam.
Los principales daños provocados por la recepción de spam pueden clasificarse en daños directos:
Pérdida de productividad.
Consumo de recursos de las redes corporativas: ancho de banda, espacio de disco, saturación del correo, etc.
Y daños indirectos, como por ejemplo:
El riesgo que supone el envío de spam bajo nuestro nombre o desde nuestro equipo o dominio, al ser identificados como spammers por los servidores a los que se ha enviado spam sin saberlo.
Algunos mensajes válidos importantes pueden ser borrados por error cuando eliminamos spam de forma rápida.
Además, el spam puede servir de método de propagación para un peligro aún mayor: el malware. En un correo de spam se puede incluir muy fácilmente un archivo adjunto que contenga un virus.
Los motivos por los cuales existe este tipo de malware son meramente económicos (promocionar servicios, productos, estafas, etc.)
Técnicas para protegerse del spam
Como medida básica a adoptar para prevenir la entrada de spam en los buzones de correo de los usuarios, se encuentra el filtrado de mensajes de correo electrónico.
En el caso de empresas, el problema no reside únicamente en identificar correctamente los mensajes de spam, sino en gestionar adecuadamente las grandes cantidades de mensajes de este tipo que se reciben diariamente.
Los mejores sistemas anti- spam deben estar basados en más de una tecnología. Deben utilizarse técnicas diversas (reglas, heurístico, filtros bayesianos, listas negras y blancas, firmas digitales, autenticación de remitente, etc), entre las que se consiga el objetivo fundamental de reducir al máximo los falsos positivos y se elimine por tanto la posibilidad de que un usuario pierda un mensaje por un error del sistema, manteniendo además un alto grado de eficiencia y eficiencia en la detección de spam.
Spyware
Son programas espía, aplicaciones informáticas que recopilan datos sobre los hábitos de navegación, preferencias y gustos del usuario. Los datos recogidos son transmitidos a los propios fabricantes o a terceros, bien directamente, o bien después de ser almacenados en el ordenador. Estos datos pueden variar, desde datos personales, información de las páginas web que visitan, hasta información confidencial como por ejemplo números de tarjetas de crédito.
El spyware puede ser instalado con el consentimiento del usuario y su plena conciencia, pero en ocasiones no es así.
Adware
Adware es una palabra inglesa que nace de la contracción de las palabras Advertising Software, es decir, programas que muestran anuncios. Se denomina adware al software que muestra publicidad, empleando cualquier tipo de medio: ventanas emergentes, banners, cambios en la página de inicio o de búsqueda del navegador, etc. La publicidad está asociada a productos y/o servicios ofrecidos por los propios creadores o por terceros.
Técnicas de Spywares & Adwares
Estos programas utilizan técnicas más avanzadas que los tradicionales "malware". Esto es porque los programas spyware y adware tienen fines netamente económicos y son creados por corporaciones con programadores profesionales, a diferencia de los creadores de virus que en general es gente que lo hace más bien por hobby.
A continuación veremos algunas técnicas usadas para la instalación, activación y evitar que remuevan con facilidad. Luego veremos que tipos de información de los usuarios recopilan estos programas.
Técnicas de Instalación
El primer desafío de los creadores de Spywares y Adwares, es que la gente los instale. Pueden ser instalados de diferentes maneras:
Banners emergentes
Muchos sitios webs utilizan banners emergentes, donde se muestran distintos tipos de anuncios. Sin embargo algunos realizan ciertos trucos para engañar al usuario. Por ejemplo poniendo imágenes falsas, donde el usuario hace click y lo redirige al sitio donde comienza la instalación del spyware o el adware.
Un ejemplo
Drive by downloads
Es la acción de mostrarle al usuario el prompt para instalar un programa sin que él lo haya solicitado.
Esto se puede realizar de dos maneras:
Automatic refresh
Ocurre cuando una página web redirige automáticamente al navegador a un .EXE, causando que se despliegue un prompt solicitando su ejecución.
Active X
Active X es una tecnología liberada por Microsoft que permite interoperabilidad entre los programas. Active X control es una parte de esta tecnología que fue diseñada como una extensión del HTML para proveer más dinamismo a las páginas web. Cuando se está en una página que necesita Active X control, el navegador despliega un prompt solicitando su instalación. Muchos spywares y adwares utilizan ese método para engañar al usuario con que necesitan instalar un Active X control, pero en realidad se instala el Spyware o el Adware.
Continual prompting
Cancelar un prompt de instalación muchas veces no es suficiente. Esta técnica consiste en volver a desplegar el prompt de instalación cada vez que el usuario lo cierra con el objetivo de "ganarle por cansancio" y que finalmente termine realizando la instalación.
Empaquetar adware y spyware en otro software
Algunos programas, cuando son instalados también instalan spyware o adware. ¿Cuál es la razón para hacer esto?: Dinero. Algunas companías pagan por instalación, y considerando que en muchos casos las instalaciones de un software pueden ser miles, es un buen negocio.
Instalación desde Peer to Peer Networks
Cada vez hay más programas Spyware y Adware en las Peer to Peer Networks (P2P). P2P se refiere a una red que no tiene clientes y servidores fijos, sino una serie de nodos que se comportan a la vez como clientes y como servidores. Un ejemplo es la tecnología de BitTorrent.
Exploit
Se trata de bajar e instalar un programa sin el consentimiento del usuario y sin que lo note, explotando las vulnerabilidades del Internet Explorer que permite que contenidos se bajen e instalen automáticamente.
Técnicas de Activación: Load Points
Una vez que el Sypware o el Adware está instalado en el sistema, hay que asegurarse de que se cargue cada vez que se reinicia el sistema. Esto se hace en los load points.
El load point más común es el Run Registry Key. Windows ejecuta el archivo especificado en dicho registro al iniciar.
HKEY_LOCAL_MACHINESoftwareMicrosoftCurrentVersionRun.
Pueden cargarse también bajo el contexto de otras aplicaciones. Esto es agregándose en el registry key : KEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionWindowsAppInit_DLLs. Cuando las aplicaciones son ejecutadas, Windows chequea esta key y carga las DLL en la nueva aplicación que está siendo ejecutada. El código de la DLL corre en el contexto de la aplicación y asegura que es siempre ejecutado en el sistema.
Muchos adware y spyware, en vez de cargarse en cualquier aplicación se cargan específicamente al iniciar Internet Explorer.
También existen otros load points donde se puede cargar los spywares y adwarse, como por ejemplo Winlogon (provee notificaciones al incio del sistema, apagado, logon, logoff, inicio del salvador de pantallas, etc) o cuando se inicia Winsock (es cargado por aplicaciones que realizan acciones en redes).
Técnicas para prevenir que sean removidos del sistema
Spywares y Adwares, una vez que son instalados y asegurados de que serán cargados en cada reinicio del sistema, utilizan técnicas para proteger sus procesos y sus entradas en los registros y archivos.
Veamos algunas:
Ofuscación
Se trata de encubrir el nombre de los archivos y claves del registro para evitar ser notados. Una forma es usar nombres aleatorios. Otra es usar nombre similares a procesos legítimos. Por ejemplo Elitebar se copia al directorio de Windows con el nombre win< 3 letras aleatorias>32.exe
Estas técnicas pueden servir para engañar al usuario, pero no sirven contra los anti-Spyware.
Watchdog
Son técnicas que monitorean el sistema y permiten que un programa se reinstale automáticamente si es removido.
En el caso de los archivos una técnica sería mantener una copia en otro lugar. Si el archivo es removido, el Spyware lo repone con la copia.
Las entradas del registro de Windows también pueden ser removidas y luego agregadas nuevamente. Una forma es utilizar la API RegNotifyChangeValue. Si el registro es modificado se dispara un evento, en el cual se puede restaurar la clave del registro si fue removida. Look2Me utiliza esta técnica.
También son monitoreados los procesos y se reinician si son finalizados.
Code Injection
Se inyecta código en otros procesos para asegurar que el Spyware se ejecute siempre.
Un ejemplo, Aurora inyecta código en Explorer.exe, el cual es un proceso que siempre está corriendo en Windows y lo toma como load point. Este código chequea que siga seteado en el registro de Windows "Explorer.exe ". Esto asegura que Aurora correrá cada vez que Windows se inicia. Al estar este código oculto en Explorer.exe complica que Aurora sea removido.
Windows Hook
Un hook es una función que se puede crear como parte de una DLL de una aplicación para monitorear lo que está "ocurriendo" en Windows. La idea es llamar a cierta función cada vez que ocurren ciertos eventos en Windows (por ej. el movimiento del mouse).
Los spywares y adwares pueden utilizar un hook para reiniciarse a si mismos. Por ejemplo cuando se quiere matar un proceso, se llama a TerminateProcess. Esto termina el proceso inmediatamente sin llamar a ninguna DLL del registro de windows, evitando de esa forma que se pueda prevenir su terminación. Sin embargo la cosa cambia si hay un Windows Hook instalado. Cuando se llama a TerminateProcess, en un proceso llamado SetWindowsHookEx, la DLL con el Windows hook recive una notificación DLL_PROCESS_DETACH. Esta notificación fue diseñada para darle a la DLL la oportunidad de remover el Windows hook, porque si se removiera la DLL de memoria, pero no el Windows hook, se colgaría el sistema. Adwares y Spywares usan esta notificación para reiniciarse a si mismos.
Modificación de permisos
Spywares y adwares pueden prevenir que sean removidos, modificando los permisos en el sistema.
En el caso de un archivo se puede evitar que sea removido quitando permisos de acceso al mismo a todos los usuarios del sistema .
También se pueden quitar algunos privilegios en la cuenta del usuario. Por ej. la API OpenPocess necesita el SE_DEBUG_PRIVILEGE, que típicamente lo tiene el administrador. Quitando este privilegio previene que se utilice OpenProcess en la cuenta y por ende muchas herramientas de seguridad para analizar el proceso.
Técnicas Rootkit
Estas técnicas lo que hacen es ocultar un programa, con la intención de que no sean detectados ni por anti-virus, ant-spywares, u otros.
Rootkit es una avanzada técnica de hooking. Lo que hacen es filtrar los resultados de búsqueda de ciertas APIs del sistema.
Estas técnicas se pueden ejecutar en User mode o en Kernel Mode
Por ejemplo en User Mode un programa spyware puede incluir un hook que intercepte y modifique el resultado de las API de búsqueda FindFirstFile y FindNextFile, filtrando cualquier resultado que tenga un archivo del mismo.
En Kernel Mode es aún más sofisticado. Por ejemplo una técnica común para ocultar la presencia de un spyware o adware es removiendo el proceso, de la lista de procesos que se están ejecutando.
Algunos ejemplos
GAIN utiliza un "suscriber id" para identificar a los usuarios y crear un perfil del mismo. Este perfil puede contener qué paginas ha visitado, cuanto tiempo ha estado en ellas, en que anuncios a clickeado, información de donde se encuentra el usuario como el país y la ciudad, información sobre los cuatro primeros dígitos de la tarjeta de crédito usados para hacer compras en la web.
BetterInternet recopila una lista de los procesos que están corriendo en el momento, datos del registro de Windows, hostname, el serial number de Windows, la versión de Windows, etc.
comScore provee datos personales de numerosos clientes y obtiene estos datos utilizando un software llamado Marketscore. Marketscore monitorea hábitos de navegación de los usuarios y luego envía la información recopilada vía SSL. Estos datos pueden incluir nombre, apellido , números de tarjetas de crédito, nombres de usuario y passwords, transacciones confidenciales, etc.
Consiste en el envío de correos electrónicos que parecen provenientes de entidades fiables (normalmente bancos), pero en realidad son enviados por estafadores. El mensaje insta al usuario a pulsar sobre un link, que le llevará a una página en la que deberá introducir sus datos confidenciales, con la excusa de confirmarlos, reactivar su cuenta, etc.
La página donde entra el usuario es una página falsificada y de esta forma fácilmente se obtienen los datos de la persona.
Características más comunes que tienen los mensajes de correo electrónico:
El correo electrónico tiene un link a un sitio falso, en el que replican en todo o en parte el aspecto y la funcionalidad de la empresa. De esta forma se confunde al receptor del mensaje.
Se utiliza un nombre real como remitente del correo falso. De esta manera, si el receptor del mensaje llama a la empresa, le van a informar de la veracidad tanto del mail, como de la existencia del empleado. En la mayoría de los casos, el nombre del empleado es falso, y los teléfonos que se brindan son empresas "fantasmas" que tienen unos pocos días de existencia.
Se busca una rápida respuesta por parte del usuario, por ejemplo, advirtiendo que si no hace lo que dice el mail va a perder su cuenta o va a sufrir alguna otra consecuencia perjudicial. Esto es debido a que una vez que las primeras personas caigan en la estafa, la empresa (verdadera) va a avisar rápidamente a sus usuarios de la situación.
Estos mensajes se envían de forma masiva. Alguno de los receptores será efectivamente cliente de la entidad.
Técnicas de Phishing
Ocultamiento de la barra de direcciones.
Se coloca una ventana pop up que flota sobre la barra de direcciones de forma que el usuario no pueda darse cuenta que la dirección es falsa.
Man-in-the-middle (hombre en el medio).
Consiste en ubicar al atacante entre el cliente y el servidor, actuando a modo de Proxy, para poder escuchar la comunicación entre ambos. Para poder realizar esta técnica con éxito se debe poder redirigir al cliente al Proxy, en vez del servidor real.
Aprovechamiento de vulnerabilidades de IE.
Se puede falsear la dirección que aparece en el navegador. Mientras la url que aparece es la verdadera, el sitio por donde se está navegando es el falso.
Keyloggers.
Debido a vulnerabilidades del IE o del sistema operativo del cliente, ingresan troyanos que registran todas las teclas que el usuario presionó, capturando información de passwords, números de usuario, números de tarjeta de crédito, etc.
Recomendaciones para protegerse del Phishing
Verifique la fuente de la información.
No conteste automáticamente ningún mail que pida información confidencial. Comuníquese telefónicamente con la institución para pedir información sobre la veracidad del mail.
Escriba usted mismo la url de la empresa.
En vez de hacer clic en el link que proporciona el mail, es mejor digitar la url manualmente o usar el link de los favoritos. Si bien el link del mail puede lucir normal, puede tener oculta otra dirección.
Reforzar la seguridad.
Todos los usuarios que utilizan Internet como medio para hacer transacciones deben tener actualizados todos los parches de seguridad tanto del sistema operativo, como del navegador.
Compruebe que la página web en la que ha entrado es una dirección segura.
Ha de empezar con https:// y un pequeño candado cerrado debe aparecer en la barra de estado de nuestro navegador.
Haga doble clic sobre dicho candado para tener acceso al certificado digital que confirma que la web se corresponde con la que está visitando.
Revise periódicamente sus cuentas.
Los extractos mensuales son especialmente útiles para detectar transferencias o transacciones irregulares, tanto operaciones que no haya realizado y se vean reflejadas en el extracto, como operaciones realizadas online y que no aparezcan en el extracto.
Comportamiento de los virus en sistemas operativos.
Virus en Windows 95
En Windows 95 corren programas de DOS, de Windows 16 bits y de Windows 32 bits.
Para mantener la compatibilidad con previas versiones de Windows, Win95 opera muy parecido a Windows 3.1 bajo DOS.
Como DOS, Windows 95 al principio comienza en el qué se llama modo real. En este modo, los programas y los drivers de dispositivos son cargados desde CONFIG.SYS y AUTOEXEC.BAT. Después de este proceso de carga, se inicia el componente gráfico de Windows 95.
Luego, el usuario puede correr un programa de DOS iniciando una ventana del DOS. La ventana contiene una copia de todos los programas corridos durante el arranque inicial del sistema, incluyendo cualquier código de virus que pudo haber sido cargado. Desafortunadamente, esto significa que cada ventana de DOS siempre tendrá los mismos programas – incluyendo virus- que fueron cargados antes de que el componente gráfico de Windows 95 comenzara, y las sesiones múltiples del DOS pueden dar lugar a muchas infecciones.
En versiones anteriores de Windows, DOS manejaba el sistema de archivos. Esto cambia con Windows 95, este maneja el sistema de archivos empleando drivers de dispositivo y programas de 32 bits.
Para asegurar que la integridad del sistema de archivos se preserva, los programas de DOS (y los virus) se bloquean cuando intentan escribir directamente a un disco duro a menos que utilicen código específico de Windows 95 especial para hacerlo. Sin embargo, el escribir directamente a los diskettes todavía se permite.
Además, no hay protección de nivel de archivo. Los virus que utilizan archivos para propagarse todavía pueden hacerlo en Windows 95.
Otra área que puede presentar nuevas oportunidades para los virus es la proliferación de las herramientas de programación fáciles de utilizar para Windows. En el pasado, los desarrolladores de virus requerían conocimientos de lenguaje ensamblador y del sistema operativo. Para Windows, los virus pueden ser escritos en lenguajes de alto nivel con los paquetes de herramientas de programación visuales por programadores principiantes. Estos virus son también difíciles de detectar puesto que se parecen mucho a los otros programas con que un usuario está trabajando.
Virus en Windows NT.
Windows NT difiere de otros sistemas operativos Windows de varias formas:
Windows NT no esta basado en el Kernel de DOS
Soporta cuatro tipos de sistema de archivos diferentes (FAT, OS/2 HPFS, NTFS y MAC).
Para acceder a disco Windows NT tiene sus propios drivers
Impide que los programas ejecutados en consolas DOS escriban directamente a disco.
Virus de Master boot record (MBR) en Windows NT
En general hay dos formas de infectarse con un virus de MBR.
Infecciones de MBR booteando desde un diskette infectado: Windows NT es susceptible a este tipo de infecciones dado que este no tiene control del sistema mientras se esta booteando.
Infecciones de MBR desde programas DOS: Estos programas usan servicios de DOS o la BIOS para copiarse en el MBR, como Windows NT previene dichas escrituras este tipo de infecciones están prevenidas.
Proceso de booteo con una infección en el MBR:
Cuando el virus esta presente en el MBR, siempre que se inicie el sistema el virus podrá quedar residente en memoria.
Luego del booteo, se pasa el control a Win NT que carga el resto del sistema operativo. Durante esto el sistema pasa a modo protegido e instala sus propios drivers. El modo protegido se usa para todas las operaciones a disco, por lo que los virus quedan inactivos.
El hecho de que Windows NT no soporte escrituras directas a disco implica que:
Los virus de MBR no pueden infectar otros diskettes después de que Windows NT se ha cargado.
En DOS y en Windows 95 algunos virus podían alterar los datos durante cada acceso a disco. En Windows NT los virus pueden hacer esto solamente durante el booteo, luego de pasarse a modo protegido los virus ya no podrán hacerlo.
Algunos virus encriptan información durante el booteo, y luego la van descifrando. Como Windows NT corta la posibilidad de que el virus pueda descifrar luego del booteo, esto puede resultar en perdida de datos.
Los virus que no mantienen la tabla de partición del MBR infectado, pueden causar que los drivers infectados queden inaccesibles para Windows NT. Esto ocurre porque Windows NT lee la tabla de particiones usando el modo protegido. Esto hace de que el virus no pueda actuar (por lo que no puede darle la tabla original). Esto no ocurre así en DOS y Windows 95.
Si un virus no modifica la tabla de particiones del MBR y no dispara su carga durante el booteo, Windows NT deberá funcionar correctamente.
Virus de Boot Record bajo Windows NT:
Se propagan de la misma forma que los virus de MBR (es decir a través de un diskette infectado o a través de un programa DOS)
Posibles daños por una infección de un virus de Boot Record
Los virus de boot record infectan el disco moviendo el boot record original a una nueva localización y lo reemplazan por un boot record infectado.
Infecciones de boot record en sistemas FAT
Si el virus coloca el boot record original al final del disco infectado y no protege este sector, entonces Windows NT podría sobrescribirlo, haciendo que el sistema no bootee.
Si el virus no mantiene la sección de BPB (BIOS Parameter Block) del boot record y confía en la funcionalidad de ocultamiento para proporcionar correctamente esta información al DOS, Windows NT tendrá dificultad al tener acceso disco una vez que se utilice el modo protegido.
Daños debido a virus de boot record en sistemas NTFS o HPFS
Si un virus de boot record infecta el boot record de un sistema NTFS puede causar perdida de datos y de importantes rutinas.
Esto puede causar que el sistema falle al bootear. Sin embargo si el virus tiene capacidad de ocultamiento, el sistema podrá bootear normalmente.
El proceso de booteo en NT con una infección de boot record
Durante el proceso de booteo, el MBR (no infectado) carga y transfiere el control al boot record infectado para activar la partición FAT, HPFS o NTFS. El virus se instala en memoria y distribuye su carga. Finalmente el virus carga y transfiere el control al boot record original y el proceso continúa normalmente. Una vez más Windows NT entra a modo protegido, por lo que el virus no se activa más o es usado de alguna forma.
En resumen, en Windows NT, los virus de boot record y MBR son capaces de hacer daño durante el proceso de booteo, y luego cuando el sistema operativo pasa a modo protegido los virus se desactivan.
Virus de archivo de DOS bajo una ventana DOS de Windows NT
En general hay dos tipos de estos virus, los virus de acción directa y los virus residentes en memoria.
Lo virus de acción directa intentan infectar otros archivos tan pronto como un archivo infectado es ejecutado. Estos archivos usan los servicios del DOS Standard que son emulados en las ventanas DOS de Windows NT.
Los virus residentes en memoria intentan engancharse en los servicios de DOS infectando a los archivos en un enfoque por acceso. En la mayoría de los casos el virus queda residente en memoria dentro de los confines de la ventana DOS de Windows NT. Una vez que el virus toma el control, puede infectar cualquier programa accedido o ejecutado dentro de la ventana DOS.
Sin embargo el virus no puede infectar otras ventanas DOS, aunque puede haber corriendo programas infectado en cada ventana.
También los virus pueden interceptar la llamada "Execute Program" (emulada por Windows NT) y así potencialmente infectar programas Windows, aunque la mayoría de los virus de DOS no lo hacen correctamente.
Los virus residentes en memoria no pueden infectar programas nativos de Windows lanzados desde consolas cmd.exe.
Daños de este tipo de virus
Windows NT provee protección que previene que los archivos sean modificados por virus de archivo de DOS.
Sin embargo si un programa infectado corre con privilegios de administrador, entonces el virus podrá modificar todos los archivos a los que el usuario tenga acceso.
Mientras Windows NT previene que programas DOS escriban directamente a disco, no previene que escriban directamente en diskettes, por lo que estos pueden infectarse.
Los virus de archivo basados en DOS, solo funcionarán bien bajo una ventana DOS.
Virus de Windows 3.1 bajo Windows NT
Estos virus pueden engancharse en servicios de Windows NT como lo hacían en Windows 3.1, sin embargo bajo Windows NT los virus de Win3.1 solo infectarán ejecutables de 3.1.
Si un usuario carga una aplicación de Windows 3.1 infectada en su propia área de memoria el virus residente no recibirá información del sistema sobre otras aplicaciones de Windows 3.1
Virus nativos de Windows NT
Windows NT presento un nuevo desafío a los programadores de virus.
Primero, este requiere un mayor hardware para operar, por lo que la mayoría de los programadores de virus (adolescentes) podrían no contar con el hardware adecuado para escribir nuevos virus.
Los archivos ejecutables de Windows NT son mas complejos que los encontrados en DOS y había menos documentación al respecto, por lo que los escritores de virus debieron dedicar tiempo a la ingeniaría inversa.
También se debía tener un conocimiento de las API de Windows 32 bits para crear nuevo virus, dado que no se permitía el uso de los servicios de DOS.
Ataques en contra de la primera generación de heuristicas en win32
Nuevas formas de infectar archivos PE (archivos Portable Ejecutable, son portables y son compatibles con cualquier versión de Windows)
Muchos virus de archivos PE agregan una nueva sección o se concatenan al final de estos. Así se podían crear heurísticas para detectar estos virus.
Por lo que los creadores de virus idearon nuevas técnicas para evitar la detección de los mismos.
Virus que no se insertan en la última sección
Muchos virus se insertan no solo en una sección sino en muchas al mismo tiempo.
Por ejemplo algunos virus se agregan en cuatro secciones (.text,.rdata,.data y .reloc).
Las heurísticas desarrolladas para este tipo de virus son consideradas de bajo valor.
Otra técnica anti heurística es cifrar el host file header, dado que muchas heurísticas se valían de este para detectar virus.
Algunos virus tales como Win95/Invir no modifican el punto de entrada de la aplicación para apuntar a la última sección. El virus sobrescribe algo del área de slack de la primera sección y salta desde ahí al comienzo del virus. Esta técnica es combinada a menudo con trucos anti-emulación.
Uno de los virus más interesantes es el Win32/Aldabera.
Este virus que no puede infectar pequeños archivos PE, trata de empaquetar su sección de código en archivos PE grandes.
El problema que causa este virus es que el desempacado y descencriptado se hace muy lentamente durante la emulación.
Técnicas de puntos de entrada oscuros
Los creadores de virus implementaron la inserción de virus polimorficos para evadir heurísticas. Afortunadamente, cuando más complejo se vuelve el código del virus, le es más difícil propagarse, por eso estos se transmiten a través de envíos de mail masivos.
Estos tipos de virus causan problemas de velocidad a los productos anti-virus.
Estas infecciones pueden ser detectadas por los siguientes métodos:
Técnicas para descencriptar que se usan en todas la secciones codificadas (esto causa falsos positivos, así como también falsos negativos)
Detección criptográfica. El problema con este método es que cuando el inicio del virus no se encuentra en una posición fija, se debe descencritar una gran parte del archivo, por lo que es lento. Como ventaja es que hace que la reparación sea posible al tener el virus descencriptado.
Combinación de emulación y descencriptación.
La inserción de virus polimorficos son un problema para las técnicas de escaneo (debido al tiempo) y las heurísticas no son completamente útiles.
Técnicas anti-emulación
El uso de instrucciones del co-procesador en algunos virus hace que la emulación falle, dado que estas no se pueden emular porque no han sido implementadas.
Algunos virus no polimorficos pero encriptados usan instrucciones del co-procesador para descencriptarse.
Obviamente los modernos anti-virus deben soportar instrucciones del co-procesador.
Algunos virus usan instrucciones MMX (multimedia extension) de los procesadores Pentium. La mayoría de los motores, no asumen que MMX esta disponible en el procesador, y tratan de chequear su existencia. Algunos de ellos fallan y generan una excepción de procesador.
Debido a que la mayoría de los sistemas soporta MMX, los desarrolladores de virus podrán obviar el chequeo, por lo que la emulación de MMX deberá ser soportada por los anti-virus.
Muchos virus setean un manejador de excepciones para crear una trampa para los emuladores. Algunos motores de virus polimorficos generan código aleatorio para ser descifrados. Luego fuerzan a que ocurra la excepción y así el virus ejecuta su propio manejador el cual le da el control a otra parte del descifrador polimorfico.
Cuando el emulador no es capaz de manejar la excepción el virus no es alcanzado durante la emulación del código.
Otros virus se ejecutan solamente aleatoriamente, dependiendo por ejemplo de la fecha. El problema es obvio para emuladores, sin tener el valor correcto el virus no podrá ser alcanzado. Las heurísticas pueden fácilmente fallar en detectar dicho virus.
Hay algunas instrucciones del CPU no comentadas (no muchas), por lo que los virus pueden hacer uso de estas. Algunos emuladores las implementan, pero pueden diferir del comportamiento original, por lo que el virus podrá distinguir entre una ejecución "normal" y la emulación.
Los emuladores no deberían parar cuando encuentran instrucciones no documentadas.
El uso de fuerza bruta en la descencriptación del virus, no usa claves fijas para determinar el método actual sino que lo hace a prueba y error.
La lógica es relativamente rápida en ejecuciones de tiempo real, pero genera grandes loops que causan billones de iteraciones que hacen que el cuerpo del virus no sea alcanzado fácilmente. La descencriptación es una actividad sospechosa por lo que las heurísticas pueden aprovechar esto.
Algunos virus le pasan el control a alguna API cuando se están descencriptando, por lo que es necesario para los antivirus poder emular APIS.
Recalculo del checksum
Algunos virus recalculan el checksum de archivos PE cada vez que el header tiene un valor distinto a cero. Por lo que las heurísticas que se valen de esto fallarán.
Evitar la infección del header
Las heurísticas chequean infecciones en el header de los archivos, por lo que los virus evitan infectar dicha parte para no ser detectados.
No trucos "CALL to POP"
La mayoría de los virus usan "CALL to POP" para ubicar su dirección de comienzo en su recolocación de sus datos. Como la primera generación de heurísticas podían detectar esto, los desarrolladores de virus debieron encontrar nuevas maneras de obtener la dirección base del código. Heurísticas dinámicas son necesarias para ver si la instrucción CALL apunta a la actual POP.
Virus de Windows 95 totalmente ocultos
Cuando se abre un archivo infectado y un clon limpio, no hay diferencia entre ellos salvo que el virus esta activo en la computadora, esta es la razón principal para implementar escaneo de memoria en Windows de 32 bits
Los problemas para reparar archivos PE
Los virus de archivos PE modifican gran cantidad de partes de la imagen ejecutable.
En algunos casos los virus guardan la información necesaria para realizar una "reparación perfecta". Una reparación perfecta hace al objeto reparado igual a la copia limpia original.
Esto en la mayoría de los casos no es posible porque muchos de los virus no salvan suficiente información para poder repararlos.
El impacto de Windows 2000 en virus
¿Cuales virus de Windows 32-bits funcionan en Windows 2000?
La mayoría de los virus de Windows 32 funcionan, dado que la mayoría de ellos están creados en lenguajes de alto nivel como Delphi o C.
Aquello virus que usan la tabla de direcciones import de los programas host seguirán funcionando sin modificaciones en el código del virus.
Es interesante que el conjunto Kernel.dll API de Windows 2000 contenga algunas APIs que estaban disponibles solo en Windows 95 o Windows 98 hasta ahora. Esto significa que virus de Windows 95 que no funcionaban en Windows NT podrían funcionar en Windows 2000.
Worms binarios- ¿Es posible una detección genérica?
Aunque la lógica de los diferentes worms es muy similar, el código binario es muy diferente.
Para detecciones heurísticas es necesario entender lo que hace el programa.
Actualmente los worms de Windows 32 que tienen más desarrollo son los escritos en VB.
Desafortunadamente hay muchas versiones de VB.
Por fortuna la descompilación de estos programas no es imposible, aunque insume mucho trabajo.
La detección heurística del archivo genérica podría ser desarrollada una vez que el producto descompile las aplicaciones detectadas de VB y las analice. Tal heurística podría ser desarrollada, pero necesitamos entender las estructuras del archivo de VB detalladamente, y no hay ninguna documentación de la clase disponible.
Acerca de las heurísticas
El scanner a través de heurísticas no debería ser hard-coded en productos antivirus.
Estas necesitan ser actualizadas de vez en cuando para hacer el trabajo de los creadores de virus más difícil.
El scanner heuristico toma más importancia a medida en que los virus se vuelven más complejos.
Los investigadores de AV necesitan actualizar la detección heurística y genérica continuamente. La heurística no forma una última solución, pero trabaja definitivamente mejor que otras técnicas de exploración.
Se deberá estar preparado a la llegada de miles de virus y educar a los usuarios lo más que se pueda. La educación funciona mejor cuando la gente aprende las cosas malas por el camino difícil.
¿Qué son?
Macro
Antes, cuando las aplicaciones no eran tan complejas como lo son ahora, un macro era una manera conveniente de almacenar una secuencia de teclas que hacen una macro operación.
La macro operación podía ser invocada con una o dos teclas en lugar de las muchas que serían necesarias en otro caso.
Por ejemplo en una compañía de nombre ACME, en las aplicaciones en lugar de tipear ACME cada vez que se necesite se presiona la tecla F3.
Eso era lo que sucedía antes, hoy en día los macros son mucho más que una secuencia de teclas, hoy en día los macros son programas.
El lenguaje de programación usado para hacer macros en Microsoft Office se llama Visual Basic for Applications (VBA).
Los macros están almacenados en archivos documento.
Cuando se graba un macro se puede elegir entre almacenarlo en el documento actual en que se esta trabajando y que este accesible solo en ese documento o se lo puede hacer global para poder trabajar con él en cualquier documento.
Macro Virus
Son virus que han sido escritos en lenguajes de programación de macros, como por ejemplo VBA.
Los factores que hacen que los virus macro de VBA sean una amenaza real son lo siguientes:
1:-VBA es un lenguaje de programación de propósito general. Esto significa que un macro virus puede ser programado para hacer lo que sea.
2:-Un programa escrito en VBA tiene acceso a los recursos del sistema. Esto significa que un macro virus pueden escribir en el disco duro, entre otras cosas.
3:- En los documentos de office, los programas VBA son almacenados dentro de los documentos, lo que significa que los macro virus pueden ser transportados a otras computadoras solamente copiando estos documentos.
4:- Los macro virus VBA pueden ejecutarse automáticamente cuando un documento es abierto.
Un documento puede entonces estar infectado con un virus macro y así esparcirse a otras computadoras cuando este se comparte con otros usuarios. La capacidad de tener un fácil acceso a recursos de sistema da a estos virus macro el potencial de llevar cargas útiles muy dañinas.
Seteo de seguridad de Macros en Office 2000
Word, Excel, PowerPoint y Outlook tienen un seteo de seguridad de macros personalizable. Esto no es así en Access.
Este seteo de seguridad de macros afecta los tipos de alerta que el usuario recibe cuando abre un documento que contiene macros, también permite al usuario especificar que algunos documentos firmados digitalmente por individuos específicos son confiables.
Los distintos niveles de seguridad:
Nivel bajo:- Este nivel esencialmente no provee seguridad, cuando un documento que contiene macros es abierto no se presenta ninguna advertencia. No se recomienda este seteo.
Nivel medio:- Cuando se abre un documento que contiene macros, la aplicación presentará una advertencia. Esta da la opción de habilitar o deshabilitar los macros en el documento. El usuario también puede elegir no abrir el documento.
Nivel alto:- Este nivel de seguridad es estricto. Si un documento contiene macros que no han sido firmados con una firma digital que se encuentra en la lista de confianza del usuario, se presenta al usuario una advertencia con solo el botón deshabilitar macros habilitado.
Cuando el documento tiene un macro que ha sido firmado por alguien de confianza, el macro se activa sin presentar ninguna advertencia.
Nota: El que un macro este digitalmente firmado, y se haya autenticado, no significa necesariamente que este no sea un virus.
Aunque sea difícil, las firmas digitales pueden ser falsificadas. Los dueños de las firmas digitales deben mantener la seguridad de estas.
Diferencias entre Office 97 y Office 2000
Office 97 no tiene la habilidad de verificar las firmas digitales.
Cuando un documento de office 2000 que contiene macros es abre con office 97, el usuario recibirá una advertencia de que el documento contiene macros, si la opción de protección contra macros esta activada.
El usuario podrá entonces habilitar o deshabilitar el macro.
Los macros de las aplicaciones de office 2000 que se abran bajo office 97 no serán modificables.
Como las aplicaciones de office 97 no tienen firmas digitales en los macros, si los documentos que los contienen son abiertos con office 2000, tendrá como resultado una advertencia (en caso que la seguridad este seteada en nivel media o alta).
Evolución del Código de los Virus
Virus Simple
Un "Virus Simple" es aquel que simplemente se replica a sí mismo. Por lo que es fácilmente detectable por un Antivirus que conozca su secuencia de bytes (firma).
Mecanismo de Propagación
Si un usuario ejecutara un programa infectado, el virus tomaría el control del PC y se copiaría a sí mismo en otro ejecutable. Después de que se replicara, el virus transferiría el control de vuelta al usuario.
No importa cuantas veces un virus con estas características infecte a otro archivo, éste siempre hará una copia exacta de si mismo.
Un Antivirus solo necesita examinar todos los archivos en búsqueda de una cierta firma característica para encontrar el virus.
Virus Cifrados (Encriptados)
En respuesta a los antivirus de detección por firma, los autores de virus empezaron a encriptarlos. La idea detrás de esta encriptación esta en esconder la firma de los virus para hacer más difícil o imposibilitar la tarea de detección de los antivirus.
Un "Virus Cifrado" consiste en una rutina de desencriptación y un virus simple encriptado.
Mecanismo de Propagación
Si un usuario ejecutara un programa infectado, la rutina de desencriptación del virus tomaría el control del PC y a continuación desencriptaría el virus. Luego le transferiría el control al virus anteriormente desencriptado y este último realizaría la misma rutina que un virus Simple, con la salvedad que no se copiaría directamente a otro archivo sino que copiaría la rutina de desencriptado y una copia encriptada de si mismo.
Para encriptar la nueva copia del virus, este usa una clave de encriptación que cambia cada vez que infecta un nuevo archivo haciendo que un antivirus no pueda encontrar el mismo patrón de bytes y por lo tanto haciéndolo irreconocible para este último.
Sin embargo, la rutina de desencriptado permanece constante de infección en infección. Por lo que un antivirus puede buscar esta firma (la de la rutina de desencriptado) en vez la del virus para encontrarlo.
Virus Polimórficos
En respuesta, los autores de virus desarrollaron los "Virus Polimórficos".
Como todavía habían cosas que quedaban fijas de infección en infección los autores agregaron un tercer componente a los virus, un "motor de mutación" cuya finalidad era resolver este problema.
El motor de mutación genera rutinas randómicas de desencriptación que cambian cada vez que el virus infecta un programa. Por lo que en un virus polimórfico, tanto el motor de mutación como el cuerpo del virus están encriptados.
Mecanismo de Propagación
Si un usuario ejecutara un programa infectado, la rutina de desencriptación del virus tomaría el control del PC y a continuación desencriptaría el virus y el motor de mutación. Luego le transferiría el control al virus anteriormente desencriptado y este último buscaría un nuevo archivo para infectar.
En éste punto, el virus desencriptado hace una copia del motor de mutación y de sí mismo a la RAM. Luego, el virus invoca al motor de mutación, el cual genera randomicamente una nueva rutina de desencriptación que no se parece a la anterior o alguna anterior a ésta. Lo siguiente que hace el virus es encriptase a si mismo junto con el motor de mutación y copia esta encriptación junto con la nueva rutina de desencriptado en el archivo encontrado para infectar. Como resultado todo el virus cambia de infección en infección, haciendo casi imposible la detección del virus.
Clasificación de peligrosidad del malware
Según Symantec (Norton Antivirus) la clasificación de peligrosidad se evalúa usando características definidas por el riesgo que provoca un malware, y se basa en tres componentes:
propagación
daño
distribución
De acuerdo con una evaluación de sus subcomponentes, cada categoría se clasifica como riesgo alto, medio, o bajo. La medida total de la severidad, se clasifica en 5 categorías, siendo la categoría 5 (o CAT 5) el más severo, y la categoría 1 (o CAT 1) el menos severo.
Métrica de la Amenaza
1. Propagación
La métrica incluye:
Número de sitios independientes infectados
Número de computadoras infectadas
Distribución geográfica de la infección
Capacidad de la tecnología actual de combatir la amenaza
Complejidad del malware
Pautas de la clasificación:
Alto: 1.000 máquinas o 10 sitios infectados o 5 países
Medio: 50-999 máquinas o 2 sitios/países infectados
Bajo: cuando no pertenece a las categorías anteriores.
2. Daño
La métrica incluye:
Acontecimientos accionados en cadena (Triggered)
Servidores atascados de e-mail
Archivos borrados/modificados
Acceso a información confidencial
Degradación del funcionamiento
Rutinas "bugs" que causan la pérdida involuntaria de productividad
Seteos "comprometidos" en la seguridad
Pautas de la clasificación:
Alto: Archivos borrados/modificados, tráfico muy alto en el servidor, daños irreparable de gran escala, brechas grandes en la seguridad, triggers destructivos
Medio: Los ajustes no críticos se alteraron, rutinas "bugs", daños fácilmente reparables, disparadores (triggers) no destructivos
Bajo: Ningún comportamiento intencionalmente destructivo
3. Distribución
La métrica incluye:
Ataque a gran escala por e-mail (gusano)
Ataque de código ejecutable (virus)
Propagación solamente a través de transferencia directa (download) o copia (Trojan Horse)
Capacidad de la infección en la red
Dificultad para borrar/limpiar
Pautas de la clasificación:
Alto: Gusanos, ejecutables a través de la red, amenazas difíciles de contener (debido a la alta complejidad del virus o baja de capacidad de combatir)
Medio: La mayoría de los virus
Bajo: La mayoría de los caballos de Troya.
Medida total del riesgo
Hay cinco categorías:
Categoría 5 – Muy Severo
Tipo de amenaza altamente peligrosa, muy difícil de contener. Todas las máquinas deben descargar inmediatamente las últimas definiciones del antivirus y ejecutar un escaneo. Puede ser necesario bajar los servidores de e-mail.
Propagación: Alto
Daño: Alto
Distribución: Alto
Categoría 4 – Severo
Tipo de amenaza peligrosa, difícil de contener. Las últimas definiciones del malware deben ser inmediatamente descargadas y distribuidas.
Propagación: Alto
Daño o Distribución: Alto
Categoría 3 – Moderado
Este tipo de la amenaza está caracterizado por ser altamente propagado (pero razonablemente inofensivo y contenido), o potencialmente peligroso (y difícil de contener) si se propagó.
Propagación: Alto, o
Daño: Alto y distribución: Alto
Categoría 2 – Bajo
Este tipo de la amenaza se caracteriza por ser de propagación baja o moderada (pero razonablemente inofensivo y contenible), o de amenaza no-propagada caracterizada por un inusual daño o algúna rutina de distribución.
Daños: Alto, o
Distribución: Alto, o
Propagación: Bajo o moderado
Categoría 1 – Muy Bajo
Representa poca amenaza para los usuarios. No se reporta propagación.
Propagación: Bajo
Daños o distribución: Bajo
Métodos de detección de virus
Búsqueda de Firma
Consiste en revisar el código de todos los archivos ubicados en el PC (fundamentalmente los archivos ejecutables) en busca de pequeñas porciones de código o firma que puedan pertenecer algún virus informático.
La primera debilidad de este sistema radica en que al detectarse un nuevo virus, este debe aislarse y enviarse al fabricante de antivirus. La solución siempre será a posteriori; es necesario que un virus informático se disperse considerablemente para que se envíe a los fabricantes de antivirus. Estos lo analizarán, extraerán el trozo de código que lo identifica y lo incluirán en la próxima versión de su programa antivirus. Este proceso puede demorar meses a partir del momento en que el virus comienza a tener una gran dispersión, lapso en el que puede causar graves daños sin que pueda identificarse.
En consecuencia los sistemas antivirus deben actualizarse periódicamente debido a la aparición de nuevos virus. Sin embargo, esta técnica permite identificar rápidamente la presencia de los virus más conocidos y, al ser estos los de mayor dispersión, posibilita un alto índice de soluciones.
Comprobación de suma o CRC (Ciclyc Redundant Check)
Es otro método de detección de virus el cual, mediante una operación matemática que abarca a cada byte del archivo, generan un número (de 16 ó 32 bytes) para cada archivo.
Una vez obtenido este número, las posibilidades de que una modificación del archivo alcance el mismo número son muy pocas. Por eso, es un método tradicionalmente muy utilizado por los sistemas antivirus.
En esta técnica, se guarda, para cada directorio, un archivo con los CRC de cada archivo y se comprueba periódicamente o al ejecutar cada programa.
Los programas de comprobación de suma, sin embargo, sólo pueden detectar una infección después de que se produzca. Además, los virus más modernos, para ocultarse, buscan los ficheros que generan los programas antivirus con estos cálculos de tamaño. Una vez encontrados, los borran o modifican su información.
Desciframiento Genérico
Cuando tenemos un virus que usa la encriptación como forma de ocultamiento tenemos que encontrar alguna forma de detectarlo. Ya vimos que cuando el virus no encriptaba el desencriptor, se podía detectar la firma de este ultimo. Tambien vimos que el virus polimórfico se encriptaba y mutaba con cada nueva infección.
El desciframiento genérico se fundamenta en que el virus:
Se encripta para no ser detectado
El virus polimórfico debe desencriptarse antes de ejecutarse.
Una vez que el programa infectado empieza a ejecutar, el virus encriptado inmediatamente usurpa el control de la computadora para desencriptarse, y luego cede el control de la computadora al virus desencriptado
Un antivirus que usa desciframiento genérico utiliza estos argumentos para detectar virus polimórficos. Cada vez que el antivirus escanea un archivo de programa, él carga este archivo en una computadora virtual (creada por el escáner antivirus). Dentro de esta computadora virtual, los archivos de programa se ejecutan como si estuvieran en una computadora real.
Cuando el escáner antivirus carga un archivo a la computadora virtual, pueden suceder dos cosas:
Si el archivo está infectado con un virus polimórfico, este comienza a desencriptarse exponiendo al escáner la firma del virus.
Si no esta infectado, simplemente se termina de ejecutar en la computadora virtual y se pasa al siguiente archivo a analizar.
El problema clave con el desciframiento genérico es la demora. Podría pasar mucho tiempo en ejecutar el virus (sobre todo si el fabricante de antivirus conoce esta debilidad).
Desciframiento Genérico Basado en Heurística
Para resolver este problema, el desciframiento genérico utiliza la heurística.
El desciframiento genérico basado en la heurística busca comportamientos inconsistentes (como ser, computar muchas cuentas simples y luego descartar el resultado) para hacer la detección (o alarma) del virus.
- Pero ¿Qué es exactamente el desciframiento heurístico?
El desciframiento heurístico es similar a la búsqueda de firma, excepto que en vez de buscar por una firma en particular, busca ciertas instrucciones o comandos dentro de un programa que no se encuentrarían en los programas típicos. Como resultado, un motor heurístico es capaz de detectar funcionalidades potencialmente maliciosas (como por ejemplo el mecanismo de replicación de un virus, la rutina de distribución de un gusano o la carga asociada a un troyano).
Los motores heurísticos hacen esto empleando alguno de estos dos sistemas:
Basado en el peso
Este sistema (que esta bastante obsoleto), se basa en calificar cada funcionalidad que es detectada, con un cierto peso de acuerdo al grado de peligrosidad que este posea. Si la suma de esos pesos alcanza cierto límite, una alarma se encenderá indicando una posible infección.
Basado en reglas
Este sistema extrae ciertas reglas del archivo que esté ejecutándose, y estas reglas se comparan contra un conjunto de reglas de código malicioso (del comportamiento de virus conocidos). Si existe una concordancia entre estos conjuntos de reglas entonces se disparará una alarma.
Hoy en día vemos motores antivirus que mezclan detección heurística con la detección por firma. Esto significa que los antivirus tratan de identificar si un cierto conjunto de instrucciones encontradas en un cierto archivo pertenece a un a clase (o familia) especial de código malicioso. La capacidad de detección está más ligada a encontrar la pertenencia a una familia de virus en vez de a un virus en particular.
Como construir un motor antivirus
Al desarrollar el concepto de un motor AV se debe tener presente la plataforma para la cual el motor se diseña. También al desarrollar un nuevo motor AV desde cero, se deben tener presentes algunas consideraciones que contamos a continuación.
- Plataformas destino y Lenguaje de programación
La selección del lenguaje de programación depende directamente de la plataforma o las plataformas de implementación. Generalmente los motores AV se desarrollan en lenguajes de programación disponibles para todas las plataformas. Actualmente los lenguajes mas usados son C o C++. C++ es considerado el lenguaje más moderno de estos dos, pero al ser orientado a objetos es más lento que C.
Página anterior | Volver al principio del trabajo | Página siguiente |