Buena parte de la pregunta «qué pasó en este ordenador entre las 14:00 y las 16:00» se responde directamente con el journal USN. Los registros no son un log de syscalls y no están etiquetados con usuario — pero tienen algo casi tan útil: un registro de alta frecuencia, por operación, de cada archivo que la máquina tocó. Con algo de conocimiento de patrones, puedes recuperar el comportamiento del usuario a la granularidad de guardar Office, navegar, rebuild de IDE, pausa para comer.
Este artículo es la guía de campo para leer el journal como timeline de comportamiento.
Por qué funciona
El journal USN registra qué archivo cambió, cuándo y cómo — y la mayoría de acciones visibles del usuario en un desktop producen una firma reconocible de actividad de archivos. El usuario hace clic en Guardar en Word; Word escribe un temp, renombra atómicamente y hace BasicInfoChange | Close del resultado. Chrome abre una pestaña; el caché de disco se extiende. El IDE recompila; mil archivos objeto aparecen.
Estas firmas no están documentadas en ningún sitio oficial — se aprenden. Aquí va un kit inicial, más los controles del parser que las hacen tratables.
Office en libertad
Cuando un usuario guarda un Word, Excel o PowerPoint, ves:
FileCreate | Close ~$<filename>.docx (archivo de lock)
FileCreate | Close <filename>.tmp (temp atómico)
DataExtend | Close <filename>.tmp × N
RenameOldName | Close <filename>.docx
FileDelete | Close <filename>.docx
RenameNewName | Close <filename>.docx (era <filename>.tmp)
FileDelete | Close ~$<filename>.docx
BasicInfoChange | Close <filename>.docx
El archivo de lock ~$ es la señal de Office de que un documento está abierto; su FileCreate y FileDelete indican el momento de apertura/cierre del documento. El rename atómico .tmp → .docx es el guardado. Los archivos ~$ iniciales son sorprendentemente útiles porque existen solo mientras el documento está abierto.
Truco de pivot: filtrar FileCreate cuyo nombre empiece por ~$ para enumerar todos los documentos Office abiertos por el usuario en la ventana. Restar FileDelete de los mismos nombres para encontrar los todavía abiertos al momento de la adquisición (una imagen forense tomada de una máquina viva puede tener archivos de lock para documentos nunca cerrados).
Actividad de navegador
Los navegadores modernos mantienen cachés pesados en disco. Chrome y Edge usan \Users\<u>\AppData\Local\<browser>\User Data\Default\Cache\Cache_Data\ (o Code Cache\); Firefox usa \Users\<u>\AppData\Local\Mozilla\Firefox\Profiles\<id>\cache2\.
Lo que ves durante la navegación:
- Una tasa baja sostenida de
FileCreate | CloseyDataExtend | Closeen el directorio de caché. FileDelete | Closeocasionales mientras el LRU desaloja viejos.- Cada pocos minutos,
RenameNewNamede archivos de caché al compactarse el índice.
Las ráfagas de escrituras de caché se correlacionan bien con visitar sitios pesados en media o SPA. Los periodos tranquilos se correlacionan con el usuario ausente o en una página de carga larga.
Los nombres de archivos de caché no te dicen qué URLs se visitaron (eso está en la propia base del navegador), pero la cadencia del I/O de caché te dice que el usuario navegaba. Combina con FileCreate del journal en Downloads\ para identificar descargas deliberadas.
Actividad de código
Si el usuario es dev, los rebuilds de IDE producen ráfagas muy características:
- Webpack/Vite/Turbopack — muchos
FileCreateennode_modules\.cache\ydist\, a menudo cientos por build. - Visual Studio C++ —
FileCreatede.objy.pdben subárbolesDebug\oRelease\. - Cargo (Rust) — los builds incrementales tocan
target\debug\incremental\mucho; los completos tocantarget\debug\deps\.
Una ráfaga de 5 minutos de FileCreate en node_modules\ seguida de un enjambre DataExtend sobre dist\bundle.js es «corrió el build, luego un dev server recargó».
Descargas e instalaciones
Una descarga directa produce:
FileCreate | Close \Users\<u>\Downloads\<file>.crdownload (Chrome)
DataExtend | Close \Users\<u>\Downloads\<file>.crdownload × N
RenameNewName | Close \Users\<u>\Downloads\<file>
BasicInfoChange | Close \Users\<u>\Downloads\<file>
Las extensiones .crdownload, .part, .download son Chrome, Firefox, Edge respectivamente. El rename atómico al final es lo que hace que el archivo aparezca «completo».
La instalación de un nuevo programa típicamente sigue: FileCreate de un instalador .exe/.msi en Downloads, luego una ráfaga de FileCreate en \Program Files\ o \Program Files (x86)\ o \Users\<u>\AppData\Local\Programs\. El histograma minuto a minuto las hace triviales de identificar.
Juntando todo: una timeline diaria
La receta para un reporte «qué hizo hoy el usuario»:
- Sacar el journal parseado del usuario para el día. Restringir a registros bajo
\Users\<u>\para quitar ruido del sistema. - Calcular, por bucket de 10 minutos: número de
FileCreate,DataExtend,BasicInfoChange. - Plotear las tres series. Su forma dice la actividad aproximada:
- Muchos creates + extend: escribir/guardar contenido.
- Mucho
BasicInfoChangesolo: navegar, scroll, edición ligera. - Mucho extend con pocos creates: descargas grandes o reproducción multimedia.
- Creates sostenidos en directorios
Cache\: navegar. - Creates sostenidos en
node_modules\/Debug\/target\: codear.
- Anotar los picos inspeccionando los nombres de archivo más frecuentes en cada bucket. Los nombres de archivos de Office son grandes anclajes; los nombres de caché generalmente se pueden ignorar.
El parser de este sitio expone el histograma por minuto en su componente timeline — clicar una barra filtra la tabla a esa ventana, que es el workflow de arriba sin escribir código.
Trampas
- Backups y escaneos AV producen ráfagas de
BasicInfoChangea escala de volumen que se ven superficialmente como actividad de usuario. Suelen seguir horarios programados y visitan todos los directorios, no solo los del usuario, lo que las hace fáciles de identificar y excluir. - Agentes de sync (OneDrive, Dropbox) generan tráfico de journal que se ve como actividad de usuario pero es trabajo del propio agente. Filtrar a registros cuya ruta esté fuera de la carpeta de sync para enfocarte en trabajo iniciado por el usuario.
- Indexadores de fondo (
SearchIndexer.exe) tocan archivos en\Users\<u>\AppData\Roaming\Microsoft\Windows\Recent\y\ProgramData\Microsoft\Search\— fáciles de meter en el cajón ruido del sistema.
Adónde ir luego
- La referencia de eventos Windows de Microsoft Learn para parear la actividad del journal con events de Security/Sysmon.
- El pack de artefactos de Velociraptor — muchos artefactos comunitarios usan correlaciones journal + MFT como las de arriba.
- Para una timeline a escala en producción, Plaso (
log2timeline) puede ingerir un journal parseado y fusionarlo con cualquier otro artefacto de timeline Windows en una super-timeline.
El journal por sí solo no sustituye una super-timeline en regla. Pero para el 80% de las investigaciones, «qué estaba haciendo el usuario entre las 14:00 y las 16:00» se responde solo con $J y $MFT, en el tiempo que cuesta arrastrarlos a esta página.