jueves, 16 de septiembre de 2010

iScanner, detección de código malicioso

iScanner para que los que no os suene, es una herramienta open source que permite detectar y eliminar código malicioso de forma local en contenido Web (perdonarme los puristas por esta definición tan simplista). Durante esta entrada vamos a ver qué nos ofrece iScanner, qué usos le podemos dar. La herramienta está desarrollada en Ruby y en base a un conjunto de "firmas" detecta el contenido malicioso y permite eliminarlo.

Como siempre una vez hechas las presentaciones formales, pasamos a ver como utilizarla. Lo primero es descargar la herramienta (versión 0.6) del sitio oficial:

$ cd /tmp
$ wget http://iscanner.isecur1ty.org/download/iscanner.tar.gz

Una vez descargada la aplicación la descomprimimos:

$ tar -xvzf iscanner.tar.gz

Dado que es una aplicación desarrollada en Ruby, recordar que deberemos tener los paquetes de ruby instalados. En esta entrada como hemos trabajado sobre Debian lo instalaremos mediante APT:

$ apt-get install ruby

Podéis encontrar esta info para otras plataformas la web oficial.

Ya disponemos de la aplicación lista para usar. Lo primero visualizamos qué es lo que contiene la aplicación:

-rw-rw-r-- 1 500 500 34521 mar 16 21:54 LICENSE
-rwxrwxr-x 1 500 500 3611 jun 5 13:05 installer
-rwxrwxr-x 1 500 500 20633 jun 6 11:08 iscanner
-rw-rw-r-- 1 500 500 2670 jun 6 11:12 signatures-0.1.7.db
-rw-rw-r-- 1 500 500 1585 jun 6 11:13 CHANGELOG
-rw-rw-r-- 1 500 500 6076 jun 6 11:15 README

  • installer es un script para realizar la instalación y desinstalación de la aplicación.
  • iscanner es un script que realiza las funciones de la aplicación
  • signatures-0.1.7.db es la base de datos de firmas, vamos es la madre del cordero.

Visto lo visto, tenemos un script y una base de datos de firmas. Ahora vamos a ver qué opciones nos presenta la aplicación:

-R, --remote [URL] Scan remote web page / website
-F, --file [FILE] Scan a specific file
-f, --folder [DIRECTORY] Scan a specific folder
-e, --extensions [ext:ext:ext] The extensions you want to scan
-d, --database [DATABASE] Select database file
-M, --malware [FILE] Specify malware to be removed
-o, --output [LOG-FILE] Output log file
-m, --email [EMAIL-ADDRESS] Send report to email address
-c, --clean [LOG-FILE] Clean infected files
-b, --backup Backup infected files
-r, --restore [BACKUP-FOLDER] Restore the infected files
-a, --auto-clean Enable auto clean mode
-D, --debug Enable debugging mode
-q, --quiet Enable quiet mode
-s, --send [MALICIOUS-FILE] Send malicious file for analyzes
-U, --update Update iScanner to latest version
-u, --update-db Update signatures database only
-v, --version Print version number
-h, --help Show this message

En vista de las opciones vemos que iScanner nos ofrece, escaneo de URL's remota, y ficheros locales, filtrando por extensiones y envío de informes por correo electrónico. En el trato de los ficheros infectados, permite realizar copias de seguridad, restaurar la copias, borrado de contenido malicioso y envío de los ficheros malicioso por correo electrónico. Además de esto nos ofrece la actualización de las firmas a través de la aplicación.

Observando la base de datos de firmas, vemos que se trata de expresiones regulares con la siguiente forma:

El fichero de firmas en la versión recién instalada vemos que contiene 18 firmas. Por tanto lo primero es actualizar la base de datos de firmas con:

$ ./isanner -u

En nuestro caso nos actualiza las firmas a las versión 0.1.8

Starting iScanner 0.6 on [localhost] at (Tue Sep 7 18:33:07 2010)
Copyright (C) 2010 iSecur1ty

