Filesystems

File systems #

Il file system è lo standard che definisce le regole con cui il sistema operativo gestisce i dischi fissi. I file systems sono lo “scheletro” di un sistema operativo. Alcuni file system noti possono essere:

  • NTFS;
  • FAT32, FAT16, exFAT;
  • ext4, ext3, ext2;
  • APFS, Mac FS;
  • ReFS, btrfs, zfs.

NTFS #

Parleremo, per semplicità, di Windows, che adotta come NTFS (New Technology File System) come file system predefinito.

MACB Timestamps #

I MACB timestamp sono una serie di 4 timestamp fondamentali che indicano degli eventi basici. Ecco il significato di MACB e i timestamp indicati:

  • (M) Modified / Modificato: l’ultima volta che il contenuto del file è stato cambiato;
  • (A) Access / Accesso: l’ultima volta che il file è stato aperto (sembra utile in verità irrilevante);
  • (C) Changed / Cambiato: indica un cambiamento del suo indice sulla Master File Table $MFT;
  • (B) Birth / Creazione: il momento in cui il file è apparso sul disco.

Il timestamp access è irrilevante, poichè tutti i servizi per la compatibilità e simili, accedono regolarmente ad ogni file per adattarlo alla versione attuale del sistema operativo. Un accesso del file può avvenire in diverse situazioni, spesso non per mano dell’utente, il che rende questo timestamp molto inaffidabile quando si cerca di dimostrare l’apertura o l’esecuzione di un file.

Master File Table #

La Master File Table è un file che indica ogni singolo file presente sul disco fisso. Il parsing di tale artefatto è fondamentale per una conoscenza accurata dei file presenti sul disco.

Journal #

Il journal è un registro di tutti i movimenti avvenuti sul disco. Tutto questo viene registrato nel file $USNJrnl, trovato nella cartella C:\$Extend, nascosta e inaccessibile attraverso il file explorer. Una particolarità di questo artefatto è che il file $USNJrnl in se è vuoto, ma esso ha due stream di dati alternative che contengono le seguenti informazioni:

  • $Max: contiene metadati, come la dimensione massima del journal;
  • $J: contiene tutti gli USN records dei vari eventi.

Qualsiasi spostamento di file, un cambiamento di dati, una rinominazione o una eliminazione; tutto viene salvato sul journal. Tali informazioni vengono comunemente lette attraverso l’utilizzo dell’utility di sistema fsutil. Non è l’unico modo per leggere tali informazioni. Si può accedere al journal anche tramite strumenti di terze parti, come OSForensic o FTK Imager.

$LogFile #

Il $LogFile è un file particolare che è simile in funzionalità al $USNJrnl, ma invece di salvare USN records, salva i cambiamenti ai metadati dei file. Questo comprende i timestamp MACB del file relativo a varie casistiche e collegamenti alla Master File Table. Questo artefatto è estremamente utile e prezioso, anche se è particolarmente difficile estrarne il contenuto. Uno dei pochi strumenti, se non l’unico, è NTFS Log Parser.