Análisis de Malware 2. El formato PE.
Disclaimer: Manipular muestras de malware es una actividad peligrosa que puede poner en riesgo nuestros equipos y nuestra propia seguridad. Existen recursos (libros, tutoriales, blogs...) para iniciarse con confianza.
 
 Imagen CC. Fuente Reddit
 Portable Executable es un formato de archivos ejecutables (EXE) y de librerías dinámicas (DLL), entre otros, en Windows de 32 y 64 bits.

 El PE alberga todas las estructuras necesarias para que Windows administre el código ejecutable, importe las librerías y funciones precisas y ,en definitiva, haga funcionar el binario.

Un formato similar, pero en Android sería el conocido APK (Android Application Package), en el que se codifican las apps que descargamos en los móviles con dicho sistema operativo.

La siguiente tabla, al igual que la imagen, nos muestra lo que podemos encontrar en cada sección principal.



Sections of a PE File for a Windows Executable



.text                            Contains the executable code

.rdata                       Holds read-only data that is globally accessible within the program

.data                        Stores global data accessed throughout the program

.pdata                     Present only in 64-bit executables and stores exception-handling information

.rsrc                       Stores resources needed by the executable

.reloc                     Contains information for relocation of library files


.idata              Sometimes present and stores the import function information; if this section is

                              not present, the import function information is stored in the .rdata section

.edata              Sometimes present and stores the export function information.

Para examinar estas informaciones en el interior de un archivo ejecutable necesitamos un visor. PEview es uno de los más básicos para iniciarse.


Tras ejecutar el programa y abrir el fichero sospechoso iniciaríamos el denominado análisis estático. Puesto que estudiaríamos el fichero sin ejecutarlo (sin infectar nuestra Sandbox = Caja de arena, entorno virtual aislado de nuestro equipo).

En nuestro caso abrimos el inocente fichero calc.exe que podemos encontrar en la carpeta de Windows.


 El primer dato interesante es la fecha de realización. Esto nos puede orientar. Si el malware tiene un tiempo es fácil que este registrado en las bases de datos de Virus total o AV Caesar. Si es muy reciente puede que sea desconocido y por ello más peligroso.
Los desarrolladores de malware con conocimientos pueden manipular este dato, por lo que debemos considerarlo con prevención.


Un dato que no se puede manipular es la memoria virtual asignada a una sección y la cantidad de datos en crudo. Es normal que haya una pequeña diferencia, si es elevada hay que pensar en técnicas de ocultación, empaquetado, cifrado...mayor peligrosidad.

Comentar que estos datos están expresados en hexadecimal. Si es necesario revisad entrada de Matemáticas Aplicadas ;D



Dentro de las distintas secciones del programa se nos presenta el volcado de memoria (en hexadecimal) y sus correspondientes valores. A menudo se encuentran cadenas de texto muy reveladoras. En este caso ya sabemos que se trata de la calculadora de Windows.


 En la sección de recursos nuevas cadenas de texto muestran direcciones web. Es posible que el ejecutable se conecte con un servidor externo; esto en el caso de un malware sería muy mala señal.

Nos quedaría por ver la importante tabla de importación, aspecto que analizaremos en una próxima entrada ya con un malware real.

Comentarios

Entradas populares