28 de abril de 2009

Analisis de malware

Hace algunos días, en vista de la cantidad tan grande de infecciones que tenían los clientes de mensajería instantánea de mis contacto, se me ocurrió que sería buena idea hacer un análisis superficial de lo que estos programas hacen y sobre todo, de si es que los antivirus los detectaban o no.

Bueno, sucedió que en un lapso de dos días alcancé a bajar 5 de estos programas (se me pasaron 2 que ya no alcancé a bajar a la computadora).

El segundo paso consistió en analizarlos con una buena cantidad de antivirus. Para esto usé la herramienta virustotal, que es un portal (me parece que español), en el que se analizan los archivos que los usuarios vayan subiendo. El análisis es realizado por 40 antivirus.

A continuación están los nombres de los archivos (como los descargué), así como una liga hacia el reporte del análisis realizado por estos 40 antivirus.
Si miramos con detenimiento, justo antes del comienzo del bloque de reportes de los antivirus encontraremos el porcentaje de los AVs que detectaron el binario como un problema.
  • cc.exe (7 de 40 = 17.50%)
  • fada.exe (13 de 39 = 33.33%)
  • ffoottoo.exe 3 de 40 = 7.5%)
  • ush.exe (5 de 40 = 12.50%)
  • YEP.exe (14 de 40 = 35%)
En realidad es bajo el número de antivirus que tienen a estos binarios registrados como peligrosos.

A continuación podemos ver los reportes de cada antivirus, algunos hacen la detección como troyanos, otros coo si fueran backdoors o simplemente malware o spyware.

Más abajo viene un bloque llamado de "Información adicional" en el que se imprimen las salidas de los hashes md5, sha1, etc. Esto se utiliza para obtener una manera verificar que el binario en particular no sea alterado.

Después viene un bloqe muy interesante, cuya primera línea comienza con TrID:... File type identification. Pues es aquí en donde en base a una herramienta llamada trid, se trata de llevar a cabo una identificación del tipo de archivo del que se trata.
En este caso vemos que con mucha probabilidad hablamos de un ejecutable.

Una forma más cercana que tenemos de indentificar qué tipo de archivo es el que tenemos en las manos es con una herramienta conocida genéricamente como editor hexadecimal. En este cao utilicé uno llamado Hex Workshop. Lo interesante es que en algún lugar del archivo (generalmente al inicio), se encuentr declarado el tipo de archivo. Aquí abajo hay algunos ejemplos, con su correspondiente tipo resaltado:

Fig 1. Un archivo ejecutable. Note el MZ al inicio


Fig 2. Un achivo jpg.
Fig 3. Un archivo pdf.

Fig 4. Un archivo bz2.

De ahí, se describe la estructura del Portable executable (PE): De aquí, la parte interesante es la que habla de los imports, pues es en donde se puede ver todos los archivos de bibliotecas que manda a llamar durante su ejecución, así como las funciones que requiere de cada uno de ellos.

Otra opción que tenemos es la de ver las cadenas de texto, ya sea ASCII com Unicode que vengan contenidas.

Esto al menos, sirve como un indicio de qué es lo que puede hacer el programa.