"Security & Pure Forensics"

.

martes, 7 de enero de 2014

Artefactos Forenses (II) Prefetch y Windows 8



Cada vez que encendemos el ordenador, Windows realiza un seguimiento de la forma en que se inicia el equipo y los programas que se abren o utilizan habitualmente. Para ello el sistema guarda esta información en una serie de archivos en la carpeta Prefetch  de modo que la próxima vez que se encienda el equipo, Windows iniciará estos archivos para acelerar el proceso de inicio.

Podríamos decir que es una super-cache de datos, librerías y aplicaciones.

No es necesario eliminar ni vaciar su contenido. Si vaciamos la carpeta los programas tardarán más en abrirse la próxima vez que encienda el equipo.

Esta carpeta ha sido reconocida como un artefacto útil en la comunidad forense y hay algunas herramientas existentes para analizar los ficheros 'pf'. Las características que ofrece entre otras, son la última fecha de ejecución de un programa y el número de veces que se ha ejecutado. 


Ejemplo de Winprefetchview de nirsoft.com


Pero hay más que eso, ¡Mucho más! El archivo 'pf' también registra información sobre el disco, el número de serie  y la marca de tiempo de creación de la unidad. Esta información se almacena para todos los volúmenes y es muy útil para encontrar números de serie de las unidades externas utilizadas para poner en marcha las aplicaciones o para descubrir los archivos que han sido abiertos desde el propio dispositivo o disco duro externo.

El funcionamiento básicamente consiste en que el servicio "Programador de tareas" (que se ejecuta bajo 'svchost') se utiliza (entre otras cosas) para grabar páginas de memoria que son utilizadas con frecuencia por las aplicaciones, así de esta forma cuando se pone en marcha un programa, durante los primeros diez segundos, esta es monitorizada por el "Windows cache manager" y el resultado de esta información se escriben en un archivo PF cuyo nombre tendrá la nomenclatura "programa.extension-HASH.pf".

El hash es un número de 32 bits, representado en hexadecimal y se ve como por ejemplo "WRITE.EXE-A606B53C.pf". Este hash se calcula a partir de la ruta completa de la aplicación que será de la forma:

\\Device\\HarddiskVolume1\\WINDOWS\\system32\\WRITE.EXE

Por lo tanto desde el punto de vista forense una aplicación ejecutada en el sistema operativo deja rastro.

LAYOUT.INI

El resultado del procesado del programador de tareas se almacena en un archivo de nombre 'Layout.ini' en el mismo directorio Prefetch, y este fichero a su vez es utilizado por el desfragmentador de disco, dándole instrucciones para reordenar los archivos en posiciones secuenciales en el disco. Por lo tanto si desaparece este archivo nos vamos a encontrar que no funciona correctamente el defragmentador.



Ejemplo del fichero Layout.ini


ESTRUCTURA

Y observando los offset y cabeceras con un editor nos encontramos con la siguiente estructura:


Por otro lado la clave del registro que se identifica con prefetch es:

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters

WINDOWS 8

Windows 8 aún utiliza el mismo algoritmo para el cálculo del hash y la estructura del archivo de PF es aún la misma. El único cambio parece ser la adición de siete nuevas marcas de tiempo. Esto se debe a que ahora en el archivo se almacena la fecha y hora de las últimas ocho veces que se ejecuta la aplicación.

ESTRUCTURA


¿EN QUE PODEMOS UTILIZAR PREFETCH?

Particularmente es muy útil para temas de propiedad intelectual, con este sistema y diversas aplicaciones como la de nirsoft, podemos saber si una persona ha instalado y utilizado un determinado programa. Tuve un caso concreto de copias piratas con AUTOCAD y aunque la empresa negaba la existencia, las evidencias del directorio prefetch fueron muy claras a ese respecto. Evidentemente esto es solo una parte.

Otro caso concreto fue la utilización de prefetch para descubrir fugas de datos o ficheros que se han abierto desde dispositivos externos y ya por último, aunque algo más burdo es posible descubrir la utilización de malware y/o programas espías, así como documentos eliminados que hubieran estado en cualquier dispositivo.





Ejemplo de  descubrimiento del troyano VANQUISH

Por lo tanto en un análisis forense es muy aconsejable la utilización de esta carpeta para la búsqueda de evidencias.

Referencias:

http://www.forensicswiki.org/wiki/Windows_Prefetch_File_Format
https://googledrive.com/host/0B3fBvzttpiiSbl9XZGZzQ05hZkU/Windows%20Prefetch%20File%20(PF)%20format.pdf

2 comentarios:

Hola,
Que software usaste para ver el código del fichero .pf en hexadecimal?
Gracias
Buen BLOG!

Y como ves la FECHA de instalación de un programa?? en tu caso con el Autocad como comentabas?