jueves, 15 de enero de 2009

Análisis de la funcionalidad "Restaurar sistema"

No hace mucho que analizamos el uso de las "Volume Shadow Copy" en Windows Vista y sus implicaciones relativas al análisis forense de sistemas. Bién, pues ahora analizaremos la funcionalidad "Restaurar sistema" implementada en Windows XP.

La herramienta es accesible desde el entorno gráfico accediendo al menú Inicio, Programas, Accesorios, Herramientas del sistema, Restaurar sistema o desde línea de comandos utilizando el siguiente binario:

%systemroot%\system32\restore\rstrui.exe

Dicha funcionalidad fué incluida por primera vez en Windows ME y se basa en la copia y almacenamiento de todos aquellos ficheros que resulten modificados y que hayan sido configurados para ser monitorizados por el sistema.

Parámetros de configuración

En el directorio %systemroot%\system32\restore se almacenan dos ficheros de configuración íntimamente relacionados con la utilidad "Restaurar sistema":
  • MachineGuid.txt
    Tal y como se indica en la MSDN almacena el GUID que forma parte del nombre de la carpeta repositorio con los diferentes puntos de restauración. Por ejemplo, en mi equipo su contenido es {4C2D1C1B-0CA6-46D8-9188-D4533A60773C}, por lo que el nombre del directorio almacén sería _restore{4C2D1C1B-0CA6-46D8-9188-D4533A60773C}.

  • filelist.xml
    Contiene las directivas que serán utilizadas en la creación de los diferentes puntos de restauración por parte del sistema operativo. También incluye las extensiones para los archivos y directorios cuyos cambios serán monitorizados.

Sin embargo la mayor parte de la configuración se almacena en el registro de Windows, repartida en 3 ramas estando la modificación de dos de ellas desaconsejada por Microsoft. La última sería:
HKEY_Local_Machine\Software\Microsoft\WindowsNT\CurrentVersion\SystemRestore

Los parámetros afectan al tamaño en disco reservado para los puntos de restauración, si la funcionalidad se encuentra habilitada o no para los diferentes volúmenes del sistema, etc.

Contenido y gestión de los puntos de restauración

Como sabemos la característica de restauración del sistema no afecta a los documentos y configuraciones particulares realizadas por los usuarios. Por el contrario los elementos implicados son:
  • Registro de Windows
  • Ficheros protegidos por WFP en el directorio Dllcache
  • Perfiles locales de los usuarios
  • Bases de datos de WMI y componentes COM+
  • IIS Metabase
  • Ficheros cuyas extensiones se indican en filelist.xml

Los puntos de restauración pueden ser creados de forma manual por el usuario, mediante la ejecución de tareas programadas o de forma automática por el sistema operativo ante las siguientes condiciones:
  • Después del primer arranque del sistema.
  • Antes de la instalación de un programa.
  • Antes de la instalación de actualizaciones de Windows.
  • Antes de instalar un driver de sistema no firmado.
  • Antes de realizar una restauración del sistema.
  • Cuando el sistema haya estado arrancado durante más de 24 horas.
  • Cuando el sistema arranque después de haber estado apagado durante más de 24 horas.
  • Antes de una recuperación de datos mediante la utilidad de Copia de seguridad.

Repositorio para los puntos de restauración

En el directorio raíz de cada uno de los discos para los que se encuentre habilitada la opción "Restaurar sistema" encontraremos la carpeta utilizada como repositorio para los puntos de restauración:
System Volume Information

Esta carpeta no será visible a menos que se encuentre activada "Mostrar ficheros y carpetas ocultos" y desactivada "Ocultar archivos protegidos del sistema operativo (recomendado)", ambas dentro de la pestaña Ver en el diálogo de configuración de "Opciones de carpeta". Por defecto solo la cuenta SYSTEM tiene garantizado el acceso al directorio, pero bastará con modificar los permisos aplicados para permitir el acceso a otras cuentas.

Una vez obtenido acceso al directorio en su interior encontraremos al menos un subdirectorio, cuyo prefijo siempre será _restore seguido del GUID que encontramos en el fichero MachineGuid.txt. Para el caso de mi máquina, y como ya he comentado antes, el nombre completo sería:
_restore{4C2D1C1B-0CA6-46D8-9188-D4533A60773C}

Si observamos su contenido hallaremos diferentes subdirectorios REP#, donde # será un número indicando el puesto que ocupa el punto de restauración en la secuencia. La forma en que los directorios se almacenan y eliminan correspondería a una lista FIFO (el primero en entrar es el primero en salir). Subrayar como particularidad que los diferentes directorios están comprimidos utilizando las características de NTFS, siempre y cuando ese sea el sistema de archivos escogido para formatear el volumen.