[*] Connecting to the server, please wait...
[*] iScanner's database successfully updated to version [0.1.8].

[*] Check out: iCommander, A Command and Control Centre lets you manage
multiple servers from one place.

[-] Exiting iScanner...

Actualizada las base de datos de firmas, probamos a realiza un primer escaneo de la página web "www.pentester.es" a ver qué resultado obtenemos:

$ ./iscanner -R http://www.pentester.es

Starting iScanner 0.6 on [localhost] at (Tue Sep 7 18:38:04 2010)
Copyright (C) 2010 iSecur1ty

[*] Opening: http://www.pentester.es
[*] Scanning "www.pentester.es-18:38:11-07.Sep.html". (db:0.1.8 - 07/Jun/2010)

[!] Scanned file: www.pentester.es-18:38:11-07.Sep.html
Signature: [id:2.0] (<\/script>)
Description: Javascript 'unescape' function detected, possible obfuscated malicious code.


[*] Scan finished in (7) seconds, [1] infected files found.
Please check "infected-18:38:04-07.Sep.log" for details.

Vemos como ha salto una de las firmas porque ha detectado la función unescape y viendo el código "volcado" al fichero www.pentester.es-18:38:11-07.Sep.html se puede observar como no es malicioso, tratándose del código para google-analytics. Esta misma operación la podemos realizar sobre un fichero pasado por argumento como un directorio.

Después de haber realizado diferentes pruebas hemos llegado a las siguiente conclusiones preliminares:
  • La herramienta aún tiene un largo camino que recorrer en cuanto a firmas se refiere, siendo por el momento insuficiente, para la gran cantidad de variedad de malware en la web que nos podemos encontrar.
  • Si os ha pasado como a nosotros que esperábamos que fuera una herramienta para monitorización de malware un poco más completa, deciros que no ofrece crawling web para realizar un escaneo de manera remota, cosa que bajo nuestro punto de vista es necesario si queréis monitorizar un dominio. Este punto podría ser realizado de manera externa por aplicación que haga crawling y le pase los resultados a iscanner, quizá sea como han pensado dicha herramienta.
  • Para lo que parece estar más orientada por el momento la herramienta y por eso puede ofrecer la funcionalidad de borrado de malware, es para analizar nuestro propia aplicación de manera local en nuestro propio servidor Web.
  • Las firmas son bastante genéricas por lo que nos han generado falsos positivos sobre páginas web analizadas. Solo hemos comentado pentester.es, pero han habido otros casos de falsos positivos. Debemos ser muy cautos si ponemos la funcionalidad de eliminación del malware a trabajar.
De todos modos, este es el estado de iScanner en su versión 0.6, y nuestra humilde opinión . Esperemos estar pronto con nuevas versiones y funcionalidades nuevas, etc. ¿Alguien conoce alguna alternativa a iScanner? ¿Experiencias con iScanner?

4 comentarios :

hecky dijo...

jeje Justo eso iba a prenguntar...Si conocia alguna alternativa??

Esperemos tenga mas cogida iscanner por que asi lo actualizaran mas.

Saludos ;)

José Miguel Holguín dijo...

@hecky,

La verdad es que esperemos que la herramienta evolucione y podamos disponer de una muy buena herramienta en un tiempo. La verdad es que es algo complejo y requiere su tiempo.

Lo dicho, si alguien conoce una alternativa que diga algo :D.

Un saludo.

Sergio dijo...

Lo veo un poco pobre. Yo utilizo a veces Skipfish http://code.google.com/p/skipfish/

Unha herramienta de prueba heuristica

Pero estoy buscando tambien alternativas, asi que si surge alguna estare atento ;)

Anónimo dijo...

Muy buen articulo, eso si debo aceptar que es un poco avanzado para lo que suelo manejar, de todos modos les dejo este enlace http://pydot.com/dominios/malware.php, yo tengo mi pagina alojada alli y ellos realizan el trabajo por mi :)
Se los dejo para que lo prueben.
Saludos. Marina