Fondamenti di analisi · Lezione 1 di 3
I file system in sintesi
7 min di lettura
Quasi ogni domanda a cui un esaminatore risponde riguardo a un computer, un telefono o una scheda di memoria passa attraverso il relativo file system. Il file system determina dove vengono memorizzati i dati, come vengono denominati, quando sono stati modificati e cosa accade quando vengono eliminati. Comprenderne il funzionamento spiega uno dei fatti più utili nell'informatica forense: spesso è ancora possibile trovare i dati eliminati. Ai timestamp è dedicata una lezione specifica (Lezione 6.2), mentre le tracce lasciate dai programmi e dagli utenti sono trattate nella Lezione 6.3.
Cosa fa un file system
Un dispositivo di memorizzazione è una lunga sequenza di settori numerati, solitamente di 512 o 4.096 byte ciascuno. Di per sé non contiene file né cartelle. Un file system organizza questo spazio e tiene traccia di quattro elementi:
- Nomi e cartelle: la gerarchia visibile all'utente, ad esempio Documents\Invoices\march.xlsx.
- Metadati: informazioni su ciascun file, come dimensioni, timestamp, proprietario e autorizzazioni.
- Allocazione: quali parti del disco contengono i dati di ciascun file.
- Spazio libero: quali parti del disco sono disponibili per nuovi dati.
Lo spazio viene assegnato in cluster (Windows) o blocchi (Linux e macOS): gruppi di settori che costituiscono l'unità minima occupabile da un file, spesso di 4 KiB. Un file di 10 KiB occupa quindi tre cluster da 4 KiB e la parte inutilizzata dell'ultimo diventa un'importante fonte di elementi probatori, come spiegato di seguito.
Partizioni e volumi
Prima della creazione di un file system, un disco viene suddiviso in partizioni, descritte da una tabella delle partizioni all'inizio del disco.
- MBR (Master Boot Record), lo schema meno recente, consente quattro partizioni primarie e, con settori da 512 byte, dischi fino a 2 TiB.
- GPT (GUID Partition Table), utilizzato dai computer moderni che si avviano con UEFI, supporta dischi molto più grandi e numerose partizioni e conserva una copia di backup della tabella alla fine del disco.
Un volume è una partizione, o un insieme di partizioni, che contiene un file system. Il disco di un portatile ne contiene comunemente diversi: una piccola partizione di avvio, una partizione di ripristino e il volume principale. Un'immagine fisica (Modulo 4) li acquisisce tutti, compreso lo spazio tra le partizioni che non appartiene ad alcuna di esse.
I file system più comuni
| File system | Dove viene utilizzato | Aspetti rilevanti per l'esaminatore |
|---|---|---|
| NTFS | Unità di sistema e dati di Windows | Master File Table con un record per file; journaling; timestamp dettagliati in UTC |
| FAT32 | Unità USB meno recenti, schede di memoria, alcuni dispositivi e partizioni di avvio | Struttura semplice; file limitati a 4 GiB; timestamp nell'ora locale |
| exFAT | Schede di memoria di maggiore capacità (SDXC), unità USB, fotocamere | Progettato per supporti flash; nessun limite di 4 GiB per i file; può registrare lo scostamento rispetto a UTC |
| ext4 | Sistemi Linux e molti dispositivi Android (altri utilizzano F2FS) | Gli inode contengono i metadati; journaling; timestamp con risoluzione al nanosecondo e un orario di creazione |
| APFS | macOS e iOS dal 2017 | Progettato per gli SSD; snapshot; cifratura integrata nel file system |
I Mac meno recenti e alcune unità esterne utilizzano HFS+, il predecessore di APFS. È importante identificare tempestivamente il file system, perché determina quali strumenti possono leggere il volume, come si comportano i dati eliminati e come devono essere interpretati i timestamp.
All'interno di NTFS e FAT
NTFS: la Master File Table
NTFS mantiene una Master File Table (MFT), un file speciale contenente un record, solitamente di 1 KiB, per ogni file e cartella del volume. Ogni record contiene attributi, tra cui $STANDARD_INFORMATION (timestamp e flag), $FILE_NAME (il nome, la cartella padre e un'altra serie di timestamp) e $DATA (il contenuto). I file molto piccoli possono essere memorizzati interamente nel proprio record MFT: in questo caso si parla di dati residenti; i file più grandi hanno il contenuto in cluster situati altrove, la cui posizione è elencata nel record. NTFS mantiene anche registri delle modifiche recenti, come $LogFile e il registro delle modifiche $UsnJrnl, che vengono utilizzati nelle attività di livello esaminatore (examiner-level) per ricostruire quanto accaduto.
FAT: voci di directory e tabella di allocazione
FAT memorizza il nome, le dimensioni, i timestamp e il cluster iniziale di ogni file in una voce di directory all'interno della relativa cartella padre. La File Allocation Table è un elenco con una voce per cluster, che collega ciascun cluster di un file al successivo. La struttura è semplice, il che rende FAT facile da leggere su quasi tutti i dispositivi e facile da esaminare manualmente.
Spazio allocato, non allocato e slack
- Lo spazio allocato appartiene ai file attualmente presenti ed è ciò che un utente, o una copia logica, vede.
- Lo spazio non allocato è contrassegnato come libero. Non è necessariamente vuoto: spesso contiene il contenuto di file eliminati e frammenti di dati precedenti.
- Lo slack del file è lo spazio inutilizzato tra la fine di un file e la fine del suo ultimo cluster. Può contenere residui di ciò che occupava in precedenza quel cluster.
Solo un'immagine fisica o di volume (Modulo 4) conserva lo spazio non allocato e lo slack: questo è uno dei motivi per cui gli esaminatori preferiscono tali immagini quando i dati eliminati possono essere rilevanti.
Cosa fa realmente l'eliminazione
L'eliminazione di un file in Esplora file di Windows o nel Finder di macOS normalmente lo sposta nel Cestino, che è semplicemente un'altra cartella. Lo svuotamento del Cestino, o l'eliminazione diretta, modifica i record del file system anziché il contenuto:
- In NTFS, il record MFT viene contrassegnato come non in uso e i cluster del file vengono contrassegnati come liberi. Il contenuto rimane dov'era finché nuovi dati non lo sovrascrivono e il record MFT stesso può sopravvivere per qualche tempo.
- In FAT, il primo carattere del nome nella voce di directory viene sostituito con il byte E5 (esadecimale) e la catena dei cluster del file nella tabella di allocazione viene cancellata. Il contenuto di solito rimane, ma trovare tutti i frammenti di un file frammentato diventa più difficile.
I dati eliminati possono quindi spesso essere recuperati dai dischi rigidi e dalle schede di memoria. Nelle unità a stato solido, TRIM (Modulo 1) può indurre l'unità a cancellare i blocchi liberati poco dopo l'eliminazione; l'assenza di dati eliminati su un SSD è quindi prevedibile, anziché sospetta.
File carving
Quando i record del file system non sono più disponibili, il contenuto può ancora essere trovato mediante il carving: la scansione dei dati grezzi, solitamente nello spazio non allocato, alla ricerca delle firme note che contrassegnano l'inizio e la fine dei tipi di file. Un'immagine JPEG inizia con i byte FF D8 FF e termina con FF D9; un PDF inizia con il testo %PDF; i file DOCX e XLSX sono archivi ZIP, che iniziano con le lettere PK. I file recuperati mediante carving non conservano il nome originale, la cartella o i timestamp del file system, e i file frammentati possono risultare incompleti o mescolati con altri dati; pertanto, i risultati del carving devono essere verificati e descritti nella relazione per ciò che effettivamente sono.
Un esempio pratico
Una scheda di memoria proveniente dalla fotocamera di una fotografa è formattata in exFAT. La proprietaria afferma di aver eliminato una serie di foto settimane prima e di aver scattato molte altre fotografie da allora. L'esaminatore acquisisce un'immagine della scheda tramite un dispositivo di blocco in scrittura e trova le voci di directory rimaste per alcuni file eliminati, con nomi e dimensioni; il carving dello spazio non allocato recupera decine di ulteriori JPEG privi di nome. Alcune immagini recuperate mediante carving sono parzialmente grigie nei punti in cui i relativi cluster sono stati sovrascritti da foto più recenti. La relazione distingue le foto recuperate con i rispettivi metadati del file system da quelle recuperate mediante carving e precisa che le date di queste ultime possono provenire soltanto dai dati contenuti nelle immagini stesse.
Focus sull'esame: Le domande partono dagli elementi di cui un file system tiene traccia (nomi, metadati, allocazione, spazio libero), dai cluster e dai blocchi, dal confronto tra MBR e GPT e dagli ambiti di utilizzo di NTFS, FAT32, exFAT, ext4 e APFS. Occorre conoscere la Master File Table di NTFS e i dati residenti, le voci di directory di FAT e la tabella di allocazione, nonché la differenza tra spazio allocato, spazio non allocato e slack del file. Una domanda tipica chiede cosa cambia con l'eliminazione in NTFS e FAT; altre riguardano il motivo per cui gli SSD spesso non conservano dati eliminati e ciò che il carving può e non può recuperare.