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
Publicar un comentario