Análisis forense de plataformas Windows: Tecnologías de aceleración y precarga (Prefetcher y SuperFetch)

Prefetcher es un componente de plataformas Microsoft Windows aparecido originalmente en Windows XP. Uno de los comentarios más frecuentes cuando apareció XP, desde el punto de vista de la usabilidad, tenía que ver con la rapidez en la carga del sistema y las aplicaciones frente a las versiones anteriores de Windows. Esta aceleración se debe en parte a Prefetcher, un componente que según han ido sucediéndose las versiones de Windows, ha ido variando en las implementaciones. Así, por ejemplo, con la llegada de Windows Vista se incorporó SuperFetch, cuyo funcionamiento se basa en la monitorización del uso de los programas para adaptar el proceso de aceleración de carga cargando en memoria los elementos más accedidos por el patrón de uso del usuario. También con Vista se introdujo un componente llamado Readyboost, principalmente para para soportar SuperFetch ofreciendo un caché adicional de operación en disco empleando medios de almacenamiento masivos, aunque no trataremos esta tecnología en este artículo.
Tanto como para Prefetcher como para SuperFecth, el fundamento es exactamente el mismo: cuando se carga el sistema, como es lógico, un determinado número de ficheros es accedido y sus contenidos son cargados en la memoria. Dada la arquitectura del sistema, es frecuente que los mismos ficheros sean accedidos numerosas veces, lo que ralentiza la carga. La tecnología de prefetching observa el patrón de acceso descrito, graba la secuencia empleada y reutiliza la información para tratar de realizar una carga óptima del sistema en sucesivos encendidos del sistema. Los cambios suelen captarse demorando el proceso de monitorización al evento que culmine en primera instancia, entre la carga de la shell de usuario o el tiempo completo de carga del sistema, siendo el proceso similar para la captación de trazas de carga de aplicaciones.

Técnicamente, para cada aplicación o proceso del sistema sometido a prefetching, se genera un fichero .pf que incluye las referencias a los ficheros y directorios que dicha aplicación utilizó en la carga. Adicionalmente, el fichero tendrá la huella temporal de la última ejecución de la aplicación o proceso seleccionado. El resultado para el usuario es un sistema que carga más rápido, lo cual agradecerá. Para el analista forense, el resultado es otra fuente más de información valiosa, especialmente para descubrir trazas de uso y eliminación de aplicaciones por parte de los usuarios, lo cual, también se agradece. Este artículo se centrará en el análisis de Prefectcher para Windows XP.

Inspección de Prefetcher

La configuración de Prefetcher se almacena en la siguiente llave del registro:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory ManagementPrefetchParameters

Para acceder a dicha llave pueden utilizar cualquier herramienta de acceso al registro, y verificar su valor. Por defecto, el valor será 3, lo que implica que el prefetching está activo para el sistema y las aplicaciones.

Una vez verificado el valor, podemos acceder a los contenidos de Prefetcher, ya que están ubicados en el directorio del sistema. Por defecto, y suponiendo que el sistema tiene la unidad lógica C: asignada, la ubicación será C:WINDOWSPrefetch. Algunos ejemplos son, para mi máquina Windows, las siguientes entradas de Firefox y Keepass:

shernando@hpsergio-linux:/media/0A8C1FAF8C1F9473/WINDOWS/Prefetch$ ls -la | grep FIREFOX
-rw------- 2 shernando shernando  127612 2010-11-02 19:04 FIREFOX.EXE-24B8FB1A.pf
shernando@hpsergio-linux:/media/0A8C1FAF8C1F9473/WINDOWS/Prefetch$ ls -la KEEPASS.EXE-35620CED.pf
-rw------- 2 shernando shernando 108848 2010-11-02 17:38 KEEPASS.EXE-35620CED.pf

Es posible explorar los contenidos del fichero, para obtener información adicional que puede resultar útil en la investigación. Hay muchas herramientas que permiten leer los contenidos de los ficheros .pf, si bien es habitual emplear Prefetch Parser, Windows File Analyzer, prefetch-tool o WinPrefetchView.

Así, para el caso de Firefox, según prefetch-tool se obtiene que ha sido ejecutado 62 veces con la huella temporal que se muestra. Nótese la diferencia respecto a la consulta anterior, ya que la efectuada en Linux correspondía con el sistema sin cargar, mientras que los de prefetch-tool corresponden con el sistema en ejecución en el momento de escribir el artículo.

Analyzing 21 of 129 files
Filename: firefox.exe-24b8fb1a.pf
MD5: 1b856921749e18e225b4f4ac5cf538d5
SHA1: da39a3ee5e6b4b0d3255bfef95601890afd80709
Last accessed time: Sat Nov 06 20:16:24 2010
Last modified date: Sat Nov 06 21:16:29 2010
File creation date: Sun Sep 05 20:57:07 2010
Total number of runs: 62

Mediante WinPrefetchView o Prefetch Parser es posible conocer también el nombre de los ficheros accedidos por la aplicación en la inicialización, así como la ruta mapeada en Prefetcher, lo que servirá para localizarlos en el proceso de carga. Para Firefox estos son algunos ejemplos:

FIREFOX.EXE-24B8FB1A.pf DEVICEHARDDISKVOLUME1WINDOWSSYSTEM32 NTDLL.DLL
FIREFOX.EXE-24B8FB1A.pf DEVICEHARDDISKVOLUME1WINDOWSSYSTEM32 KERNEL32.DLL
FIREFOX.EXE-24B8FB1A.pf DEVICEHARDDISKVOLUME1WINDOWSSYSTEM32 UNICODE.NLS
FIREFOX.EXE-24B8FB1A.pf DEVICEHARDDISKVOLUME1WINDOWSSYSTEM32 LOCALE.NLS
FIREFOX.EXE-24B8FB1A.pf DEVICEHARDDISKVOLUME1WINDOWSSYSTEM32 SORTTBLS.NLS