Cada uno de los directorios REP# representa una instantánea del estado del sistema en la fecha en que se creó el punto de restauración, incluyendo los ficheros monitorizados y que hayan sido modificados desde la creación del punto de restauración anterior. La nomenclatura utilizada para los distintos archivos consta de una letra como prefijo y un número de secuencia hasta completar 8 carácteres, respetando la extensión original. También encontraremos un subdirectorio snapshot conteniendo copias de los ficheros que componen las diferentes partes del registro de Windows.

Podemos abrir cualquiera de estas instantáneas del registro de Windows utilizando, por ejemplo, la herramienta MiTeC Windows Registry Recovery. Si queréis podéis consultar un documento que escribí hace algún tiempo y que trata precisamente sobre el contenido y análisis del registro de Windows. El motivo por el que no aparecen créditos ni información relacionada conmigo como autor del mismo es debido a que solo pretendía ser un borrador de un documento más extenso que todavía tengo pendiente escribir, pero os aseguro que es de mi "puño y letra". Podréis encontrarlo en los foros de Wadalbertia, en concreto aquí. A ver cuando saco algo más de tiempo y lo actualizo, por ejemplo, incluyendo información sobre el uso de la utilidad RegRipper, desarrollada por Harlan Carvey.

El fichero change.log

Analizaremos ahora un fichero crucial para el funcionamiento de la herramienta "Restaurar sistema" y que encontraremos en cada uno de los directorios REP#, el fichero change.log. Es posible que encontremos más de uno, en cuyo caso seguirán la nomenclatura change.log.#, siendo # un número entero. Contienen información relativa a la ubicación original de los elementos almacenados y su nombre correspondiente dentro del punto de restauración.

Se trata de un fichero binario, por lo que si queremos ver su contenido tendremos que utilizar un editor hexadecimal como, por ejemplo, Free Hex Editor Neo. Por suerte Kris Harms, de la empresa Mandiant, liberó una herramienta gratuita que facilita enormemente el análisis de su contenido, MANDIANT Restore Point Analyzer, y junto a ella un documento, del cual he obtenido la mayor parte de la información incluida en esta entrada, y que describe la importancia del análisis de los puntos de restauración para la resolución de un incidente.

Una vez instalada para analizar el contenido de cualquiera de estos ficheros podremos abrirlo seleccionándolo directamente o indicando la carpeta System Volume Information de forma que la herramienta localice automáticamente todos los ficheros que encuentre dentro del árbol de directorios. Independientemente del método utilizado encontraremos en el panel superior la lista de fichero/s abierto/s y en el panel inferior el contenido parseado para el fichero seleccionado, incluyendo la ruta absoluta y el nombre original del fichero así como el nombre que se ha empleado para almacenarlo dentro del punto de restauración. Una funcionalidad muy interesante de la herramienta y que no resulta obvia a simple vista es la posibilidad de copiar el contenido del panel inferior e incluirlo en una hoja de cálculo para facilitar su análisis. Para ello seleccionaremos todos los registros y a continuación, utilizando la combinación de teclas Ctrl + C, podremos copiarlo en el portapapeles de Windows para pegarlo posteriormente un fichero de excel o de openoffice.

Y esto ha sido todo de momento, en breve más, y mejor, espero.

5 comentarios:

bad dijo...

Excelente texto :D, muchas gracias por compartirlo

delfi dijo...

Muchas gracias por el gran texto neofito.

Veras tengo un problema no puedo accede a la carpeta System Volume Information

sigo estos pasos
http://support.microsoft.com/kb/309531

pero en la parte de:

7. Haga clic con el botón secundario en la carpeta Información de volumen del sistema en la carpeta raíz y, a continuación, haga clic en Propiedades.
8. Haga clic en la ficha Seguridad.

Aqui esta mi problema no me aparece la ficha seguridad... solo puedo ver las pestañas de General, Compartir y Personalizar.

neofito dijo...

Hola delfi

En primer lugar agradecerte el comentario, me alegra que el texto te haya parecido interesante.

En segundo lugar, y para solucionar tu problema, basta que dejes de utilizar la funcionalidad "Uso compartido simple de archivos" a traves del dialogo "Opciones de carpeta" en el menu "Herramientas" del explorador de archivos, dentro de la pestaña "Ver".

Saludos

BIANCA dijo...

urgente:

Tengo puntos de restauración, pero cuando la intento me devuelve que no se ha podido realizar.

Habro la carpeta:

Restore

y tengo solo 4 archivos expuestos y uno oculto:

rstrlog.dat
rstrui.exe
srdiag.exe
srframe.mmf

filelist.xml

pero no me aparece:

MachineGuid.txt

que lo busco con el RECUVA, por si lo he borrado y nada.

PUEDO SOLUCIONAR SIN BORRAR LOS PUNTOS DE RESTAURACION, QUE TENGO,????

neofito dijo...

Hola BIANCA

Me temo que no puedo serte de mucha ayuda, maxime con la poca informacion que das :(

Saludos y suerte