Fondamenti di analisi · Lezione 2 di 3
Timestamp e fusi orari
7 min di lettura
La maggior parte delle conclusioni forensi riguarda il tempo: quando è stato creato un file, quando è stato collegato un dispositivo, quale evento si è verificato per primo. I timestamp sembrano precisi, ma ogni sistema memorizza il tempo in modo diverso, registra eventi diversi e può basarsi su un orologio errato. Una sequenza temporale costruita senza verificare questi tre aspetti può collocare gli eventi nell'ordine sbagliato, e un errore di un'ora dovuto al fuso orario è sufficiente a cambiare una conclusione. La lezione 6.3 illustra gli artefatti che contengono molti di questi timestamp.
Che cosa registra un timestamp
I file system registrano comunemente fino a quattro riferimenti temporali per ciascun file, spesso abbreviati in MACB:
| Lettera | Nome | Di norma aggiornato quando |
|---|---|---|
| M | Modifica | Viene scritto il contenuto del file |
| A | Accesso | Il file viene letto, se il sistema registra gli accessi |
| C | Cambiamento | Cambiano i metadati del file (NTFS: il record MFT; Linux: l'inode) |
| B | Nascita (creazione) | Il file viene creato in quella posizione |
Il significato esatto dipende dal file system e dal sistema operativo. In Linux, il tradizionale "ctime" indica il cambiamento dei metadati, non la creazione; l'ora di creazione è un campo separato registrato da ext4. Gli orari di accesso richiedono particolare cautela: Windows può disabilitare gli aggiornamenti dell'ultimo accesso e la loro registrazione dipende dalla versione e dalle impostazioni; pertanto, un orario di accesso può essere vecchio, approssimativo o mai aggiornato.
Come i sistemi memorizzano il tempo
I computer memorizzano il tempo come un conteggio a partire da un punto iniziale fisso, chiamato epoca. Sistemi diversi utilizzano epoche e unità diverse.
| Sistema | Memorizzato come | Note |
|---|---|---|
| NTFS (Windows) | Intervalli di 100 nanosecondi dal 1° gennaio 1601, UTC | Denominato FILETIME; utilizzato anche nel registro di sistema e nei registri eventi |
| FAT32 | Data e ora locali | Ora di modifica con risoluzione di 2 secondi; ora di accesso registrata solo come data |
| Unix, Linux, Android | Secondi dal 1° gennaio 1970, UTC | L'epoca Unix; ext4 aggiunge i nanosecondi |
| APFS | Nanosecondi dal 1° gennaio 1970, UTC | File system Apple |
| Database Apple | Secondi dal 1° gennaio 2001, UTC | Spesso denominato tempo assoluto Mac o tempo Cocoa |
| Browser Chromium | Microsecondi dal 1° gennaio 1601, UTC | Utilizzato nel database della cronologia del browser |
L'insegnamento pratico è duplice. Un timestamp non significa nulla finché non se ne conosce il formato, quindi gli strumenti devono decodificarlo correttamente. Inoltre, FAT memorizza l'ora locale senza indicare il fuso orario, perciò l'esaminatore deve accertare quale fuso orario fosse utilizzato dal dispositivo che lo ha scritto.
Due insiemi di timestamp NTFS
Ogni file NTFS ha due insiemi di quattro timestamp. L'insieme in $STANDARD_INFORMATION è quello visualizzato da Esplora file di Windows e i programmi possono modificarlo tramite le normali funzioni di sistema; gli strumenti che alterano intenzionalmente i timestamp, noti come strumenti di timestomping, modificano solitamente questo insieme. L'insieme in $FILE_NAME è gestito dal file system stesso e viene aggiornato in un numero più limitato di situazioni, ad esempio quando un file viene creato, rinominato o spostato. Un'ora di creazione in $STANDARD_INFORMATION molto precedente a quella in $FILE_NAME può essere un segno di manipolazione, ma anche le normali operazioni possono far differire i due insiemi. Tali differenze costituiscono un motivo per approfondire, non una conclusione di per sé.
Fusi orari e ora legale
UTC (Tempo coordinato universale) è il riferimento globale. L'ora locale corrisponde all'UTC più o meno uno scostamento, che può cambiare nel corso dell'anno quando inizia o termina l'ora legale. Windows registra il fuso orario configurato nel registro di sistema, in SYSTEM\CurrentControlSet\Control\TimeZoneInformation, e gli altri sistemi conservano impostazioni analoghe.
- Accertare quale fuso orario fosse impostato su ciascun dispositivo e se sia cambiato nel tempo.
- Sapere se ciascuna fonte memorizza l'UTC o l'ora locale e come lo strumento utilizzato la visualizza.
- Prestare attenzione ai passaggi all'ora legale e all'ora solare: in primavera viene saltata un'ora locale e in autunno un'ora si verifica due volte.
- Riportare gli orari in UTC con lo scostamento indicato, ad esempio 2026-03-14T12:47:05Z, oppure l'ora locale con il relativo scostamento, 2026-03-14T09:47:05-03:00.
Orologi errati
I timestamp sono accurati solo quanto l'orologio che li ha generati. Un computer che non si sincronizza con un server di riferimento temporale può accumulare una deriva di secondi o minuti, e un orologio può essere impostato in modo errato per sbaglio o intenzionalmente. Una buona prassi consiste nel registrare, al momento dell'acquisizione, l'ora indicata dall'orologio del dispositivo accanto a un riferimento temporale affidabile e nell'annotare la differenza, chiamata scostamento dell'orologio o offset. Se l'orologio di un portatile è avanti di 4 minuti, i suoi timestamp vengono corretti di 4 minuti quando vengono confrontati con i log di un server, e la relazione spiega la correzione. Lo scostamento al momento dell'acquisizione non dimostra quale fosse lo scostamento mesi prima: si tratta di un'ulteriore limitazione da dichiarare.
Copia, spostamento e altre sorprese
Le normali operazioni producono configurazioni di timestamp che possono trarre in inganno un esaminatore poco attento. La copia di un file in Windows assegna in genere alla copia una nuova ora di creazione, mantenendo l'ora di modifica originale; di conseguenza, la copia sembra essere stata modificata prima di essere creata. Lo spostamento di un file all'interno dello stesso volume ne conserva generalmente i timestamp. L'estrazione di file da un archivio ZIP, il loro download o la loro sincronizzazione dal cloud possono impostare gli orari in modi che dipendono dal programma utilizzato. Quando un timestamp sembra impossibile, la prima ipotesi dovrebbe essere un'operazione ordinaria, da verificare prima di trarre qualsiasi conclusione su un'eventuale manomissione.
Costruire una sequenza temporale
Una sequenza temporale colloca in un'unica successione eventi provenienti da molte fonti: timestamp del file system, voci del registro di sistema, registri eventi, cronologia del browser, registrazioni telefoniche, log dei server. Strumenti gratuiti come Plaso (log2timeline) possono estrarre e unire timestamp provenienti da numerosi artefatti. Per costruirne una che regga alla verifica:
- Convertire ogni orario in UTC, correggendo gli scostamenti noti degli orologi.
- Conservare accanto a ciascun evento la relativa fonte e la risoluzione temporale, poiché un orario FAT con risoluzione di 2 secondi e un orario ext4 con risoluzione di un nanosecondo non hanno la stessa precisione.
- Cercare riscontri: un evento registrato da due fonti indipendenti ha un valore probatorio molto maggiore rispetto a un evento registrato da un solo timestamp.
Un esempio svolto
Un'azienda afferma che un file riservato è stato copiato su un'unità USB il 14 marzo. I timestamp NTFS del portatile sono in UTC; l'unità USB è FAT32 e memorizza l'ora locale; il portatile era impostato su UTC−03:00. La copia sull'unità USB riporta le 09:47:04 ora locale, che corrispondono alle 12:47:04 UTC. Le registrazioni del portatile relative al dispositivo USB e all'apertura del file riportano le 12:47:05 UTC. La differenza di un secondo è coerente con la risoluzione di 2 secondi di FAT. L'esaminatore riporta gli eventi in UTC, spiega la conversione e la risoluzione e considera la corrispondenza tra le due fonti indipendenti come un riscontro.
Focus sull'esame: Saper interpretare MACB, sapendo che i significati variano in base al file system (in Linux ctime indica il cambiamento dei metadati, non la creazione), perché gli orari di accesso sono inaffidabili e quali sono i principali formati di memorizzazione: NTFS FILETIME (intervalli di 100 nanosecondi dal 1601, UTC), ora locale FAT con risoluzione di 2 secondi, secondi Unix dal 1970. Conoscere i due insiemi di timestamp NTFS e quali modifiche apporta il timestomping. Sono da attendersi scenari sulla conversione dell'ora locale in UTC, sull'ora legale, sullo scostamento dell'orologio al momento dell'acquisizione, sulle configurazioni dei timestamp in caso di copia rispetto allo spostamento e sul riscontro degli orari tra fonti diverse.