lunes, 8 de febrero de 2016

Analizando malware (archivos PE y Biblioteca de enlace dinamico)

Continuando con el análisis de malware, un aspecto importante en la parte de análisis estático es el formato del archivo. Un formato muy utilizado es PE (Portable Executable),  es un formato de archivo para los archivos ejecutables , código objeto , DLLs , archivos FON Font,  y otros utilizados en las versiones de 32 bits y 64 bits de  sistemas operativos Windows. El formato PE es una estructura de datos que encapsula la información necesaria para el cargador del sistema operativo Windows para gestionar el código ejecutable. Esto incluye las referencias de biblioteca dinámicas de vinculación , la API de exportación e importar tablas, datos de gestión de recursos y el almacenamiento local de subprocesos de datos (TLS).

Parte de la información que puede extraerse para el análisis, es la importación de código de librerías o bibliotecas de otros programas que son ejecutadas por el malware mediante la vinculación La forma de vinculación de librerías suele hacerse de 3 formas:


  • Vinculación de manera estática: Este tipo de vinculación es poco utilizada, pues implica la incorporación de todo el código de cada librería, lo cual incrementa el tamaño del ejecutable      
  • Vinculación en tiempo de ejecución. Este otro tipo de vinculación utilizado por el malware , mantienen la ejecución del programa limpia y conectan con las librerías en tiempo de ejecución , únicamente cuando es necesaria alguna función. Suele encontrarse funciones del tipo LoadLibrary y GetProcAddress  
  • Vinculación dinámica: Es el tipo de vinculación mas utilizado por el malware, al igual que en la vinculación en tiempo de ejecución, se encuentran funciones del tipo LoadLibrary y GetProcAddress, en el encabezado del archivo PE, se puede encontrar información de todas las librerías que serán cargadas, así como cada funcion que sera utilizada por el malware.     
Esa información puede proporcionarnos una idea de tipo de acciones estara realizando el malware sobre el sistema. Para explorar las librerías podemos utilizar Dependency Walker.  


Imagen 1: Librerías en malware Guabit.

 Para saber que hace cada librería, se puede buscar la documentación de cada una.

  • GDI32: Esta librería contienen funciones para la manipulación de gráficos.
  • Kernel32:  Esta librería es muy importante, pues permite el acceso y la manipulación de memoria, archivos y hardware.
  • ADVAPI32: Esta librería proporciona acceso y manipulación al registro de Windows.
  • WSOCK32: Permite la utilización de funciones de red.
En el malware que desarrollamos con anterioridad, estas librerias ya nos dan la pauta que el malware altera el registro de Windows, puede realizar conexiones de red y puede manipular memoria, archivos y hardware.

Saludos.
Lexer Pars.

No hay comentarios:

Publicar un comentario