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,
HKLMSoftware 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 carpeta | BITS | Descripción |
System32 | 64 | Carpeta del sistema de Windows (directorio del sistema) para archivos de 64 bits |
SysWOW64 | 32 | Carpeta del sistema de Windows (directorio del sistema) para archivos de 32 bits |
Archivos de programa | 64 | Carpeta para los archivos de programa de 64 bits |
Archivos de programa (x86) | 32 | Carpeta 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
'Win32malware.exe', el sistema operativo 'se percata' y de forma transparente redirigió a
'C:WindowsSysWOW64malware.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
'HKLMSOFTWAREWow6432Node'. 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)
'SOFTWAREWow6432NodeMicrosoftWindowsCurrentVersionRun'
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