Mostrando entradas con la etiqueta Antivirus. Mostrar todas las entradas
Mostrando entradas con la etiqueta Antivirus. Mostrar todas las entradas

10 mar 2011

AVZ antiviral toolkit

No suelo usar antivirus, aunque algunas veces lo haga para hacer pruebas más que para proteger mi equipo de posibles amenazas. Buscando por la web me encontré con un antivirus que me ha gustado mucho por varias cosas, es gratuito (de momento), se actualiza con frecuencia, y tiene varias opciones que otros AV no tienen o al menos no muestran.

La página oficial de este AV es http://z-oleg.com/

La herramienta está diseñada principalmente para eliminar adware y spyware aunque se comporta bien en la detección de troyanos y sobre todo de keyloggers.

También es capaz de detectar rootkits.

Y lo mejor de todo es que tiene un módulo de desinfección bastante avanzado.

No requiere de instalación por lo que es ideal para llevar en una memoria USB.

Descargar AVZ antiviral toolkit.

Este programa además permite la creación y uso de plugins, puede descargar de aquí el editor de scripts para hacer plugins, y de aquí un plugin oficial para el programa de correo TheBat.

El programa pertenece a Kaspersky, firma comercial bastante popular en el tema de los AV.

Pronto publicaré un análisis de este programa mostrando como se comporta ante amenazas comunes que podemos encontrarnos en internet.

Aquí tienen una captura de la interface del programa:



No es una herramienta recomendada para los usuarios de a pie, está pensada más bien para profesionales de la seguridad pues tiene un comportamiento bastante paranóico y es facil obtener falsos positivos (por ejemplo detecta los hooks que hacen los firewalls personales y los AV) por lo que a mi personalmente me ha resultado una herramienta muy interesante y desde aquí les invito a probarla.

5 mar 2011

Antivirus y firmas

Hace tiempo que quería publicar un documento que explique someramente como se crean las firmas para los antivirus. Es un tema complejo e interesante, los antivirus salvo excepciones no son dados a promulgar sus técnicas al común, ya sea por motivos de seguridad o por motivos económicos.

En este pequeño artículo voy a resumir las técnicas empleadas por los antivirus para la creación de firmas, dejando a un lado las detecciones por heurística.

Si no tienes ni idea de que es una firma puedes empezar leyendo aquí.

Las firmas de los antivirus forman en su conjunto una base de datos que el antivirus emplea para identificar ficheros peligrosos, cuando un antivirus escanea un archivo en busca de virus o troyanos lo que hace es buscar unos patrones o firmas en los archivos, estos patrones o firmas han sido construidos previamente tras el análisis en laboratorio del virus o troyano en cuestión.

Veamos paso a paso como generar una de estas firmas, tal como lo harían en un laboratorio antivirus, aprendiendo así un poco más sobre el funcionamiento de estos programas.

Lo primero que hace el antivirus al analizar un archivo es determinar el formato de dicho archivo, es decir, identificar el archivo como un EXE, una DLL, un BAT, un .COM etc. pues dependiendo del tipo de archivo nuestro antivirus trabajará de forma diferente.

Imaginemos que el antivirus va a analizar un archivo .exe y que ha determinado que su estructura corresponde con PE (portable ejecutable), una vez que el antivirus sabe que estructura debe tener el archivo entonces pasará a realizar un análisis de dicha estructura.

Por ejemplo tratará de determinar la información básica de todo PE como su Entry Point, el número de secciones, la TimeDateStamp, la ImageBase, y todos los datos básicos que están definidos dentro del propio archivo.

Después analizará todas sus secciones, buscando cualquier indicio de que el archivo está empacado para tratar de desempacarlo. Si logra desempacar el archivo el análisis continuará entonces sobre el archivo desempacado y no sobre el original, de manera que repetirá todas las acciones desde el principio (tipo de archivo, análisis de sus secciones y cabecera, etc.).

Si no logra desempacarlo entonces el análisis se seguirá realizando sobre el archivo empacado.

Algunos antivirus comprueban también si el archivo está unido a otros archivos (bindeado) o si contiene dentro otro archivo (por ejemplo como recurso). Si determinan que esto está sucediendo entonces separan los archivos y los analizan desde el principio por separado.

Igual hacen con los archivos encriptados, si detectan el tipo de crypter tratarán de descifrar el archivo para analizarlo sin el cifrado.

