FAT e NTFS risolvono lo stesso problema: tenere traccia di quali cluster appartengono a quale file. I due filesystem rispondono in modo molto diverso, e la differenza è l'intero motivo per cui la forense Windows moderna ha il toolkit che ha. Su FAT, puoi spesso provare che un file sia esistito. Su NTFS, di solito puoi provare cosa c'era dentro, quando è stato toccato, chi vi si è collegato e cosa gli è successo dopo.
Come funziona FAT, in un paragrafo
FAT mantiene una singola tabella in cui ogni voce mappa un cluster sia al cluster successivo nel file, a un marcatore di fine catena, o al valore 0 che significa libero. Una voce di directory separata accoppia un nome di file con il primo cluster del file. Per leggere un file, percorri la catena. Per eliminarne uno, FAT azzera ogni voce di cluster nella catena e sostituisce il primo carattere del nome nella voce di directory con 0xE5. I dati restano, ma la catena stessa è distrutta: puoi recuperare il primo cluster e un nome parziale, ma il collegamento ai cluster successivi è perduto.
Quell'ultima frase è l'intero problema del recupero FAT. Gli strumenti di recupero FAT possono trovare frammenti di file. Non possono riassemblarli in modo affidabile quando il file era frammentato nel disco. I file sequenziali (telecamere, registratori audio che scrivono un grosso WAV) tornano; i file frammentati (qualunque cosa Office, qualunque cosa scritta nel tempo, qualunque cosa su un volume mezzo pieno) tornano parzialmente se mai.
Come funziona NTFS
NTFS sostituisce la tabella di allocazione con la Master File Table, un file in cui ogni altro file ha almeno un record da 1.024 byte che lo descrive. Ogni record è un piccolo contenitore con attributi tipizzati: $STANDARD_INFORMATION, $FILE_NAME, $DATA, $INDEX_ROOT e gli altri descritti nel riferimento attributi.
Cruciale, $DATA non punta al "primo cluster" e non si basa su una tabella separata per concatenare. Porta una runlist completa: una sequenza di coppie (LCN iniziale, lunghezza) che copre ogni frammento del file. Eliminare un file non rompe quella lista. La lista vive dentro il record, e il record persiste finché qualcos'altro non rivendica il suo slot.
Questa è la singola decisione di design che ha cambiato tutto per la forense.
Cosa cambia per la forense
I file eliminati conservano la loro runlist. Finché lo slot MFT non viene riusato, puoi leggere la runlist di un file eliminato, andare ai suoi cluster (che l'allocatore può non aver ancora distribuito) e ricostruire i dati anche quando il file era pesantemente frammentato. FAT non può farlo.
Otto timestamp per record, due resistenti al tampering. $STANDARD_INFORMATION e $FILE_NAME portano ciascuno quattro timestamp. SI si muove a ogni operazione; FN è stabile dopo la creazione. I due set si controllano a vicenda. Vedi i quattro timestamp MFT per il segnale di timestomping che ciò fa emergere. FAT porta un timestamp di creazione, un timestamp di modifica (in formato DOS, con granularità di due secondi) e una data di accesso opzionale. Nessun controllo incrociato, nessuna granularità, nessuna difesa contro un timestomping banale.
Dati residenti per file piccoli. I file sotto i circa 700 byte di dati vivono interamente dentro il loro record MFT. Recupera il record, recupera il file, senza mai toccare l'area dati. Ecco come un piccolo file di testo eliminato un mese fa e sovrascritto nei cluster di dati può ancora tornare intatto. Vedi dati residenti.
Hard link e ADS. Un singolo record MFT può avere più attributi $FILE_NAME (hard link) e più attributi $DATA (lo stream primario più gli alternate data stream). La prova forense da questi è ricca e FAT non ha nulla di equivalente. ADS è un posto dove gli attaccanti nascondono payload. Gli hard link sono un modo per far apparire lo stesso file in più directory con diversi riferimenti al padre; utile per tracciare meccanismi di persistenza.
Journal. Il journal dei cambiamenti $UsnJrnl registra ogni operazione sui metadati: creazione, eliminazione, rinomino, sovrascrittura dei dati, con timestamp e motivi. $LogFile registra dettaglio a livello transazionale. FAT non registra né l'uno né l'altro.
Descrittori di sicurezza. $Secure ospita il magazzino delle ACL; ogni file referenzia la sua ACL tramite ID. Rilevanza forense: puoi provare chi ha avuto accesso e quando le ACL sono cambiate (SetSecurityInfo scrive un motivo USN SECURITY_CHANGE). FAT non ha alcun concetto di permessi per file.
Reparse point. Symlink, junction, mount point, placeholder OneDrive, stub di dedup e metadati POSIX di WSL vivono tutti in attributi $REPARSE_POINT. FAT non può rappresentare nulla di tutto ciò; le funzionalità Windows moderne che dipendono dai reparse point semplicemente non funzionano su volumi FAT.
L'effetto aggregato: se hai la scelta tra un'immagine FAT e un'immagine NTFS dello stesso incidente, l'immagine NTFS quasi sempre risponderà a più domande. Spesso di un ordine di grandezza.
Dove incontri ancora FAT
FAT non è morto. Lo incontrerai ancora su:
- Chiavette USB formattate in fabbrica (exFAT su quelle più grandi, FAT32 su quelle piccole).
- La partizione di sistema EFI su ogni installazione UEFI di Windows (FAT32, intorno a 100-300 MB, contiene il Windows Boot Manager).
- Schede SD di telecamere, droni, dispositivi embedded.
- Vecchi controller industriali e una lunga coda di Linux embedded che ancora default su FAT per lo storage rimovibile.
- Alcuni volumi formattati Mac condivisi con Windows (exFAT).
Per i volumi di OS su qualsiasi macchina Windows moderna, stai guardando NTFS. ReFS compare su alcune installazioni Server e Storage Spaces ma non sul disco di boot. L'artefatto che vuoi è $MFT.
exFAT, in breve
exFAT è il caso intermedio. È ciò che Microsoft ha usato per sostituire FAT32 sui volumi troppo grandi per il limite pratico di 32 GB di FAT32. Tabella di allocazione moderna con catene di cluster, ma niente journal, niente MFT, niente ADS, niente hard link, niente descrittori di sicurezza. Da una prospettiva forense è più vicino a FAT che a NTFS. Ottieni timestamp (più granulari di FAT), ottieni la catena di cluster e ottieni le voci di directory. Non ottieni nessuna delle cose che rendono la forense NTFS preziosa.
Quando vedi exFAT su un dispositivo rimovibile che contava, il tuo tooling cambia: PhotoRec e scalpel per il carving di firma, fsstat e fls di Sleuth Kit per la poca struttura che esiste, e un riconoscimento onesto nel tuo report che il set di artefatti è limitato.
Una conseguenza pratica
A volte la gente chiede perché la loro chiavetta USB formattata FAT ha reso così poco rispetto al volume NTFS dello stesso incidente. La risposta onesta è strutturale: il filesystem ha deciso quali prove lasciare anni prima che l'incidente accadesse. La scelta di formato è essa stessa una variabile forense, e qualcuno abituato a prendere artefatti dai desktop Windows resterà nettamente deluso da una scheda di telecamera exFAT.
Se controlli la scelta (baseline aziendale, supporti di imaging di laboratorio), scegli NTFS. Se non la controlli (incident response su un bersaglio che non hai specificato), accetta i vincoli e cambia il tuo tooling.
Letture aggiuntive
- Microsoft, confronto FAT vs NTFS. Matrice di funzionalità ufficiale.
- Brian Carrier, File System Forensic Analysis. I capitoli che confrontano FAT e NTFS restano il riferimento definitivo.
- La specifica exFAT (Microsoft). Vale la lettura una volta se ti capita regolarmente di trattare supporti rimovibili.