Análisis forense de ficheros de hibernación Microsoft Windows

Hola,

Tener la posibilidad de cerrar la tapa del portátil y encontrarnos las cosas como estaban al volver a abrir la tapa es una gran ventaja para muchas personas. Desde la aparición de Windows 2000, el sistema operativo de Redmond soporta una función que casi todos hemos empleado en alguna ocasión: la suspensión de estado a disco, o hibernación.

La hibernación en el nivel de sistema operativo tiene como principal ventaja no requerir drivers adicionales. Técnicamente hablando también es frecuente encontrar en la literatura referencias al estado de hibernación como ACPI S4 (Advanced Configuration and Power Interface). Este estándar abierto, cuya primera versión data de 1996, fue escrito originalmente por Intel, Microsoft, y Toshiba. En síntesis, y para equipos Microsoft, el estado ACPI S4 se traduce, en términos prácticos, en la creación de un fichero oculto llamado hiberfil.sys, cuyo tamaño total es siempre equivalente a la cantidad de RAM de la máquina. La hibernación sólo es posible si todo el hardware de la máquina cumple con los requisitos ACPI y Plug-and-play, debiendo ser los drivers compatibles con PnP.

hiberfil.sys

Este fichero no es más que una imagen de la memoria de la máquina comprimida con un algoritmo que nunca ha sido publicado … hasta que alguien encontró la manera de manipular estos ficheros.

Accediendo y manipulando ficheros de hibernación. La manera elegante

La manera elegante (y a su vez, adecuada) para analizar ficheros de hibernación es la transformación en volcados forenses que podamos utilizar en nuestras herramientas habituales. La primera referencia sobre cómo realizar esta tarea es obra de Matthieu Suiche, autor en 2008 de una charla BlackHat llamada Windows Hibernation File for Fun and Profit en la que ofreció detalles acerca de cómo manipular este tipo de ficheros. Suiche, como parte de su proceso de investigación, realizó ingeniería inversa y dedujo cómo estaban comprimidos los ficheros hiberfil.sys. También, como parte del proceso de investigación, Suiche liberó las herramientas Sandman para poder manipular los ficheros de hibernación.

Lo que en su día fue Sandman es hoy en día Moonsols Windows Memory Toolkit, que tiene una versión comercial y una versión community que podéis descargar y usar. Dentro del juego de herramientas hay una aplicación llamada hibr2bin que puede ser utilizada para la conversión.

hibr2bin

También es posible convertir ficheros de hibernación a una imagen cruda empleando Volatility, que dispone de un módulo llamado hibinfo basado en el código de Suiche. Este módulo permite generar una imagen legible a partir del fichero de hibernación.

volatility

Una vez obtenida una imagen lineal, es trivial analizar los contenidos. Ya que hemos hablado de Volatility, ojead este artículo para tomar alguna idea sobre cómo realizar el análisis. También podéis ojear los contenidos de este otro artículo.

Strings en Unix. Una manera rápida de evaluar los contenidos de los ficheros de hibernación.

Si lo que queremos es hacer una evaluación rápida de los posibles contenidos del fichero, sin tener que generar una imagen legible, es posible buscar en los contenidos del fichero una vez extraídas las cadenas.

Estos son algunos ejemplos de los contenidos de mi fichero de hibernación:

Algunos usuarios y servicios de red:

usuarios

Credenciales de Filezilla:

filezilla

Administrador de router, contraseña y contraseña wireless:

router

¿Cómo solucionar el problema?

Aunque la hibernación es una funcionalidad que se puede desactivar, el primer pensamiento que nos puede venir a la mente para protegernos ante la recuperación indeseada del estado de hibernación quizás sea el cifrado completo del disco. Esto, que dicho sobre el papel suena fácil, es en realidad un problema difícil de solucionar. Habida cuenta de que Microsoft no proporciona APIs para manipular el proceso de hibernación, los procesos de cifrado de este fichero se basan (con la excepción de BitLocker, cifrado nativo de Microsoft) en la modificación de componentes de Windows que no están documentados, con lo que ante cualquier cambio por parte del fabricante los medios escogidos para el cifrado podrían tornarse inútiles. La situación de ventaja que tiene BitLocker sobre otros medios es un tema que sigue suscitando polémica, y que sigue sin estar plenamente resuelta.

Un saludo,

6 comentarios sobre “Análisis forense de ficheros de hibernación Microsoft Windows

  1. mpena,

    Gracias por la actualización. No era consciente de que se habían empezado a dar los pasos necesarios para que ese API esté disponible para los fabricantes.

    Es una pena no obstante que no de cobertura a todas las versiones de Windows (sólo Vista y posteriores). Pero es mejor que nada :)

    Saludos, y gracias por la puntualización.

  2. Buen art�culo Sergio.

    La �nica duda que me queda es si la �ltima versi�n del TrueCrypt soporta el cifrado del archivo de hibernaci�n.
    Seg�n lo expuesto en el «history» del mismo entiendo que si:

    In response to our public complaint regarding the missing API for encryption of Windows hibernation files, Microsoft began providing a public API for encryption of hibernation files on Windows Vista and later versions of Windows (for more information, see the section TrueCrypt 5.1a in this version history). Starting with this version 7.0, TrueCrypt uses this API to encrypt hibernation and crash dump files in a safe documented way. (Windows 7/Vista/2008/2008R2)

Comentarios cerrados.