Si no fueran capaces de desempacar, descifrar, separar, entonces los del laboratorio pondrán las firmas al archivo empacado, cifrado, unido.

Este proceso de desempacado lo puede realizar el antivirus automáticamente, o lo realizan manualmente en el laboratorio al analizar las muestras.

Ahora veremos las soluciones más sencillas que se han implementado para crear firmas para los antivirus:

Checksum MD5
Tan sencillo como calcular el MD5 del archivo. Es un método sencillo pero muy facil de romper. Con tan solo cambiar un byte del archivo original conseguiremos que el antivirus no detecte nada. Por lo que nuestro antivirus nunca puede usar este método de manera exclusiva.

Comparando la suma de comprobación original con la obtenida al analizar el archivo podemos comprobar si es o no el mismo archivo. Como digo esta técnica es muy floja pero es la más básica.

Existen otros algoritmos ampliamente extendidos que se emplean igual que MD5, como SHA o CRC.

Para que este método sea algo más efectivo es preferible basar la firma no en la suma de comprobación del fichero completo sino de algunas de sus partes, por ejemplo de alguna de sus secciones.


Firmas del cuerpo
En estas firmas lo que hacemos es crear firmas en formato hexadecimal, una firma sería una cadena de números hexadecimales tomados del cuerpo del archivo analizado. Esa cadena puede buscarse en todo el cuerpo o en una posición específica representada por EOF - n donde EOF es el final del archivo y n el número de bytes que debemos retroceder para buscar la cadena. Aunque pueden usarse otras referencias para marcar la posición como EP + n o cualquier cosa que se les ocurra.

Pueden obtenerse varias firmas del archivo y realizar operaciones con ellas, por ejemplo comprobar que existen 2 ó más firmas, si no existe alguna, determinar que existe un número concreto de secciones para buscar las firmas en el cuerpo, etc.

Firmas en los recursos
Algunos archivos maliciosos siempre tienen por ejemplo el mismo icono, por lo que puede analizarse tanto la suma de comprobación del recurso como una cadena hexadecimal del mismo. Esta es una sección predefinida llamada .rcrs

Firmas en los metadatos
Los metadatos de un archivo PE están en un lugar específico de los archivos, en los recursos del archivo y se localizan con el nombre VS_VERSION_INFORMATION donde podemos extraer información valiosa para identificar el archivo.

Nuevamente podemos emplear una suma de comprobación o una cadena de números hexadecimales.

Como ven no sería muy complicado crear nuestro propio antivirus que realice un escaneo bajo demanda del usuario y mediante una base de datos de firmas comprobar si el archivo es malware o no. Y por supuesto un buen método combinado de sumas de comprobación y firmas en el cuerpo de los virus.

Incluso sería buena idea dotarlo de firmas blancas, es decir, firmas que aseguren que no es un virus.

La mejor manera de elegir firmas del cuerpo del virus es analizándolo con un depurador como el Olly Debugger y buscando aquellas rutinas propias de un virus, troyano o lo que sea el malware en cuestión.

Los antivirus actuales emplean más tipos de análisis, pues el análisis estático no es del todo eficaz debido a las múltiples modificaciones que se le pueden hacer a los archivos. Por ello tienen firmas referidas al comportamiento del programa, de modo que analizando sus acciones (en una especie de sandbox o entorno seguro) determinan si el programa es potencialmente peligroso.

Y aquí termino. No es mucho, pero son ideas que pueden servir para entender un poco los antivirus.

15 feb 2011

Rat Detector v1.0

Este programa escrito por BUGGz en Delphi sirve para detectar si tenemos instalado alguno de los siguientes troyanos:

Bifrost 1.0.1.1
Bifrost 1.0.1.2

ProRat 1.9
ProRat 1.9 SE

Optix Lite Firewall Bypass

Nuclear Rat 7

El programa es detectado por:



Lógicamente se trata de un falso positivo así que no se asusten.

Este programa no limpia la infección. Solo nos advierte de ella.

Pinchando en las distintas pestañas el programa nos mostrará si estamos infectados por alguno de esos troyanos. En la siguiente imagen vemos que indica que estamos limpios del bifrost:



En la siguiente captura vemos como se mostraría una infección, en este caso el ordenador está infectado por el ProRat:



Descarga Rat Detector.