MFT USNJRNL LOGFILE - Analisis
MFT USNJRNL LOGFILE - Analisis
MFT USNJRNL LOGFILE - Analisis
Detección
antiforense
Open Source
Resumen
Abstract
Digital investigation tools produce results such as artifacts and timelines, allowing the
incident reconstruction and evidence collection. The validity of these results is based on the
establishment of analytic correlations between the incident and the artifacts, and the
knowledge about the bias introduced by tools during the investigation of possible antiforensic
practices.
This work offers a contrast method about the credibility of timelines in the forensic digital
investigation field, in relation to manipulation of timestamps on files belonging to NTFS
volumes.
Focused on the post mortem analysis, it is designed from the study of different Open Source
forensic tools, pretending to offer an alternative detection method.
CONTENIDO
Resumen................................................................................................................................2
Abstract ..................................................................................................................................2
1. Introducción........................................................................................................................7
3. NTFS................................................................................................................................10
4. Fuentes de evidencias......................................................................................................14
7. Metodología .....................................................................................................................40
9. Resultados .......................................................................................................................49
Enlaces ................................................................................................................................55
Anexos .................................................................................................................................58
Índice de ilustraciones
Ilustración 1. Artefactos NTFS creados en directorio raíz, via FTK imager ...........................10
Ilustración 2. Arquitectura entrada/salida Windows en relación con NFTS [19].....................12
Ilustración 3. Estructura MFT_SEGMENT_REFERENCE [21]..............................................15
Ilustración 4. Encabezado de un atributo..............................................................................16
Ilustración 5. Estructura del atributo $SI [1] ..........................................................................17
Ilustración 6. Estructura del atributo $FN [1] .........................................................................18
Ilustración 7. Creación manual del un Journal de cambios ...................................................21
Ilustración 8. Estructura de registro de USNJrnl (V4) [26].....................................................21
Ilustración 9. Desmontaje de volumen de sistema en Windows............................................26
Ilustración 10. Consulta al Journal de cambios tras formateo de dispositivo externo ............27
Ilustración 11. Timeline producido por fls-mactime ...............................................................29
Ilustración 12. Contenido de la entrada 39 MFT ...................................................................29
Ilustración 13. Timeline fls/mactime inicial antes de escritura directa ...................................30
Ilustración 14. Supertimeline sobre manipulación lógica ......................................................33
Ilustración 15. Supertimline sobre manipulación directa .......................................................33
Ilustración 16. Extracto del parser Mft2Csv ..........................................................................34
Ilustración 17. Parseado con Mft2CSV tras manipulación lógica ..........................................34
Ilustración 18. Activación del Journal de Cambios ................................................................36
Ilustración 19. Extracto del parser LogFileParse ..................................................................37
Índice de tablas
Tabla 1. Equivalencias de formatos y condiciones de actualización de TMS [16] ................. 11
Tabla 2. Cabecera de un registro MFT [1] ............................................................................15
Tabla 3. Atributos MFT y condiciones de residencia [20] ......................................................16
Tabla 4. Entrada de índice en $INDEX_ALLOCATION [1] ....................................................19
Tabla 5. Reason de cambio en atributos TMS de archivos [18] ............................................22
Tabla 6. Uso de parsers Open source en la detección antiforense TMS ...............................39
Tabla 7: Niveles de sensibilidad y confianza de los detectores .............................................47
Tabla 8. Fórmulas de Nivel de Confianza de Archivo ............................................................47
1. Introducción
La investigación digital es un proceso donde se desarrollan y prueban hipótesis que dan
respuesta a eventos digitales utilizando el método científico (Carrier, 2005) [1]. Sobre un
incidente digital, se trataría de obtener evidencias y reconstruir los eventos que den soporte
o refuten la hipótesis, ofreciendo garantías de integridad, trazabilidad y verificabilidad.
En el marco del análisis forense digital, las referencias temporales a ocurrencias de eventos
(en adelante TMS), se enmarcan en tres áreas principales (Raghavan, 2014) [2]:
Las metodologías para el análisis forense digital evolucionan, tal y como lo hacen otras
ramas forenses científicas, hacia la comprensión total del incidente, considerando las
aportaciones de las áreas anteriormente expuestas. Partiendo del planteamiento de
metodologías en torno a secuencias cronológicas de eventos (Chen et al., 2003) [4], a luego
apoyarse en estudios sobre artefactos y eventos relacionados (Gudjonsson, 2010) [5], y
finalmente obtener inferencias sobre niveles superiores de abstracción (Hargreaves &
Patterson, 2012) [6], con el empleo de modelos semánticos (Chabot et al., 2015) [7].
2. Objetivos y contexto
Uno de los objetivos de las prácticas antiforenses es sembrar dudas sobre la credibilidad de
la investigación forense, lo que en último término podría conllevar la invalidez de las pruebas
en la defensa judicial del caso. El objetivo general de este proyecto consiste en mitigar
este efecto, mejorando la credibilidad atribuible a las secuencias temporales
generadas por diferentes herramientas forenses.
Una vez vista la introducción, que definía el problema, el contexto, y los objetivos
pretendidos, en el capítulo 3 se explican las características del sistema de archivos de
referencia, y en el capítulo 4 se relacionan los artefactos que son de interés para el estudio.
En el capítulo 5 se explican las posibles vías de manipulación, que serán empleadas en los
casos de estudio definidos en el capítulo 6. El capítulo 7 define los componentes de la
metodología, que serán empleados por la herramienta mostrada en el capítulo 8. El capítulo
9 analiza los resultados de la metodología en aplicación de la herramienta, enmarcada en
los casos de uso definidos anteriormente. En los capítulos 10, 11 y 12, se resume la
experiencia en base a sus garantías de aplicabilidad, conclusiones del trabajo y posibles
mejoras.
3. NTFS
NTFS (New Technology File System) es el sistema de archivos transaccional que incluye
Windows desde Windows NT, existiendo implementaciones en otros sistemas, como NTFS-
3G en los kernels de MAC OSX y Linux. En este proyecto se estudia su versión 3.1 en el
marco dell sistema operativo Windows.
A partir del trabajo de Carrier (Carrier, 2005) [1], se puede conocer el significado de cada
una de las referencias temporales TMS, en relación con las operaciones sobre archivos. En
el mundo del forense digital, existen investigaciones sobre la manera en que las operaciones
más comunes realizadas archivos, actualizan el conjunto de TMS, en el marco de diferentes
versiones del sistema operativo Windows [17].
Cuando lazy write realiza el volcado a disco, el administrador de caché notifica al driver del
sistema de archivos para que actualice su vista [20] sobre la longitud válida del archivo (de
la que se lleva cuenta en memoria).
• El driver escribe los datos que desea actualizar, y el indicador del registro del log
(LSN) en el administrador de caché, y la actualización a disco la realiza dicho
administrador, en operaciones de volcado (flush).
De cara al resto del proyecto, denominaremos escritura lógica a la realizada a través del
driver del sistema de archivos, y escritura directa a la que puentea a dicho driver, saltándose
sus restricciones.
4. Fuentes de evidencias
Se considera un subconjunto de artefactos NTFS como fuentes de evidencia de las acciones
realizadas sobre los archivos.
Los registros MFT representan a los archivos y directorios del volumen. Cada registro es
típicamente de 1KB, según se especique en el sector de arranque, y apunta al cluster de
comienzo del contenido del archivo o directorio que referencia.
Cuando se crea un archivo, se genera o asigna una entrada en la MFT, aunque es posible
que se asigne más de una, en cuyo caso la primera entrada se denomina base file record, y
se utiliza como entrada de referencia al archivo en la MFT.
Las entradas MFT utilizan valores fixup que se emplean en la versión en disco de la
estructura de datos, reemplazando los dos últimos bytes de cada sector con este valor.
Cada registro MFT comienza con una cabecera (Header) de 42 bytes:
Offset
Entrada Descripción
(bytes)
0x00 Firma “FILE”
0x04 Offset al array fixup
0x06 Tamaño del array fixup
0x08 Número de secuencia del $LogFile (LSN)
0x10 Número de secuencia
0x12 Cuenta de links
0x14 Offset al primer atributo
0x16 Flags (en uso y directorio)
0x18 Tamaño usado de la entrada MFT
0x1C Tamaño asignado a la entrada MFT
0x20 File Reference (incluye el offset al registro base)
0x28 Id del siguiente atributo
Tras la cabecera, y hasta completar el tamaño asignado a las entrada (1024 bytes por
defecto), se completa con registros denominados atributos,, que son estructuras de tamaño
variable que contienen metadatos de los archivos del volumen. Todos los atributos utilizan la
mismo tipo de estructura en su encabezado, en la que se distingue si se trata de un atributo
residente,, que guarda su contenido en la propia MFT, o no residente,
residente que guarda su
contenido en disco, y que
q en la MFT incluye las referencias para su localización de su
contenido.
El cluster físico del archivo donde encontrar el contenido del atributo No residente, se puede
obtener a través del mapeado del número de cluster virtual dentro del archivo (VCN) a
número lógico de clúster del volumen (LCN) indicado en el registro,
registro que se gestiona de
forma comprimida,, y el número de clusters.
clusters Si la información no cabe en el segmento base,
puede almacenarse en otro fichero externo, a cuyo cluster podrá accederse a través del
atributo $ATTRIBUTE_LIST. Los atributos No Residentes, guardan su contenido en disco en
lo que se conoce como runs.
Atributos Residente
$VOLUME_INFORMATION Siempre
$VOLUME_NAME Siempre
$STANDARD_INFORMATION Siempre
$INDEX_ROOT Siempre
$INDEX_ALLOCATION Nunca
$EA_INFORMATION Siempre
Los atributos más importantes desde el punto de vista forense en relación con los TMS de
archivos son:
Al igual que ocurre con los TMS de $SI, los TMS de $FN se actualizan siguiendo
patrones fijos en respuesta a operaciones sobre archivos, relacionadas con la
creación, movimiento o renombrado del archivo, que en algunos casos es
coincidente con el contenido de TMSs del $SI [A4].
A través del contenido del atributo $FN, es posible reconstruir la jerarquía directorios
del sistema de archivos utilizando las referencias a los directorios padre. Esta
característica puede ser empleada para la construcción de timelines.
• No debe ocurrir que todos los TMS de $SI sean anteriores a los TMS de $FN [A4],
puesto que en todas las operaciones con archivos, cuando se modifica algún TMS de
$FN siempre existe algún TMS de $SI que se ve afectado.
Una de las utilidades forenses sobre los bufferes de índices es la identificación de nombres
de ficheros borrados y sus TMS. Cuando se elimina un archivo, el driver no sobreescribe
estos datos, sino que aumenta el “slack space” del nodo, modificando las direcciones lógicas
se sus registros a través de los nombres de archivos.
Offset
Entrada Descripción
(bytes)
0x00 MFT Reference para el nombre de fichero (en caso de
entrada de directorio)
0x08 Tamaño de esta entrada
0x0A Tamaño del atributo $FN
0x0C Flags (0x01 Existe nodo hijo, 0x02 Última entrada en la
lista)
0x10 Atributo $FN (si la longitud es >0 )
Últimos 8 VCN del nodo hijo en $INDEX_ALLOCATION (si se indica
bytes en el flag)
• Los TMS registrados los copia de los TMS incluidos en el $SI de la MFT, y son
actualizados con mayor frecuencia y bajo diversas circunstancias [45].
• A través del análisis de los TMS de cambio de MFT es posible entender como fueron
movidos los archivos.
Se trata de un sparse file (fichero disperso que no almacena explícitamente los valores no
inicializados) que referencia a través de su número de secuencia de actualización (USN), un
log persistente con todos los cambios realizados sobre los ficheros dentro del volumen.
Se trata de un log circular que crece en disco con el tiempo hasta un tamaño máximo
predefinido, y que cuenta con mecanismos FIFO para la desasignación de bloques (Russon
& Fledel, 2004) [25]. Con el paso del tiempo se pierde información al reciclarse las entradas.
Windows no siempre lo crea inicialmente en todos los dispositivos, pero puede crearse y
configurarse con la utilidad fsutil, especificando tanto su tamaño total (parámetro m) y su
tamaño de asignación de bloque (parámetro a).
Los cambios realizados sobre los archivos se almacenan en su stream de datos alterno $J,
implementado como fichero disperso.
Cuando
uando el fichero $UsnJrnl sobrepasa el tamaño total especificado (almacenado en el
stream de datos alterno $Max),
$Max) se comienzan
mienzan a rellenar con ceros los datos que preceden a
la ventana de cambio hasta alcanzar un tamaño igual al máximo del journal. El tamaño del
journal se reduce cuando alcanza el doble del máximo configurado.
Desde
esde el punto de vista forense sirve para confirmar los eventos NTFS de (creación,
borrado,
o, modificación, renombrado y movimiento de un fichero y directorio) en un período
específico, siendo posible encontrar trazas de un fichero que haya sido eliminado.
En
n las últimas versiones, se puede habilitar el
el “seguimiento de intervalos de escritura”
(range tracking), por el que también puede realizarse un seguimiento de las partes
modificadas de los archivos.
El funcionamiento del Journal de cambios es dependiente de la versión del registro USN con
el que fue creado,, estableciendo una compatibilidad de versiones mínima y máxima [A2].
[A En
la estructura de este registro se almacenan los cambios producidos en los archivos.
• Header: refencia una estructura que describe los tamaños y versiones admitidas por
el registro (record_size, major_version y minor_version). Se incluyen referencias al
archivo y al padre del archivo, así como el USN (Update Sequence Number), que
identifica unívocamente a las instancias del registro.
REASON Descripción
Según el investigador forense David Cowen [27], el $Logfile “es un gran artefacto para
obtener un alto nivel de granularidad sobre exactamente qué cambios han ocurrido a un
sistema de ficheros".
Guarda pista
ista de todos los cambios en el sistema de archivos,
archivos, registrando en referencia a los
archivos la siguiente información:
• Archivos
rchivos creados y de sus registros MFT completos
Las entradas de este artefacto son “registros LSN”, que conforman listas enlazadas
representando transacciones sobre el volumen, y referenciando operaciones de rehacer
(redo) o deshacer (undo).
Ha
a de tenerse en cuenta que al ser un log circular, el conocimiento histórico se verá limitado
debido a la sobreescritura de evidencias menos recientes.
4.5
.5 NTFS transaccional
El NTFS transaccional (TxF), es una funcionalidad extendida de NTFS soportada
soporta por un
administrador de recursos. Se trata de un conjunto de APIs con las que Windows
implementa un sistema de transacciones en volumenes NTFS.
Las Shadow Copy son artefactos de alto valor forense, ya que se pueden utilizar posible
contrastar el sistema de archivos frente a una línea base anterior, a partir de la información
de archivos y carpetas que existían en el momento de su actualización.
5 Modos de escritura
Los escenarios del proyecto plantean en base al tipo de acceso utilizado para realizar
acciones de manipulación de TMS sobre los archivos: escrituras lógicas y escrituras
directas.
Estos tipos de accesos sugieren diferentes métodos de análisis para la interpretación del
contenido de los artefactos forenses:
• En los casos de escritura lógica se modifican los TMS del $SI o a lo sumo los de $FN
del MFT, dejando rastros evidentes en otros artefactos, por lo que es adecuado
emplear una metodología basada en contraste de contenidos de los artefactos.
Para la ejecución de este tipo de herramientas antiforenses, se deben poseer permisos tanto
para manipular los arefactos NTFS, como una posterior eliminación de indicios que pudieran
haber sido registrados en artefactos del sistema.
A la hora de estudiar las manipulaciones sobre los TMS a través de escrituras lógicas han
de tenerse en cuenta las siguientes aseveraciones:
• Es posible realizar modificaciones sobre los TMS del $SI de la MFT utilizando API
(librerías) del sistema
• Los propios valores de los TMS son indicios de las operaciones que se pudieran
haber realizado sobre los archivos que los poseen [41]
Estas
stas actuaciones son difíciles de detectar a través de procedimientos simples de
verificación,, puesto que vulneran los sistemas de control que establece el sistema.
sistema A la vez
que son complejas de implementar, ya que es necesario emplear técnicas
té para conservar la
integridad y dar coherencia a los cambios entre distintos artefactos, respetando el
comportamiento nativo del sistema.
6 Caso de estudio
En la construcción de timelines de archivos,
archivos se consideran las lecturas de los TMS incluidos
en los registros de la MFT, y para detectar su falseamiento, el procedimiento más habitual
consiste en contrastar de los TMS de $SI con los de $FN [23].
6.1 Alcance
Windows no ofrece una función en sus APIs para establecer direcamente los TMS de $FN,
$F
pero existen prácticas antiforenses,
antiforenses como la del doble movimiento del archivo en local o las
escrituras directas en disco, con las que es posible realizar esta manipulación. Por lo que
para su detección, será necesario contar con otros tipos de artefactos
os con los que establecer
correlaciones.
A partir de Windows Vista USN se activa por defecto sobre la partición del sistema,
sistema pudiendo
gestionarse a través de políticas,
polí pero es posible que no se cree automáticamente tras
formatear un volumen [31],
[3 sino ante la demanda de determinados servicios.
Se comprueba
mprueba tras el formateo ntfs de varios dispositivos a través de Windows, que el USN
Journal no se activa automáticamente.
automáticamente
La desactivación del USN journal una vez activado, puede afectar a servicios del sistema
que necesitan de esta característica,
característica como el File Replication Service o el Indexing Service,
lo que impacta negativamente en los tiempos de respuesta del equipo.
equipo Pero también puede
emplearse como práctica antiforense, para perder evidencia de operaciones realizadas
sobre archivos.
Al no ser infrecuente
uente encontrarnos con dispositivos que no tengan activado el Journal de
cambios, el proyecto considera utilizar también otros artefactos que puedan suplir su
ausencia en el estudio de los casos de falseamiento TMS.
En cuanto al empleo de diferentes versiones de los parsers, las nuevas versiones siempre
aportan correcciones, mejoras en funcionalidades y mayores compatibilidades con cambios
en los sistemas, por lo que resulta conveniente disponer de las últimas para el estudio
comparativo entre diferentes parsers.
6.2.1 Fls/mactime
La herramienta fls 4.2.0 se produce un listado de archivos y carpetas del directorio
especificado en base a la información de la MFT de la imagen de disco proporcionada, que
se puede utilizar como generador de timelines (con la opción –m). Presenta en un formato
nativo no legible (body file), que debe formatearse con la herramienta mactime para obtener
una versión entendible por humanos (ambas utilidades forman parte del toolkit
SleuthKit.4.2.0 para Windows 32bits).
El timeline producido en principio es simple. Muestra los TMS en formato MACB, el tamaño
del registro, los permisos aplicados que indicaría si se trata de un archivo o directorio, el UID
(id de usuario), GID (id de grupo), un grupo de tres datos separados por guiones que hacen
Con la información aportada se puede iniciar una investigación forense con garantías. En la
ilustración, ell metadato 39-48-2,
39 hace referencia a la entrada número 39 de la MFT, y al su
atributo 48 ($FILE_NAME), identificado como el número 2 de loss presentes en ese registro
MFT, tal y como se puede comprobar con la herramienta istat.
La información Meta 39--128-1, se comprueba que se obtiene se captura de $SI (atributo 16),
16)
y a través de la referencia al atributo 128 ($Data), podríamos
pod acceder al contenido residente
del archivo.
# fls –r –m / imagen-af.dd
imagen > imagen-af.body
# mactime.pl –b
b imagen-af.body
imagen > timeline-af.csv
El resultado es un timeline
eline normal en el que los TMS de $SI y $FN son iguales
# Setmace64.exe f:\fisico.
fisico.txt -z “2016:06:10:13:15:16:789:1234” -x
Se estudia de forma similar el comportamiento del parser ante una manipulación de TMS a
través de escritura lógica utilizando Timestomp.
# timestomp f:\logico.txt
logico.txt -z “Monday 7/25/2016 01:23:45 AM”
Comprobamos los TMS del fichero creado con fls antes y después de la ejecución de
ejecuta la herramienta antiforense Timestomp, y luego se crea el timeline
# fls –r –m / imagen-af.dd
imagen > imagen-af.body
# mactime.pl –b
b imagen-af.body
imagen > timeline-imagen-af.csv
Puesto
uesto que los TMS de $SI se actualizan con mayor frecuencia, a través de este parser no
se podría concluir una manipulación por escritura lógica de TMS cuando los TMS de $SI
manipulados fueran posteriores a los de $FN.
Si se fuerza la actualización de los TMS de $FN con los de $SI, también sería posible evitar
la aparición de TMS de $FN anteriores a los $SI. En principio se desarrolló la técnica de
realizar un movimiento en local del archivo dentro del volumen, pero presupone la existencia
de subdirectorios para los que se cuenta con permisos de escritura,
escritura pero William Ballenthin,
descubrió que también es posible forzar la copia de TMS a $FN simplemente
implemente con renombrar
renom
el archivo, con lo que se evita la dificultad anterior.
# ren f:\logico.txt
logico.txt logico.txt2
# timestomp f:\logico.txt2
logico.txt2 -z "Monday 7/25/2016 01:23:45 AM"
# ren f:\logico.txt2
2 logico.txt
# timestomp f:\logico.txt
logico.txt -z "Monday 7/25/2016 01:23:45 AM"
Se comprueba que se actualizan también los TMS de $FN, con lo que ya no se es capaz de
detectar este tipo de manipulación a partir del timeline generado por fls/mactime,
fls/mactime
apareciendo
o con los TMS propios de un fichero recién creado.
Este parser puede emplearse para la detección antiforense de falseamiento TMS en el caso
en que la herramienta antiforense no llegue a modificar el $FN, y se comprobase que los
TMS de $FN fueran más recientes que sus respectivos $SI.
6.2.3 Supertimeline
La segunda herramienta es Plaso para Windows versión 1.4.0, que genera un supertimeline
a partir de correlaciones entre parsers que implementa internamente. Para el estudio, se
ejecuta sobre la imagen de la partición antes de realizar la manipulación.
Al no incluirse en la imagen artefactos del sistema distintos a los de NTFS que puedan
emplearse como fuente de información, se comprueba como Plaso hace uso sólo de sus
parsers filestat.py “File system stat object parser”, y de “UsnJrnl” para recrear el timeline del
sistema de archivos de la imagen.
Filestat.py es un script python que accede a los sistemas de archivos de forma virtualizada
(vfs). En este caso se instancia al tipo NFS, y luego se recopila el estado de los objetos del
sistema de archivos [A1]. La captura de las entradas del directorio NTFS se realiza con
ntfs_file_entry.py, dando preferencia a la información procedente de la MFT [A2]. UsnJrnl
parsea directamente del contenido del artefacto $UsnJrnl.
# Setmace64.exe f:\fisico.
fisico.txt -z “2016:07:02:12:34:56:789:1234” -x
6.2.4 Mft2Csv
A diferencia de FLS o el Supertimeline de Plaso, el parser Mft2Csv para Windows v.2.0.0.36,
realiza un volcado detallado de los registros MFT involucrados,, incluyendo los TMS,
TMS lo que
da pie a establecer nuevas vías de investigación a través de correlaciones con otros
artefactos. Este parser extrae muchos de los datos incluidos
incluidos en la MFT [A5],
[A5] dando la
posibilidad de establecer correlaciones con otros artefactos a bajo nivel.
# timestomp f:\logico.txt
logico.txt -z “Sunday 7/24/2016 23:23:45 PM”
Y se obtiene que aparte de cambiar su $SI por efecto de la manipulación, también cambia la
referencia del registro a $USNJrnl y que su referencia al $LogFile.
En resumen:
Este parser nos da la posibilidad de acceder de forma directa a las tablas de Journal a
través de sus campos SI_USN y HEADER_LSN.
HEADER_LSN
6.2.5 IndxParse
El parser IndxParse es un script en python que realiza un análisis de los atributos índice de
la MFT,, extrayendo los nombres de archivos, los TMS y los tamaños de archivo, permitiendo
extraer información de los “slack space” de dichos atributos.
atributos
La herramienta IndxParse admite como entrada atributos índice del tipo $I30 [33], que se
pueden extraer
er al igual que el resto de atributos utilizando la herramienta icat de Sleuthkit.
En el estudio, se emplea la entrada de la MFT para el directorio raíz (5), sobre su atributo
$INDEX_ALLOCATION (160).
# icat ..\imglogicozbf.dd
imglogicozbf.dd 5-160
5 > Index_Allocation.bin
# timestomp f:\logico.txt
logico.txt -z “Sunday 7/24/2016 23:23:45 PM”
Al existir un automatismo por parte del driver para preservar la integridad de TMS con los
atributos índice y considerando que cuando se elimina o recicla un registro de la MFT, no se
eliminan sus información de índice, pudiéndose acceder a los TMS anteriores a través de su
“slack space”, se puede considerar esta información como fuente alternativa de validación
para los TMS de $SI. Esta idea ha sido sugerida por el autor de este parser cuando trata con
archivos eliminados.
6.2.6 Usn2CSV
Este parser implementa el análisis del
d artefacto $UsnJrnl.
Tras
as crear un volumen NTFS, se ha de asegurar la activación
ción del Journal de cambios.
# timestomp f:\logico.txt
logico.txt -z “Sunday 7/24/2016 23:23:45 PM”
6.2.7 LogFileParser
El parser LogFileParser
rser para Windows 2.0.0.35, estudia las referencias a la MFT contenidas
en el artefacto $LogFile,
$LogFile, y las amplía con información procedente de la MFT cuando se le
información adicional sobre dicho artefacto.
Se recopila gran cantidad de información [A6], lo que permite inferir contenido que se puede
encontrar en otros artefactos. Desde el punto de vista forense, esta característica es de alto
valor de cara a detectar inconsistencias.
# timestomp f:\logico.txt
logico.txt -z “Sunday 7/24/2016 23:23:45 PM”
Este parser permite el acceso a los datos del Journal clasificados por artefacto, en
estructuras como AllTransactionHeaders, INDX_I30, USNJrnl, TxfData, etc.,
etc. que facilitan el
cruce de datos con los parsers orientados a artefacto.
artefacto
En resumen:
Este artefacto recopila información histórica a través de la cual puede realizarse contraste
TMS contra las entradas activas en la MFT.
MFT
6.3 Conclusiones
Cada artefacto poseedor de TMS, aporta suficiente información como para poder
representar un timeline en un momento dado, que puede ser contrastable con el de otros.
En la tabla siguiente se resumen las capacidades de los diferentes parsers analizados para
su uso en la detección de actividades antiforenses TMS y en la generación de timelines.
Fls/mactime Incoherencias en el timeline Timeline que extrae TMS de la MFT ($SI y $FN)y
entre TMS de $SI y $FN, cuando permite el contraste entre ellos. Se puede
el TMS de $FN son posteriores a correlacionar indirectamente con otras
los de $SI herramientas a través del uso de atributos MFT
Supertimeline Incoherencias en el timeline Timeline que combina TMS de MFT con USNJrnl, con
entre TMS de $SI y $UsnJrnl un análisis hecho, por lo que está poco orientado a
combinarlo con otros parsers externos
Mft2Csv Incoherencias de TMS entre Timeline detallado de todos los TMS de la MFT. Da la
$UsnJrnl y $LogFile posibilidad de acceder de forma directa a las
tablas de Journal a través de sus campos SI_USN y
HEADER_LSN
IndxParse Incoherencia entre TMS de Timeline con la información de TMS de los atributos
atributos índice y los de la MFT, índice de la MFT, con la posibilidad de considerar
teniendo en cuenta los TMS de archivos borrados a través de su slack space
diferentes momentos de
actualización
Usn2CSV Incoherencia de TMS en Timeline que muestra todos los datos USNJrnl. Extrae
secuencias $USNJrnl frente a los USN del artefacto $USNJrnl, lo que resulta
MFT interesante para poder relacionarlo con otros
artefactos.
LogFileParser Incoherencia TMS entre la MFT Timeline con demasiada información, por lo que
referenciada y las operaciones requiere de un post-procesamiento. Ofrece
y transacciones contenidas en referencias a nivel de campo a los artefactos
$LogFile importantes del sistema de archivos, con lo que se
puede integrar perfectamente con ellos para
realizar contraste de la información
7. Metodología
Se propone una metodología para el uso de artefactos NTFS en la detección de
falseamiento de TMS a través del uso de parsers Open Source sobre los mismos, aplicable
a los escenarios antiforenses propuestos: las escrituras lógicas, y las directas al dispositivo.
En base a esto, se han desarrollado diversas metodologías que los utilizan para la detección
de manipulaciones en sus TMS, como las realizadas sobre los números de secuencia de los
registros de la MFT [12] (Willassen, 2008), sobre los patrones de detección en el journaling
LogFile [34] (Cho, 2013), o sobre atributos Indice de directorios [35] (Minnaard, 2014).
Las relaciones existentes entre la MFT y los otros artefactos NFTS de interés en relación
con los TMS, se pueden resumir como:
• El atributo $SI de la MFT, contiene el USN que referencia al registro del artefacto
$USNJrnl más reciente relacionado con dicha entrada.
• El atributo $SI de la MFT, contiene el LSN que apunta al valor más reciente de la
entrada $LogFile que contiene datos históricos relacionados con la entrada MFT.
También podemos encontrar metodologías que utilizan correlaciones entre varios artefactos,
como la Triforce [27] o la propuesta por Uijtewaal & Prooijen (2016) [36].
El modelo Open Source propuesto por Uijtewaal & Prooijen [36], toma como referencia los
artefactos $LogFile, $MFT y $UsnJrnl, estableciendo relaciones entre ellos, y proponiendo
ecuaciones para operar con las mismas:
MFT entry = [VCN x Tamaño Cluster] + [[MFT Cluster Index x Tamaño Bloque] / Tamaño entrada MFT]
$MFT.$Standard_Information.USN = $UsnJrnl.USN
Teniendo en cuenta los resultados del análisis de los parsers Open Source, se constata que
es posible realizar una automatización en torno a LogFileParser teniendo en cuenta las
relaciones de Uijtewaal & Prooijen [36].
Como regla metodológica para la detección de casos basados en Log, se considera que un
TMS de Creación histórico no puede ser posterior al actual, ya que en los cambios de TMS
realizados por el sistema (salvo los conocidos casos de copia de TMS), se actualiza al TMS
del sistema de ese momento, resultando siempre posterior (salvo manipulación de reloj del
sistema) al de cualquier otro dato histórico anterior.
7.2 Detectores
En torno a los parsers propuestos y a los artefactos que se relacionan con ellos, se define el
conjunto de parsers que implementan la metodología.
Tal y como se muestra en [A3], el TMS de creación de $SI se actualiza con el TMS del
sistema cuando se crea o copia un archivo, y el de $FN [A4] además cuando se mueve en
local. Como se vio en la sección anterior del análisis del parser FLS, el truco del movimiento
local en las escrituras lógicas, copia los TMS de $SI a $FN, por lo que la información de los
TMS de creación de $SI y $FN es en muchos casos coincidente.
Muchas de las herramientas para la modificación de TMS por escritura lógica, sólo modifican
los TMS de $SI (como Timestomp), ya que no existe una función API en Windows que
permita cambiar directamente los de $FN, lo que da pie a considerar como mecanismo de
detección la diferencia entre los TMS de creación de $SI y $FN.
Puesto que $FN puede contener TMS obsoletos, este detector es propenso a falsos
positivos. Esta situación se compensa en la metodología con el ajuste del coeficiente de
confianza y de sensibilidad asignados al detector, y su eficacia se verá apoyada por las
capacidades de detección de los otros detectores empleados en la metodología.
La correlación utilizada entre MFT y USN, es la utilizada por Uijtewaal [36] para los dos
artefactos, $SI.SI_USN=$USNJrnl.USN, que referencia al último registro USN relacionado
con la entrada MFT. Según se observó en el análisis de los parsers, el USN del momento
final en que se dan por sentado los cambios en los TMS, está referenciado por la reason
BASIC_INFO_CHANGE+CLOSE, siendo además coincidente con el contenido $SI.SI_USN
tras la manipulación.
Se considera a priori como de media sensibilidad y confianza media, ya que debe apoyarse
en otros detectores que pongan de manifiesto cambios en el TMS de Creación.
Se considera a priori como de sensibilidad alta y de confianza baja, y al igual que MFT/USN,
debe apoyarse en otros detectores que pongan de manifiesto cambios en el TMS de
Creación.
El detector utiliza los TMS ($SI) del archivo contenido en el Log, para contrastar con los
análogos del archivo referenciado, utilizando la correlación del número de entrada y de
7.3 Indicador
La metodología define un indicador de detección basado en la capacidad de inferencia de la
herramienta, y es aplicable a cada uno de los archivos del sistema, referenciados a través
de entradas de la MFT.
Nivel de Credibilidad de Archivo: nivel ALTO, MEDIO o BAJO, según los detectores
involucrados en detecciones positivas al procesar un archivo
8. La herramienta metodológica
La herramienta metodológica realiza la implementación de la metodología, con el objetivo de
reportar los resultados de su aplicación sobre una imagen de dispositivo suministrada.
8.1 Procedimiento
Partiendo de una imagen post-mortem perteneciente a un dispositivo con formato NTFS, y
contando con un sistema Windows donde se ha instalado la herramienta metodológica junto
con los parsers Open Source, y previo ajuste inicial de los coeficientes de confianza de los
detectores, se aplica el siguiente procedimiento guiado por la herramienta:
2. Ejecución de los parsers Open Source sobre los artefactos extraídos: Mft2Csv sobre
$MFT para obtener los datos de referencia sobre la MFT, y de los parsers IndxParse,
LogFileParser y Usn2Csv, sobre el resto de artefactos extraidos, con un volcado de
resultados a base de datos (SQLite).
5. Creación de un timeline inferido a partir de entradas de la MFT, decorado con los datos
de detección procedentes de los artefactos NTFS.
MFT media alta Contrasta si los TMS Creación son diferentes entre $SI y $FN
9. Resultados
s
Los casos de prueba para la validación de la metodología se conformarán tanto en base a
manipulaciones del TMS de Creación con escrituras directas (con manipulación de $SI y
$FN) y lógicas (con manipulación del $SI), como a comportamientos cotidianos del sistema
exentos de manipulaciones, sobre los que deberían limitarse los falsos positivos.
9.1
.1 Análisis sobre las operaciones típicas de uso
Para solventar la deficiencia de casos de prueba y favorecer el análisis de falsos positivos,
se crea una imagen sobre
bre la que se ha ejecutado un guión de operaciones típicas del uso de
un dispositivo, y posteriormente se la somete al análisis de la herramienta.
Se constata que las operaciones realizadas por el sistema sobre una misma entrada de un
archivo en la MFT, no producen cambios en los TMS de Creación [17].
En escrituras directas sólo es capaz de detectar uno de los casos de atraso a través
del detector MFT/LOG/IDX, utilizando entradas de índices no eliminadas del
d log por la
acción de SetMace.
9.3
.3 Timeline generado
genera
hubiera sido posible establecer el del registro de la entrada en el USNJrnl, pero no sería
suficientemente preciso para fines forenses.
10. Garantías
arantías de aplicabilidad
La metodología se considera aplicable,
aplicable en cuanto se dispone de una herramienta que la
implementa, y que ha sido creada en un lenguaje portable como Python, evitando el uso de
software privativo en su desarrollo. Al sustentarse en parsers Open Source,
Source se entiende que
existe cierto grado de portabilidad a través del uso de compliaciones de los parsers en
diferentes entornos,, aunque el desarrollo se haya realizado en un entorno
ent Windows con
compilaciones para dicho sistema.
sistema
Los resultados obtenidos son referidos al driver de Windows para NTFS 3.1, por lo que es
posible que las implementaciones de drivers para otro sistemas operativos el
comportamiento pueda variar, atendiendo
atendiendo a la forma en que se actualicen los TMS de los
archivos en respuesta a las operaciones sobre ellos.
11. Conclusiones
ones
Este
ste proyecto afronta una problemática de suma importancia en la investigación forense
digital que es clave en la reconstrucción de hechos, que pueden resultar decisivos a la hora
de concluir si ha existido o no una conducta malintencionada por parte del usuario.
real. Para obtener mayor potencia de detección, se han combinado indicios de fuentes
diversas, de tal manera que si se pierde información de un artefacto, o el indicio no es lo
suficientemente significativo, se puede complementrar con el de otro.
La aportación realizada por este Trabajo Fin de Máster es una herramienta que emplea la
capacidad de detección de diferentes artefactos NTFS y que traduce en “indicadores de
compromiso” la manipulación de TMS de archivos, postulándose como una alternativa Open
Source de apoyo a los investigadores forenses. Teniendo además en cuenta que los
métodos de detección estándar no van más allá del análisis de la MFT y del contraste de los
TMS de $SI contra los de $FN.
12. Mejoras
En principio la metodología ha probado con imágenes NTFS 3.1 formateadas bajo Windows,
pero podría mejorarse si se amplia el estudio a imágenes gestionadas por drivers NTFS de
otras plataformas (Mac OSX o Linux), con el objetivo de poder afrontar un análisis forense a
cualquier dispositivo físico que posea un volumen NTFS, independientemente de su origen.
Las heurísticas empleadas son simples, por lo que una mejora evidente es la aplicación de
heurísticas más potentes, que tuvieran por ejemplo presente la afectación producida sobre
los TMS de sus directorios padre.
Otra de las posibles mejoras consiste en crear un parser propio sobre los artefactos NTFS e
integrarlo con la herramienta, de tal manera que se pueda prescindir del uso de software de
terceros.
Enlaces
[1] Carrier, B. (2005). File System Forensic Analysis.
[2] Raghavan, S. (2014). A Framework for Identifying Associations in Digital Evidence Using
Metadata
[3] Schatz, B., Mohay, G., Clark, A. (2006). A correlation method for establishing provenance
of timestamps in digital evidence, Digital Investigation, Volume 3, Supplement, September
2006, Pages 98-107.
[4] Chen, K., Clark, A., De Vel, O., & Mohay, G. (2003). ECF - Event correlation for forensics.
In First Australian Computer Network and Information Forensics Conference.
[5] Gudjonsson, K. (2010). Mastering the super timeline with log2timeline. Sans Institute.
Infosec forensic reading room.
[6] Hargreaves, C., Patterson, J. (2012). An automated timeline reconstruction approach for
digital forensic investigations. Digital investigation, 9,69-79.
[7] Chabot, Y., Bertaux, A., Nicolle, C., & Kechadi, T. (2015). An Ontology-Based Approach
for the Reconstruction and Analysis of Digital Incidents Timelines.
[8] The Internet Society. (2002). RFC 3227. Guidelines for Evidence Collection and Archiving.
Recuperado el 2 de julio de 2016 de https://tools.ietf.org/pdf/rfc3227
[9] Case, A., Cristina, A., Marziale, L., Richard, G. & Roussev, V. (2008). FACE: Automated
digital evidence discovery and correlation, Digital Investigation 5, 65-75.
[10] Turnbull, B., Randhawa, S. (2015). Automated event and social network extraction from
digital evidence sources with ontological mapping, Digital Investigation, Volume 13, June
2015, Pages 94-106
[11] Kälber, S., Dewald, A., & Idler, S. (2014). Forensic Zero-Knowledge Event
Reconstruction on Filesystem Metadata.
[14] Zdzichowski, P., Sadlon, M., Véiséinen, T., Munoz, A., Filipczak, K. (2014). Anti-Forensic
Study
[16] Microsoft. File System Behavior in the Microsoft Windows Environment. Microsoft.com.
Recuperado el 6 de septiembre de 2016 de
http://download.microsoft.com/download/4/3/8/43889780-8d45-4b2e-9d3a-
c696a890309f/File%20System%20Behavior%20Overview.pdf
[17] Sans DFIR. Windows forensic analysis poster. Recuperado el 10 de septiembre de 2016
de https://www.sans.org/security-resources/posters/windows-forensics-evidence-
of/75/download
[19] Gendowne, D., Ivancic, C., Dampier, D. (2012). Who Dun it: A Study of MAC Time
Update on NTFS. ASEE Southeast Section Conference.
[20] Solomon A., Russinovich M., Ionescu A. (2012). Windows Internals, Sixth Edition, Part 2.
Microsoft Press.
[23] Windows Incident Response Blog. How do you “do” analysis. Harlan Carvey. 2015.
Recuperado el 8 de julio de 2016 de http://windowsir.blogspot.com.es/2015/03/how-do-you-
do-analysis.html.
[24] Ballenthin, W., Hamm, J. (2012). Incident Response With NTFS INDX Buffers – Part 4:
The internal structures of an Indx attribute. FireEye. Recuperado el 27 de agosto de 2016 de
https://www.fireeye.com/blog/threat-research/2012/10/incident-response-ntfs-indx-buffers-
part-4-br-internal.html
[27] Hacking exposed computer forensic blog. David Cowen. Happy new year, new post The
NTFS Forensic Triforce. Recuperado el 8 de julio de 2016 de
http://www.hecfblog.com/2013/01/happy-new-year-new-post-ntfs-forensic.html
[29] Blocking Direct Wirte Operations to Volumes and Disks. Microsoft Devlopment Network.
Recuperado el 2 de septiembre de 2016 de https://msdn.microsoft.com/en-
us/library/windows/hardware/ff551353%28v=vs.85%29.aspx
[31] Creating, Modifying, and Deleting a Change Journal. Microsoft Development Network.
Recuperado el 11 de agosto de 2016 de https://msdn.microsoft.com/en-
us/library/aa363877%28v=vs.85%29.aspx
[33] W. Ballenthin, J. Hamm. (2012). Incident Response With NTFS INDX Buffers – Part 1:
Extracting and Indx attribute. FireEye. Recuperado el 27 de agosto de 2016 de
https://www.fireeye.com/blog/threat-research/2012/09/striking-gold-incident-response-ntfs-
indx-buffers-part-1.html
[34] Cho, G. (2013). A computer forensic method for detecting timestamp forgery in NTFS
[36] Uitjewaal, F., Prooijen, J. (2016). UsnJrnl Parsing for File System History
Anexos
[A1] Módulo de detección de la herramienta
[A4] Relación entre operaciones sobre archivos y TMS del atributo $FILE_NAME [41].