Peritaje informático forense en Windows. Tiempos MAC(b) en NTFS y en exFAT

El estudio de los tiempos MAC(b) es fundamental en cualquier investigación forense efectuada por un perito informático. Los tiempos MAC(b) son ciertas marcas que el sistema operativo Windows genera y modifica, siguiendo ciertas reglas, para todos los archivos de un sistema de ficheros. Las siglas MAC(b) significan “modified”, “accessed”, “changed” y “birth”, palabras que se traducen al español como “modificado”, “accedido”, “modificado ($MFT)” y “creado”, respectivamente.

En este artículo se tratará de arrojar luz en lo que concierne al estudio de estos importantes metadatos que, en cualquier peritaje informático de tipología forense, un perito informático va a tener que estudiar. Los sistemas de ficheros sobre los que se realizará el estudio son NTFS y exFAT, los más extendidos del mercado actualmente para sistemas de tipo Windows.

 

Generalidades

 

Existen ciertas generalidades que incumben a cada una de estas marcas de tiempo. En primer lugar, es fundamental señalar que estas marcas de tiempo no pertenecen al propio fichero, sino que se encuentran en las tablas o índices de ficheros correspondientes a cada sistema de ficheros. Por ejemplo, en el sistema de ficheros NTFS, se encuentran en el fichero MFT y en exFAT, en los denominados como “Directory Entires”. El hecho de que las marcas de tiempo no pertenezcan al propio fichero (al igual que otras propiedades, como el nombre), es muy relevante, ya que, por tanto, el contenido del fichero no se ve alterado si dichas marcas de tiempo cambian y, por consiguiente, su huella digital tampoco.

 

Modificaciones en las marcas de tiempo

 

Respecto de las modificaciones efectuadas a las marcas de tiempo, es importante reseñar algunas cuestiones relevantes. Cuando Windows copia un fichero de una ubicación a otra, la fecha de creación del fichero copiado es el instante en que el fichero se inscribe en el índice, es decir, el momento preciso en que el fichero comienza a copiarse, mientras que la fecha de acceso es el instante en que el fichero termina de copiarse. En ficheros de tamaño considerable, por tanto, se puede calcular el tiempo que tardó en realizarse la copia restando ambas marcas de tiempo (suponiendo que no se haya accedido posteriormente al fichero).

Por otra parte, cuando se realiza la copia de un fichero de una ubicación a otra, la fecha de modificación de la copia se mantiene a la fecha de modificación del fichero original. Se puede dar, por tanto, la paradoja, de que la fecha de modificación de un fichero sea anterior a su fecha de creación, lo cual no parece, a priori, muy lógico. Esta eventualidad es signo inequívoco de que el fichero no es el original, sino una copia.

Las marcas de tiempo, por tanto, cambian en función de ciertas eventualidades que es necesario conocer.

 

Desplazamiento de la zona horaria al realizar una copia

 

Cuando Windows realiza la copia de un fichero a un sistema de ficheros diferente al de la ubicación original, el sistema operativo modifica las marcas de tiempo y desplaza la zona horaria de las mismas, a la zona horaria del sistema desde el que se está realizando la copia. Por ejemplo, si en un sistema de ficheros se almacena un archivo con fecha de modificación del día 5 de julio de 2017 a las 19:07:23 horas UTC+2 y, este fichero se copia a otro sistema de ficheros el día 2 de febrero de 2020 (en zona horaria UTC+1), la fecha de modificación del fichero será copiada como el día 5 de julio de 2017 a las 18:07:23 horas UTC+1. Esta cuestión puede generar confusiones a la hora de analizar los tiempos MAC(b) de un fichero y es importante tenerla en cuenta.

 

Marcas de tiempo por sistema de ficheros

 

NTFS

 

El sistema de ficheros NTFS se introdujo cuando Microsoft creó Windows NT, en el mes de julio del año 1993. NTFS ofrece algunas mejoras significativas sobre los sistemas de ficheros FAT. Es un sistema más sofisticado que FAT32 e incluye funciones para la recuperación de datos en discos dañados. Proporciona más información acerca de cada archivo, incluidas funciones de seguridad, propiedades del archivo y otros atributos. Existe más control sobre los ficheros y directorios. El sistema realiza un seguimiento de todo lo que ocurre en él, porque trabaja con varios registros que, a modo de diario, guardan todos sus cambios, basándose siempre en los metadatos de los ficheros. En el sistema de ficheros NTFS, todo lo que se escribe en el disco se considera un fichero.

En NTFS, el nombre de los ficheros se almacena en formato Unicode (codificación UTF-16), mientras que la estructura de ficheros se mantiene mediante árboles-B (estructuras de datos complejas consistentes en árboles balanceados de búsqueda, con tiempos logarítmicos de acceso, inserción y eliminación).

