Análisis forense de Volume Shadow Copy Service (Shadow Copy, VSS)

Hola,

Una de las cosas más interesantes que pude revisar en el reciente curso 508 de SANS es cómo tratar el Volume Shadow Copy Service (VSS), más comunmente conocido como Shadow Copy. Aprovechando que tengo aquí una licencia de Windows 7 Professional, me he decidido a explorar un poco este servicio y a relataros desde el punto de vista forense sus implicaciones.

Introducción

Volume Shadow Copy Service, en adelante VSS, es una tecnología de Microsoft que opera a nivel de bloque, es decir, en el sistema de ficheros. Por poner un ejemplo, mediante esta tecnología los usuarios, usando el botón derecho el ratón, pueden recuperar versiones anteriores de un determinado fichero con extrema comodidad. Desde el punto de vista del usuario, VSS es como una pequeña máquina del tiempo integrada en el sistema que permite retroceder y obtener información generada en el pasado.

shadow copy forensics

Esto es posible ya que VSS ejecuta copias en un determinado volumen, en un momento específico del tiempo a intervalos regulares, permitiendo que el usuario restaure versiones previas con suma comodidad. Aunque, desde el punto de vista forense, VSS podría ser mirado con otros ojos: el analista forense, en caso de querer recuperar material, no necesita realizar carving del espacio no asignado, ni reconstrucciones específicas de bloques del sistema de ficheros, ni nada parecido. Podría bastarle con acceder a una shadow copy determinada, y recuperar allí cómodamente lo que se anda buscando.

Estos servicios se implementaron originalmente en Windows XP SP2, si bien en aquel entonces el concepto era totalmente distinto, habida cuenta que las copias que se producen en dicho sistema no son persistentes. Las primeras funcionalidades de copia persistente, es decir, la que no desaparece aunque se reinicie el sistema, se remontan a Windows 2003, y desde entonces todas las versiones, Vista, Windows 7 y 2008 han ido añadiendo soporte a los servicios VSS no persistentes, con ligeras variaciones. Windows 7 es el primer sistema que además de incorporar servicios nativos VSS, dispone de un interfaz gráfico para su gestión.

Determinación del proveedor de servicio VSS y presencia de copias shadow

Para identificar la presencia de VSS recurrimos al comando vssadmin, que permite enumerar los proveedores existentes:

shadow copy forensics

Perdonad que el tamaño de las capturas invadan parte del contenido dinámico a la derecha, pero quizás de este modo se lean mejor los comandos. Como se puede apreciar, esta máquina dispone de servicios VSS, con lo que el siguiente paso sería determinar si VSS ha generado copias, para lo cual también usaremos vssadmin:

shadow copy forensics

En la última captura, el sistema me informa de la existencia de dos copias shadow en mi sistema. Existirá siempre una traducción entre el volumen original y la shadow copy correspondiente, en este caso, el volumen original es (C:)\\?\Volume{b072baad-d0ae-11df-ae4c-806e6f6e6963}\ y dicho volumen tiene asociadas dos copias, \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1 y \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy2

Extracción forense de las copias shadow

Para ilustrar cómo se analizan las copias vamos a ejecutar la extracción en el sistema en ejecución. Por favor, tened en cuenta que cuando se hace una adquisición en un sistema que está en ejecución, cualquier cosa que ejecutemos provocará cambios en el sistema, especialmente si traemos herramientas externas al sistema. No perdáis esto de vista, y tratad siempre de extraer desde un volumen externo evitando alterar el sistema a analizar instalando herramientas. En este caso, para simplificar el proceso, emplearemos dd.exe para Windows desde el propio sistema, aunque esta operación es posible realizarla por ejemplo, desde una máquina Unix de análisis forense conectada en red con la máquina a analizar. Al ser volúmenes, desde un punto de vista de dd, es posible realizar una copia bit a bit de dichos volúmenes al igual que las haríamos en otro volumen convencional. El único requisito que tenemos que tener presente es que las copias sólo son accesibles con el sistema en ejecución, es decir, los volúmenes no pueden ser consultados si el sistema que las genera no está cargado.

