← Torna al blog

Dimostrare che un file è esistito su un sistema Windows

· 2 min di lettura

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 ($DATA residente);
  • 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:

  1. 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 $MFT sia stato falsificato — operazione titanica.
  2. Otto timestamp si controllano a vicenda. La manipolazione di solito lascia tracce: SI cambiato ma FN intatto è la firma del timestomping.
  3. $UsnJrnl e $LogFile corroborano. Se il $MFT dice 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.

Risorse esterne