Le indagini forensi ruotano spesso attorno a una sola domanda: questo file è mai stato su questo computer? Non «è sul disco adesso?» — quello è dir. La versione difficile è: possiamo dimostrare che era sul disco ieri, la settimana scorsa, l'anno scorso? Sui volumi NTFS, il $MFT è di solito la risposta più solida.
Cosa sopravvive a una cancellazione
Quando un file viene eliminato su NTFS, il bit «in uso» del suo record MFT viene azzerato, ma il resto del record rimane. Quel record porta:
- il nome di file completo (in
$FILE_NAME); - il riferimento alla cartella padre;
- quattro timestamp (creazione, modifica, accesso, modifica MFT) — in doppia copia, in SI e FN;
- le dimensioni logica e fisica;
- per i file piccoli, l'intero contenuto (
$DATAresidente); - per i più grandi, la runlist dei cluster che contenevano i dati.
Ognuno di questi elementi è prova diretta. Un record MFT eliminato con $FILE_NAME = piano-segreto.docx, cartella padre \Users\bob\Documents e SI-creazione 2024-11-03T14:02:11Z dimostra che un file con quel nome esisteva in quella cartella in quel giorno, indipendentemente da cosa mostrerebbe oggi dir.
La forza probatoria
Tre proprietà fanno dei record MFT una prova forense solida:
- NTFS li scrive da sé. Non sono modificabili dall'utente con i normali strumenti Windows. Un imputato non può sostenere che siano stati piazzati senza che l'intero
$MFTsia stato falsificato — operazione titanica. - Otto timestamp si controllano a vicenda. La manipolazione di solito lascia tracce: SI cambiato ma FN intatto è la firma del timestomping.
$UsnJrnle$LogFilecorroborano. Se il$MFTdice che un file è stato creato all'ora T, il change journal dovrebbe registrare l'evento alla stessa ora. Le discrepanze sono esse stesse prova.
Cosa il $MFT non prova da solo
Il $MFT prova che il file esisteva in una determinata cartella in un determinato momento. Non prova:
- chi lo abbia creato o vi abbia avuto accesso — servono i Security event log;
- quale programma lo abbia prodotto — Prefetch e ShimCache aiutano qui;
- cosa contenesse, per i file grandi — a meno di recuperare i cluster dei dati;
- se sia mai stato aperto da un utente — Jump Lists e file LNK sono più utili.
Una risposta completa di solito fonde il $MFT con gli artefatti circostanti. Ma il $MFT è la pietra angolare — senza, gli altri tasselli non hanno nulla a cui ancorarsi.