El primer fichero que se encuentra en cualquier disco con un sistema de ficheros NTFS es el correspondiente a la MFT (‘$MFT’), que se crea al mismo tiempo que se formatea el volumen como NTFS. Como todo lo que se graba en el disco se considera un fichero, cualquier modificación que se realice en el sistema, se grabará, como un registro de metadatos, en el archivo MFT, que contiene incluso información de los archivos del sistema y que almacena todos los ficheros y directorios, con varias propiedades, pudiendo llegar a ocupar hasta la mitad del tamaño de la partición.

 

En NTFS, los tiempos MAC(b), se almacenan en la tabla MFT. La tabla MFT es el núcleo de cualquier sistema de ficheros NTFS. En la tabla MTF se almacena información relevante sobre las transacciones de los ficheros en el sistema de ficheros NTFS. La tabla MFT, en bruto, es totalmente ilegible, pero puede “parsearse” a información legible con utilidades como MFTDump. MFTDump convierte todas las marcas de tiempo a zona horaria UTC, lo cual siempre es una ventaja.

Los tiempos MAC(b), para cada fichero inscrito en la MFT, se almacenan en dos variables, conocidas como ‘$STANDARD_INFORMATION’ y ‘$FILE_NAME’. A continuación, se adjunta un cuadro sobre la modificación de las marcas de tiempo para las variables ‘$STANDARD_INFORMATION’ y ‘$FILE_NAME’, respectivamente.

Es importante reseñar que, la variable ‘$STANDARD_INFORMATION’, puede ser modificada por procesos de usuario (por lo que es vulnerable a técnicas anti-forenses, como la conocida timestomp), mientras que la variable ‘$FILE_NAME’ sólo es modificada por el núcleo del sistema operativo, sin que se conozcan posibles vulnerabilidades que permitan su modificación maliciosa, salvo la inhabilitación de la escritura de estos registros. Cuando un perito informático realice un análisis forense a un sistema de ficheros de tipología NTFS, deberá tener en cuenta que las fechas anotadas en la MFT para la variable ‘$STANDARD_INFORMATION’ y para la variable ‘$FILE_NAME’, concuerden para cada fichero analizado.

 

exFAT

 

exFAT es un sistema de ficheros propiedad de Microsoft, creado especialmente para memorias flash, pendrives y discos duros externos.

El sistema de ficheros exFAT utiliza una estructura de árbol para describir las relaciones entre los archivos y los directorios. El directorio raíz del árbol está definido en el directorio localizado en el ‘RootDirectoryCluster’. Los subdirectorios están unidos mediante enlace simple con sus directorios “padres”. Cada directorio contiene una serie de lo que se denominan “Directory Entries”. Un “Directory Entry” puede ser primario o secundario y, cada uno de éstos, puede a su vez ser “critical” o “benign”. Las entradas “critical” son obligatorias, mientras que las entradas “benign” son opcionales. Las entradas primarias corresponden a entradas en el sistema de ficheros y describen características principales, mientras que las entradas secundarias extienden información asociada a una entrada primaria.

Un grupo de entradas, primaria y secundarias, conforman un “Directory Entry” describiendo un fichero o un directorio. La primera entrada es la primaria y, todas las subsiguientes, si existen, son secundarias.

Cada “Directory Entry” deriva de la plantilla “Directory Entry Template” y ocupa 32 bytes. Un conjunto de “Directory Entries” en el sistema de ficheros exFAT, tiene el siguiente aspecto.

El perito informático, cuando analice un disco con sistema de ficheros exFAT, deberá tener en cuenta, tal y como se aprecia en la imagen, que exFAT no almacena tiempos MAC(b), sino tiempos MAC, prescindiendo del “metadata change” o “modificado ($MFT)” y, manteniendo, por supuesto, el tiempo de creación (birth) del fichero. Estos tiempos se almacenan desde el noveno hasta el decimonoveno byte, en formato de 32 bits de MS-DOS. Para conocer el instante exacto en el que se produjo el cambio, será menester consultar, asimismo, el vigésimo segundo, el vigésimo tercer y el vigésimo cuarto byte, al objeto de conocer el desplazamiento horario de la marca de tiempo correspondiente, teniendo en cuenta la siguiente tabla.

Hex. Time Zone Hex. Time Zone
0xB8 UTC+14 0x80 UTC
0xB4 UTC+13 0xFC UTC-1
0xB0 UTC+12 0xF8 UTC-2
0xAC UTC+11 0xF4 UTC-3
0xA8 UTC+10 0xF0 UTC-4
0xA4 UTC+9 0xEC UTC-5
0xA0 UTC+8 0xE8 UTC-6
0x9C UTC+7 0xE4 UTC-7
0x98 UTC+6 0xE0 UTC-8
0x94 UTC+5 0xDC UTC-9
0x90 UTC+4 0xD8 UTC-10
0x8C UTC+3 0xD4 UTC-11
0x88 UTC+2 0xD0 UTC-12
0x84 UTC+1

Como se puede comprobar, el estudio de los tiempos MAC(b) no es un asunto baladí para cualquier perito informático que se enfrente al análisis forense de un sistema de ficheros NTFS o exFAT y a la posterior redacción de un peritaje informático.

Comparte