30 jul. 2014

Consideraciones forenses en 32 y 64 bits

Desde mediados de los años 90 casi todos los ordenadores que se han vendido, han sido con equipos con arquitectura de 32 bits, y en su mayoría han venido preinstalado con Windows. Después del lanzamiento de Windows 7, las ventas de equipos con Windows de 64 bits han aumentado considerablemente.

El precio de un ordenador con arquitectura de 64 bits ha disminuido tanto que son casi tan baratos como equipos de 32 bits. Y la gente preferirá equipos de 64 bits ya que puede manejar mucho más memoria (RAM).

Un equipo de 32 bits con Windows de 32 bits (valga la redundancia) puede usar un máximo de 3 a 4 GB (RAM) de memoria, sobre todo en torno a 3 GB, debido a que una gran parte del espacio de direcciones es usado por las tarjetas de vídeo y otros dispositivos tales como tarjetas de red, tarjetas de sonido, etc. Con los ordenadores de 64 bits se puede manejar mucha más memoria RAM como por ejemplo 192 GB.

En el momento de evolución de Windows 32 a 64 muchas cosas se han ido adaptando en la arquitectura del sistema operativo, muchas de ellas evidentemente no se ven por su implantación y otras están a simple vista como las carpetas del sistema operativo.

SYSTEM32 vs SysWOW64

Lo que voy a decir puede llevar a la confusión, pero son definiciones dadas por el propio Microsoft.

Aunque parezca lo contrario, la carpeta System32 está destinada a archivos de 64 bits y la carpeta SysWOW64 está diseñada para archivos de 32 bits. Aunque esto puede no parecer lógico, tiene que ver con la compatibilidad de los programas y programadores de aplicaciones.

Cuando se ejecuta una aplicación de 32 bits en un entorno de 64 bits, se produce un redireccionamiento de forma transparente siempre y cuando la aplicación intente acceder al directorio SYSTEM32 o al registro de Windows. Este redireccionamiento lo implementa una capa de compatibilidad llamada WOW64.

WOW64 es una abreviatura de "Windows on Windows 64-bit" (se puede leer como "Windows de 32 bits en Windows de 64-bit"). Es un emulador que permite a las aplicaciones basadas en Windows de 32 bits se ejecuten sin problemas en Windows de 64 bits.

Para implementar esto, WOW64 intercepta todas las llamadas al sistema de las claves de registro abiertas y reescribe la ruta para que apunte a dos ramas del registro, como son, HKLM\Software y HKEY_CLASSES_ROOT.

Bajo cada una de estas ramas, WOW64 crea una clave llamada Wow6432Node. En esta clave se almacena la información de configuración de 32 bits Todas las demás partes del Registro son compartidos entre las aplicaciones de 32 bits y de 64 bits (por ejemplo, HKLM y SYSTEM).

Es muy importante que un archivo compilado a 32 bits o 64 bits se instale en la carpeta de sistema correcto. De lo contrario, el programa que necesita el archivo no será capaz de cargar el archivo y probablemente no funcione como se espera.

Dos versiones, dos carpetas y una ejecución transparente

A modo de recordatorio:
Nombre de la carpetaBITSDescripción
System3264Carpeta del sistema de Windows (directorio del sistema) para archivos de 64 bits
SysWOW6432Carpeta del sistema de Windows (directorio del sistema) para archivos de 32 bits
Archivos de programa64Carpeta para los archivos de programa de 64 bits
Archivos de programa (x86)32Carpeta para los archivos de programa de 32 bits

¿Esto es un problema en el ámbito forense?

Puede que sí, puede que no. Veamos un caso concreto:

Supongamos que tenemos un malware de nombre 'malware.exe' y que tiene el siguiente hash:
41d8cd98f00b204e9800998ecf8427e

Ahora vamos a copiar el fichero a las carpetas SYSTEM32 y SysWOW64.

Una vez copiados calculamos sus huellas y efectivamente vemos que coinciden, pero he aquí el problema: ¿Que ocurre si copiamos un fichero del mismo nombre y con diferente tamaño?. EL hash debería de ser identico.

Veamos los resultados...

Es el mismo HASH...¿como es posible?.

Efectivamente tenemos un mismo hash en diferentes directorios y con diferentes archivos. ¿Es problema de colisiones MD5?. De ninguna manera, eso debido a que el programa md5sum de 32 bits intentó leer el archivo del directorio 'Win32\malware.exe', el sistema operativo 'se percata' y de forma transparente redirigió a 'C:\Windows\SysWOW64\malware.exe' obteniendo el mismo resultado.

Es decir, pogamos el caso de un malware diseñado para un entorno de 32 bits que se ejecuta en un sistema de 64 bits, esto implicaría que parte de los cambios que se van a producir en el registro se van a realizar en sobre la clave 'HKLM\SOFTWARE\Wow6432Node'. Esto además permitiria falsear la búsqueda en aquellas herramientas forenses de 32 bits en un entorno de 64. Lo cual a su vez falsearía las evidencias en un informe.

Por lo tanto una revisión 'normal' por medio de un análisis forense o bien utilizando indicadores de contenido (IOCs) se saltaría este paso dado que tengamos claro que ocurre una redirección, es decir, tenemos que tener en cuenta que hay que revisar ambos directorios y utilizar herramientas que soporten ambas arquitecturas y por su puesto la siguiente clave (entre otras)

'SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run'

Por lo tanto es indispensable la revisión de estas carpetas y sus contenidos.

¿Se puede automatizar el proceso?

¡¡Por supuesto que tiene solución!!. Una buena herramienta para este análisis es utilizar la herramienta RegRipper, ya que analiza claramente estas carpetas y verifica las ramas del registro anteriormente mencionadas. Por otro lado otra herramienta como Registry Browser permite ver las diferencias en las modificaciones del registro contemplando los métodos de redirecciones.

Lo dicho, no os olvideis de revisar el sistema dependiendo de la arquitectura.

Fuente: Conexión Inversa

0 comentarios:

Publicar un comentario

Gracias por dejar un comentario en Segu-Info
Si vas a dejar una consulta, procura tener habilitado tu perfil en Blogger o deja una forma de contacto.

Gracias por comentar!