Resumen

En el proceso de investigación de un sistema Windows, a la hora de componer la línea temporal de eventos o para conocer la actividad del usuario, puede resultar de utilidad la consulta de los contenidos de Prefetcher. No sólo para saber qué elementos ha ejecutado, o el número de veces que han sido ejecutados, sino para tener información certera sobre la huella temporal.

La mayoría de los usuarios estándar de plataformas Windows ni tan siquiera conoce la utilidad de Prefetch, ni dónde se ubican los ficheros. Es por tanto que en la mayoría de los casos este directorio está repleto de información (existe una limitación, sólo se almacenan 128 entradas) que podemos explotar para el proceso forense. Teniendo en cuenta el desconocimiento de estas tecnologías, no es de extrañar que la mayoría de aplicaciones de gestión de privacidad eliminan los contenidos del directorio de prefetching en su proceso de limpieza. Existe un motivo claro para hacerlo.

Visto | Sergio Hernando

Es posible explorar los contenidos del fichero, para obtener información adicional que puede resultar útil en la investigación. Hay muchas herramientas que permiten leer los contenidos de los ficheros .pf, si bien es habitual emplear Prefetch Parser, Windows File Analyzer, prefetch-tool o WinPrefetchView.

Así, para el caso de Firefox, según prefetch-tool se obtiene que ha sido ejecutado 62 veces con la huella temporal que se muestra. Nótese la diferencia respecto a la consulta anterior, ya que la efectuada en Linux correspondía con el sistema sin cargar, mientras que los de prefetch-tool corresponden con el sistema en ejecución en el momento de escribir el artículo.

Analyzing 21 of 129 files
Filename: firefox.exe-24b8fb1a.pf
MD5: 1b856921749e18e225b4f4ac5cf538d5
SHA1: da39a3ee5e6b4b0d3255bfef95601890afd80709
Last accessed time: Sat Nov 06 20:16:24 2010
Last modified date: Sat Nov 06 21:16:29 2010
File creation date: Sun Sep 05 20:57:07 2010
Total number of runs: 62

Mediante WinPrefetchView o Prefetch Parser es posible conocer también el nombre de los ficheros accedidos por la aplicación en la inicialización, así como la ruta mapeada en Prefetcher, lo que servirá para localizarlos en el proceso de carga. Para Firefox estos son algunos ejemplos:

FIREFOX.EXE-24B8FB1A.pf DEVICEHARDDISKVOLUME1WINDOWSSYSTEM32 NTDLL.DLL
FIREFOX.EXE-24B8FB1A.pf DEVICEHARDDISKVOLUME1WINDOWSSYSTEM32 KERNEL32.DLL
FIREFOX.EXE-24B8FB1A.pf DEVICEHARDDISKVOLUME1WINDOWSSYSTEM32 UNICODE.NLS
FIREFOX.EXE-24B8FB1A.pf DEVICEHARDDISKVOLUME1WINDOWSSYSTEM32 LOCALE.NLS
FIREFOX.EXE-24B8FB1A.pf DEVICEHARDDISKVOLUME1WINDOWSSYSTEM32 SORTTBLS.NLS

Resumen

En el proceso de investigación de un sistema Windows, a la hora de componer la línea temporal de eventos o para conocer la actividad del usuario, puede resultar de utilidad la consulta de los contenidos de Prefetcher. No sólo para saber qué elementos ha ejecutado, o el número de veces que han sido ejecutados, sino para tener información certera sobre la huella temporal.

La mayoría de los usuarios estándar de plataformas Windows ni tan siquiera conoce la utilidad de Prefetch, ni dónde se ubican los ficheros. Es por tanto que en la mayoría de los casos este directorio está repleto de información (existe una limitación, sólo se almacenan 128 entradas) que podemos explotar para el proceso forense. Teniendo en cuenta el desconocimiento de estas tecnologías, no es de extrañar que la mayoría de aplicaciones de gestión de privacidad eliminan los contenidos del directorio de prefetching en su proceso de limpieza. Existe un motivo claro para hacerlo.

Deja una respuesta

Seguridad

10 buenas prácticas con las que tu amigo techie te puede ayudar

Para nosotros, un techie es una persona con profundo interés en la tecnología y su funcionamiento como parte de la vida. Dentro de esta categoría no solo pueden entrar los fanáticos de los gadgets, sino también gente que trabaja en TI y soporte de infraestructuras, o técnicos de PC, por ejemplo. En suma, los techies […]

Read More
Seguridad

Herramientas gratuitas para fortalecer tu privacidad en Internet

Seguramente en reiteradas ocasiones has escuchado hablar de la privacidad en línea, pero más allá de las alternativas más comunes como un navegador incógnito, ¿te has puesto a pensar cuál es tu expectativa de privacidad? ¿Qué tanto la proteges en realidad? A raíz de la encuesta sobre privacidad en Internet que desde ESET Latinoamérica elaboraron el mes pasado, […]

Read More
Seguridad

Seguridad empresarial más efectiva

Según Gartner, las herramientas de defensa tradicionales fallan en proteger a las empresas de ataques focalizados y malware avanzado. En 2013, las empresas gastarán más de US$ 13.000 millones en firewalls, sistemas de detección de intrusiones (IPSs), plataformas de protección de terminales y gateways de Web seguros. Con todo, los ataques focalizados avanzados (advanced targeted […]

Read More
Verificado por MonsterInsights