Para realizar la copia, necesitaremos recordar la nomenclatura de los dispositivos que hemos identificado anteriormente. Tampoco perdáis de vista que al extraer una copia shadow, obtendremos una imagen del sistema a analizar, independientemente de que el método de conservación se base en detecciones incrementales de cambios, con lo que es de esperar un tamaño elevado, especialmente en las versiones modernas de Windows, que suelen tener un tamaño base importante. Y tamaño elevado siempre implica tiempo elevado, especialmente en unidades de disco que no son de estado sólido:

C:\forensics>dd if=\\.\HarddiskVolumeShadowCopy2 of=c:\forensics\shadow.dd

Esta copia puede ser después montada en la estación forense para realizar las tareas habituales, tales como generación de una línea temporal, búsqueda de cadenas, y carving de ficheros eliminados. Una vez extraída no sufriremos la dependencia del sistema operativo que las ha generado, y podemos aplicar las técnicas de análisis que estimemos oportunas.

Examen mediante enlaces simbólicos

Es posible realizar un examen en el sistema en ejecución mediante enlaces simbólicos. Este método puede ser útil si lo que se desea es acceder a los contenidos de la copia shadow para una inspección visual rápida. Para esta operativa se emplea el comando nativo mklink con la opción -d que indica que queremos realizar un enlace mediante un directorio:

C:\windows\system32>mklink /d c:\copiashadow \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy2\
symbolic link created for c:\copiashadow < <===>> \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy2\

No olvidés cerrar el volumen con \, de lo contrario, no podréis acceder a los contenidos. Una vez creado el enlace se puede analizar cómodamente. Aquí se muestra un ejemplo de la segunda copia shadow, que además, incluye otros enlaces simbólicos creados anteriormente. Este directorio es totalmente navegable, y por defecto, montado en sólo lectura.

shadow copy forensics

Implicaciones forenses

Las implicaciones prácticas de las shadow copies son inmediatas. Puedo eliminar un fichero del sistema, e instantáneamente, recuperarlo de la copia. En este ejemplo eliminamos el fichero Thumbs.db en el volumen anfitrión, pero ese fichero está disponible en la shadow copy que hemos enlazado:

shadow copy forensics

Planteamientos como la extremadamente fácil recuperación forense de información en volúmenes de este tipo, cabe preguntarse si merece la pena emplearlos o no. Desde el punto de vista del usuario en la mayoría de las ocasiones sólo se apreciará lo cómodo que es recuperar un fichero borrado o sobreescrito accidentalmente, pero no todo el mundo es consciente de la cantidad de trazas que están dejando tras de sí, lo que pone en bandeja al analista forense la recuperación de información. Ni que decir tiene que ese analista forense podría ser también un usuario malicioso con acceso al disco.

Disyuntivas como estas sugieren que el tratamiento de VSS requiere un estudio particular para cada caso. En algunas ocasiones no habrá importancia en el hecho de ir dejando copias incrementales de todo lo que hacemos con el sistema, pero también es lógico pensar que algunos usuarios quizás prefieran no dejar esas trazas. Un debate abierto en el que es difícil alcanzar consenso, especialmente si añadimos el impacto a los recursos de almacenamiento que provocan las copias shadow y las más que obvias implicaciones en la privacidad, especialmente en entornos empresariales donde los usuarios empleen la máquina para almacenar efectos personales, como documentos, fotografías y claves, por poner alguos ejemplos.

Quiero imaginar que a medida que las organizaciones que actualmente operan en XP vayan migrando a Windows 7, este problema empezará a ser tratado con regularidad y los usuarios y administradores comenzarán a tener un conocimiento más preciso de lo que son las copias shadow, su utilización y los impactos en la privacidad y el rendimiento de los sistemas. Independientemente de lo que se termine realizando, la presencia de estas tecnologías en el sistema base debe conducir inexorablemente al análisis desde todos los puntos de vista, no sólo en cuanto a la funcionalidad técnica y a la seguridad, sino incluso a la legal que deriva de la realización de copias que podrían ser desconocidas para los usuarios, y que podrían contener información personal que el usuario cree haber eliminado.

Ni que decir tiene que las copias shadow se pueden desactivar. Consulta la documentación de tu sistema operativo si crees conveniente su eliminación.

Un saludo,

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,