Antiforense · Lezione 3 di 3
Volumi crittografati: BitLocker, FileVault e VeraCrypt
12 min di lettura
La crittografia di volumi e contenitori è ormai l'impostazione predefinita su molti portatili. Questa lezione illustra come riconoscere i volumi BitLocker, FileVault, LUKS e VeraCrypt in un'immagine o in una raccolta di triage, come sono organizzati i livelli delle chiavi di BitLocker, quali fonti lecite di chiavi e opportunità sui sistemi in esecuzione sono disponibili e come documentare ciò che non è stato possibile esaminare. I tentativi di individuazione delle password costituiscono un processo distinto, subordinato all'autorizzazione, e non sono trattati qui.
Ostacolo o attività anti-forense?
La crittografia è generalmente legittima: tutela della riservatezza, politiche di protezione dei dati e sistemi operativi che la attivano automaticamente. Va considerata innanzitutto un ostacolo. Costituisce un atto anti-forense soltanto quando il contesto supporta tale interpretazione, ad esempio nel caso di un contenitore mascherato con un nome fuorviante, creato o utilizzato in prossimità dell'incidente, oppure di software eseguito e poi rimosso. Tale deduzione va esposta separatamente dal riscontro tecnico.
Riconoscimento dei volumi crittografati
BitLocker
Un volume BitLocker conserva un'intestazione del volume non crittografata il cui identificatore OEM all'offset 3 è la stringa di 8 byte -FVE-FS-, dove un volume NTFS presenta NTFS seguito da quattro spazi. Il volume contiene inoltre tre copie del blocco di metadati FVE (Full Volume Encryption), ciascuna delle quali inizia anch'essa con -FVE-FS-; queste registrano il metodo di crittografia, i protettori di chiave e le chiavi incapsulate. Windows 10 versione 1511 ha introdotto XTS-AES; le versioni precedenti utilizzavano AES-CBC. Sulle unità rimovibili, i volumi BitLocker To Go formattati in FAT possono presentare un'intestazione di tipo FAT32 con identificatore OEM MSWIN4.1, pertanto la ricerca di -FVE-FS- nel volume consente comunque di trovare i blocchi di metadati.
Su un sistema in esecuzione, manage-bde -status riporta per ciascun volume lo stato di conversione, la percentuale crittografata, il metodo di crittografia, lo stato della protezione, lo stato di blocco e i protettori di chiave. Il canale del registro eventi Microsoft-Windows-BitLocker/BitLocker Management (file Microsoft-Windows-BitLocker%4BitLocker Management.evtx) registra eventi quali l'avvio della crittografia, l'aggiunta o la rimozione di protettori e il backup delle informazioni di ripristino. Gli ID evento variano tra le versioni di Windows, pertanto occorre filtrare per canale e leggere il testo del messaggio.
FileVault
Su un Mac, FileVault protegge il volume Dati APFS. Un superblocco di volume APFS privo del flag APFS_FS_UNENCRYPTED (0x1 in apfs_fs_flags) indica che il volume è crittografato. Come spiegato nella lezione 1.7, i Mac con chip T2 o Apple silicon crittografano sempre l'archiviazione interna a livello hardware; FileVault aggiunge il requisito che le credenziali di un utente sblocchino la chiave. Sul sistema in esecuzione, fdesetup status segnala "FileVault è attivo."
LUKS
Linux Unified Key Setup inizia con la sequenza identificativa di 6 byte LUKS\xba\xbe (4C 55 4B 53 BA BE) all'offset 0, seguita da una versione di 2 byte: 1 o 2. LUKS1 ha un'intestazione binaria di 592 byte con otto slot di chiave e utilizza PBKDF2. LUKS2 ha un'intestazione binaria di 4.096 byte seguita da metadati JSON, una seconda copia dell'intestazione la cui sequenza identificativa è SKUL\xba\xbe, fino a 32 slot di chiave e Argon2id come impostazione predefinita abituale. Ogni slot di chiave contiene la chiave del volume crittografata con una passphrase o un file di chiave.
VeraCrypt e TrueCrypt
VeraCrypt, il successore di TrueCrypt (il cui sviluppo è stato interrotto nel 2014), non scrive alcuna firma in chiaro. L'intestazione inizia con un salt casuale di 64 byte; la sequenza identificativa VERA (o TRUE) appare soltanto dopo che l'intestazione è stata decrittografata con la password corretta. Un file contenitore o una partizione appare quindi come dati casuali. Gli indicatori sono:
- entropia di Shannon prossima al massimo di 8 bit/byte, su tutto l'oggetto;
- dimensione multipla di 512 byte;
- nessuna firma di file riconoscibile, spesso con un'estensione o un nome che suggerisce un altro tipo di contenuto.
Si tratta di indicatori, non di prove: lo spazio sottoposto a cancellazione sicura (lezione 7.1), i dati di test casuali e altri strumenti di crittografia hanno lo stesso aspetto. Anche i file compressi presentano un'entropia elevata, ma contengono intestazioni come PK o 7z. La crittografia di sistema è più facile da individuare, perché il boot loader di VeraCrypt sostituisce quello normale (sui sistemi UEFI in \EFI\VeraCrypt\ nella partizione di sistema EFI).
Un volume nascosto VeraCrypt si trova all'interno dello spazio libero di un volume esterno, che è riempito con dati casuali, pertanto la sua presenza non può essere dimostrata né esclusa sulla base del solo contenitore. Soltanto altri artefatti, come file LNK che puntano a percorsi inesistenti nel volume esterno aperto, possono supportare tale affermazione. Non affermare mai né la presenza né l'assenza senza tali evidenze.
Artefatti del software
Quando il contenitore non può essere identificato direttamente, può esserlo l'utilizzo del software. Cercare file Prefetch di VERACRYPT.EXE e VERACRYPT FORMAT.EXE, voci Amcache e BAM (lezione 2.3) e il driver %windir%\System32\drivers\veracrypt.sys (assente in modalità portabile). %APPDATA%\VeraCrypt\ contiene Configuration.xml (preferenze, comprese le impostazioni di smontaggio automatico) e, soltanto se sono state utilizzate le relative funzionalità, Favorite Volumes.xml (volumi salvati e relative lettere di unità) e History.xml (gli ultimi 20 percorsi di volume; "Non salvare mai la cronologia" è abilitato per impostazione predefinita). I volumi montati possono lasciare tracce delle lettere di unità: un valore \DosDevices\Z: in MountedDevices i cui dati non corrispondono ad alcun disco noto, nonché file LNK e Jump List (lezione 2.4) il cui numero di serie del volume di destinazione non corrisponde ad alcun volume noto.
Architettura delle chiavi di BitLocker
BitLocker utilizza tre livelli. I settori sono crittografati con la FVEK (chiave di crittografia dell'intero volume). La FVEK è memorizzata nei metadati, crittografata con la VMK (chiave principale del volume). La VMK è memorizzata più volte, una volta incapsulata da ciascun protettore di chiave. L'aggiunta o la rimozione di un protettore aggiunge o rimuove soltanto una copia incapsulata della VMK; i dati non vengono nuovamente crittografati.
I protettori includono solo TPM (il Trusted Platform Module rilascia la VMK se la catena di avvio misurata è invariata), TPM + PIN, TPM + chiave di avvio, una password (tipica per le unità dati e rimovibili), un file di chiave di avvio o di ripristino (.BEK), la password di ripristino e lo sblocco automatico (un'unità dati aperta automaticamente una volta sbloccato il volume del sistema operativo). Ogni protettore ha un ID chiave GUID; la schermata di ripristino ne mostra la parte iniziale, così da consentire di associare una password recuperata al volume corretto.
La password di ripristino contiene 48 cifre in otto gruppi da sei. Ogni gruppo codifica 16 bit moltiplicati per 11, quindi ogni gruppo valido è divisibile per 11 e non supera 65.535 × 11 = 720.885; otto gruppi forniscono la chiave di 128 bit. Si tratta di una verifica del formato, non della prova che un valore appartenga a un volume.
Una password di ripristino può essere legittimamente memorizzata in:
- l'account Microsoft dell'utente, nella relativa pagina delle chiavi di ripristino;
- Active Directory, come oggetti
msFVE-RecoveryInformationsotto l'oggetto computer (attributomsFVE-RecoveryPassword), oppure Entra ID, nell'oggetto dispositivo; - database di gestione MBAM o Intune;
- una copia stampata, un file di testo o un'unità USB, salvati dall'utente.
Molti dispositivi Windows 11 attivano automaticamente la Crittografia dispositivo ed eseguono il backup della chiave nell'account Microsoft o nell'account aziendale al momento dell'accesso. Se BitLocker è sospeso, la VMK viene memorizzata con una "chiave in chiaro" non crittografata: il volume rimane crittografato, ma qualsiasi strumento compatibile può leggerlo.
Modalità di accesso lecito
- Il sistema in esecuzione e sbloccato. Acquisire la memoria, quindi acquisire un'immagine logica del volume sbloccato (un'immagine fisica copia soltanto i dati cifrati). Registrare l'output di
manage-bde -statuse gli ID dei protettori. - Chiavi in memoria. Mentre un volume è sbloccato o montato, la FVEK o la chiave principale di VeraCrypt si trova nella RAM. Gli strumenti di analisi della memoria, inclusi i plugin della comunità di Volatility e le suite commerciali, possono individuarle; le librerie open source per BitLocker possono quindi decrittografare un'immagine con la chiave recuperata. Anche i file di ibernazione e i dump di arresto anomalo possono contenerle (lezione 5.4), ma su un'unità C: crittografata soltanto dopo lo sblocco di C:.
- Solo TPM sul computer originale. L'avvio del computer originale sblocca il volume senza un segreto, sebbene l'accesso a Windows protegga ancora la sessione. Un'unità rimossa da quel computer richiede una password di ripristino.
- Chiavi depositate. Richiedere le password di ripristino all'organizzazione o al fornitore attraverso le procedure legali, indicando l'ID chiave.
- Il proprietario. È possibile chiedere una password; il quadro giuridico varia da paese a paese.
- FileVault: una password utente, la chiave di ripristino personale (24 caratteri in sei gruppi da quattro), una chiave di ripristino istituzionale o il deposito tramite MDM, oppure il Mac in esecuzione e sbloccato.
- VeraCrypt e LUKS: la password o il file di chiave, oppure la chiave in memoria mentre il volume è montato; acquisire un'immagine del volume mappato mentre è aperto.
Il tempo è determinante. Un volume montato diventa inaccessibile allo spegnimento e VeraCrypt può essere configurato per smontarlo alla disconnessione, al blocco della sessione, all'attivazione del salvaschermo, al risparmio energetico o dopo un periodo senza letture e scritture. Le decisioni di triage (lezione 5.1) determinano spesso se i dati crittografati potranno mai essere letti.
| Tecnologia | Firma o indicatore identificativo | Fonti delle chiavi | Opportunità sul sistema in esecuzione |
|---|---|---|---|
| BitLocker (sistema operativo o unità fissa) | -FVE-FS- all'offset 3; tre blocchi di metadati FVE | Password di ripristino (account Microsoft, AD, Entra ID, MBAM/Intune, copia stampata), .BEK, password, TPM | Acquisizione della memoria; immagine logica; manage-bde -status |
| BitLocker To Go | Possibile intestazione MSWIN4.1; blocchi di metadati -FVE-FS- | Password, password di ripristino, sblocco automatico | Immagine logica mentre è sbloccato |
| FileVault (APFS) | Volume Dati senza APFS_FS_UNENCRYPTED; fdesetup status | Password utente, chiave di ripristino personale o istituzionale, deposito tramite MDM | Raccolta logica sul Mac originale sbloccato |
| LUKS | LUKS\xba\xbe all'offset 0; versione 1 o 2; slot di chiave | Passphrase, file di chiave | Acquisizione di un'immagine del dispositivo /dev/mapper aperto; memoria |
| VeraCrypt / TrueCrypt | Nessuna: entropia elevata, dimensione multipla di 512, nessuna intestazione; artefatti del software | Password, file di chiave | Acquisizione della memoria; immagine logica del volume montato |
Esempio pratico: un portatile in standby
Un portatile Windows 11 viene sequestrato in standby con lo schermo bloccato. Il triage rileva BitLocker con un protettore solo TPM su C: e, su D:, un file D:\backup\photos.bin senza intestazione nota. Il sistema contiene file Prefetch di VeraCrypt e un file LNK che punta a Z:\clients\list.xlsx su un volume il cui numero di serie non compare altrove.
Sequenza. Collegare l'alimentatore, fotografare lo schermo e impedire l'ibernazione. L'acquisizione dal sistema in esecuzione richiede una sessione autenticata, pertanto occorre ottenere le credenziali lecitamente dal proprietario o dall'organizzazione. Quindi:
- Prima la memoria. Potrebbe contenere la chiave principale di VeraCrypt e la FVEK di BitLocker.
- Poi Z:, se ancora montato. Fotografare la finestra di VeraCrypt, che mostra il percorso del file montato e il tipo di volume, e acquisire un'immagine logica di Z:. Non esiste un'altra via di accesso a questi dati e uno smontaggio per inattività potrebbe renderli inaccessibili mentre si lavora su C:.
- Infine C:. Registrare l'output di
manage-bde -statuse gli ID dei protettori, quindi acquisire un'immagine logica di C:. Per C: esistono alternative: il TPM sul computer originale e qualsiasi password di ripristino depositata.
Il file. La sua dimensione è 4.294.967.296 byte = 4 GiB = 2^32 byte = 8.388.608 × 512, un multiplo esatto di 512. La sua entropia, mediata su blocchi di 1 MiB, è 7,9998 bit/byte, ossia il valore prodotto da dati casuali con quella dimensione di blocco (la distorsione dovuta al campione ridotto la mantiene appena sotto 8). In presenza di evidenze dell'esecuzione di VeraCrypt, l'affermazione corretta è: photos.bin è compatibile con un contenitore crittografato, come un file contenitore VeraCrypt; ciò non è dimostrato. Se in seguito viene aperto lecitamente e il numero di serie del volume del suo file system corrisponde a quello del file LNK, ciò lo collega a Z:.
Verifica della password di ripristino. Un esempio valido creato per questa lezione è 403425-176198-692373-264044-664609-429165-106161-702482. Primo gruppo: 403.425 ÷ 11 = 36.675 esattamente (11 × 36.675 = 403.425) e 36.675 è inferiore a 65.536. Un errore di trascrizione come 403.426 lascia un resto di 1 e non supera la verifica.
Redazione della relazione
Indicare che un volume è crittografato e con quale tecnologia; come è stato identificato (firma e offset, metadati, misura dell'entropia e dimensione dei blocchi, artefatti del software); quali chiavi sono state cercate, presso quali fonti e con quale risultato, inclusi gli ID chiave; che cosa è stato acquisito dal sistema in esecuzione e quando (UTC); e che cosa non è stato possibile esaminare. Tenere separate le deduzioni sull'intento. ISO/IEC 27037 richiede che ogni azione sul sistema in esecuzione sia giustificata e documentata.
Focus sull'esame: È necessario saper riconoscere BitLocker da -FVE-FS- all'offset 3, spiegare i livelli FVEK, VMK e protettori e convalidare i gruppi delle password di ripristino verificandone la divisibilità per 11. Le domande basate su scenari probabilmente verificheranno l'ordine di acquisizione su un sistema in esecuzione con un contenitore montato e la formulazione prudente secondo cui un file ad alta entropia senza intestazione è compatibile con un contenitore crittografato, ma non ne costituisce una prova.
Punti chiave
- BitLocker presenta
-FVE-FS-all'offset 3 e nei propri blocchi di metadati FVE; LUKS inizia conLUKS\xba\xbe; VeraCrypt non ha alcuna firma in chiaro. - Entropia elevata, dimensione divisibile per 512 e assenza di intestazione indicano un possibile contenitore, ma non lo dimostrano; i volumi nascosti non possono essere né dimostrati né esclusi sulla base del solo contenitore.
- I settori sono crittografati dalla FVEK, la FVEK dalla VMK e la VMK da ciascun protettore.
- Una password di ripristino contiene otto gruppi di sei cifre, ciascuno divisibile per 11; associarla tramite l'ID chiave.
- Acquisire la memoria e le immagini logiche mentre i volumi sono sbloccati, dando priorità a ciò per cui non esistono altre fonti di chiavi.
- Documentare la crittografia, il modo in cui è stata identificata, le fonti delle chiavi consultate e ciò che rimane non esaminato.