Ogni record MFT memorizza quattro timestamp in due attributi distinti — $STANDARD_INFORMATION e $FILE_NAME. Entrambi registrano gli stessi quattro momenti:
- Creazione — prima scrittura del file sul volume
- Modifica — ultima modifica del contenuto
- Accesso — ultima lettura del file
- Modifica MFT — ultimo aggiornamento del record stesso
Sono otto valori per record. Non sempre sono sincronizzati.
Perché esistono due insiemi
$STANDARD_INFORMATION (SI) viene aggiornato a ogni operazione di file di routine. $FILE_NAME (FN) è stato aggiunto in origine per la compatibilità POSIX e viene aggiornato molto meno spesso — tipicamente solo alla creazione, al rinomina o allo spostamento tra cartelle.
In pratica i timestamp SI cambiano in continuazione mentre quelli FN restano stabili.
Il timestomping lascia un'impronta
Gli strumenti che alterano i timestamp di solito chiamano l'API di Windows SetFileTime. Questa scrive in SI. Non tocca FN.
Dopo un timestomping, SI mostra ciò che l'attaccante ha scelto — spesso retrodatato di anni — mentre FN continua a riflettere la vera data di creazione, a volte con uno scarto considerevole.
Due pattern da osservare in triage:
- Creazione SI precedente alla creazione FN. Un file non può esistere prima di essere stato nominato: impossibile in modo naturale.
- SI e FN modifica differiscono di più di pochi secondi per un file che chiaramente non è stato né rinominato né spostato.
Entrambi sono forti indicatori di manomissione dei metadati.
La granularità racconta di più
NTFS memorizza i timestamp con risoluzione di 100 nanosecondi, ma molti strumenti di timestomping arrotondano al secondo. Un timestamp che termina con .0000000 UTC è sospetto — l'attività naturale di Windows lascia di solito intatta la precisione al di sotto del secondo.