Antiforense · Lezione 3 di 3
Volumi cifrati: BitLocker, FileVault e VeraCrypt
13 min di lettura
La cifratura 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 organizzate le chiavi di BitLocker su più livelli, quali fonti di chiavi lecite e opportunità sui sistemi in esecuzione sono disponibili e come documentare ciò che non è stato possibile esaminare. I tentativi di individuare le password costituiscono un processo distinto, subordinato all'autorizzazione, e non sono trattati qui.
Ostacolo o anti-forensics?
La cifratura è solitamente legittima: tutela della riservatezza, politiche di protezione dei dati e sistemi operativi che la abilitano automaticamente. Va considerata innanzitutto un ostacolo. Costituisce un atto di anti-forensics solo quando il contesto avvalora tale interpretazione, ad esempio nel caso di un contenitore camuffato con un nome fuorviante, creato o utilizzato in prossimità dell'incidente, oppure di software eseguito e poi rimosso. Tale inferenza deve essere esposta separatamente dal riscontro tecnico.
Riconoscere i volumi cifrati
BitLocker
Un volume BitLocker conserva un'intestazione di volume non cifrata il cui identificatore OEM all'offset 3 è la stringa di 8 byte -FVE-FS-, mentre 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 cifratura, i protettori di chiave e le chiavi cifrate. 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 individuare i blocchi di metadati.
Su un sistema in esecuzione, manage-bde -status riporta per ciascun volume lo stato della conversione, la percentuale cifrata, il metodo di cifratura, 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 cifratura, l'aggiunta o la rimozione di protettori e il backup delle informazioni di ripristino. Gli ID evento differiscono tra le versioni di Windows: occorre quindi 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 è cifrato. Sui Mac con T2 e Apple silicon ciò vale per ogni volume interno anche quando FileVault è disattivato; pertanto, il solo flag non dimostra che FileVault sia attivo. Come spiegato nella lezione 1.7, i Mac con chip T2 o Apple silicon cifrano 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 riporta "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 cifrata con una passphrase o un file di chiave.
VeraCrypt e TrueCrypt
VeraCrypt, successore di TrueCrypt (il cui sviluppo è cessato nel 2014), non scrive alcuna firma in chiaro. L'intestazione inizia con un salt casuale di 64 byte; la sequenza identificativa VERA (o TRUE) compare solo dopo che l'intestazione è stata decifrata con la password corretta. Un file contenitore o una partizione appare quindi come un insieme di dati casuali. Gli indicatori sono:
- entropia di Shannon prossima al massimo di 8 bit/byte, nell'intero oggetto;
- dimensione multipla di 512 byte;
- assenza di una firma di file riconoscibile, spesso con un'estensione o un nome che suggerisce altro.
Si tratta di indicatori, non di prove: lo spazio sottoposto a cancellazione sicura (lezione 7.1), i dati casuali di test e altri strumenti di cifratura hanno lo stesso aspetto. Anche i file compressi presentano un'entropia elevata, ma contengono intestazioni come PK o 7z. La cifratura del 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, riempito con dati casuali; pertanto, la sua presenza non può essere dimostrata né esclusa sulla sola base del contenitore. Solo altri artefatti, come file LNK che puntano a percorsi inesistenti nel volume esterno aperto, possono avvalorare tale affermazione. Non si deve mai affermarne né la presenza né l'assenza senza tali evidenze.
Artefatti del software
Quando non è possibile identificare direttamente il contenitore, è possibile identificare l'uso del software. Occorre cercare i file Prefetch di VERACRYPT.EXE e VERACRYPT FORMAT.EXE, le voci Amcache e BAM (lezione 2.3) e il driver %windir%\System32\drivers\veracrypt.sys (assente in modalità portatile). %APPDATA%\VeraCrypt\ (in modalità portatile, la cartella che contiene VeraCrypt.exe) contiene Configuration.xml (preferenze, comprese le impostazioni di smontaggio automatico) e, solo se sono state utilizzate le relative funzionalità, Favorite Volumes.xml (volumi salvati e rispettive 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 cifrati con la FVEK (chiave di cifratura dell'intero volume). La FVEK è memorizzata nei metadati, cifrata con la VMK (chiave master del volume). La VMK è memorizzata più volte, una copia cifrata da ciascun protettore di chiave. L'aggiunta o la rimozione di un protettore aggiunge o rimuove soltanto una copia cifrata della VMK; i dati non vengono cifrati nuovamente.
I protettori comprendono 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, consentendo di associare una password recuperata al volume corretto.
La password di ripristino contiene 48 cifre suddivise in otto gruppi da sei. Ogni gruppo codifica 16 bit moltiplicati per 11; pertanto, ogni gruppo valido è divisibile per 11 e non supera 65.535 × 11 = 720.885; otto gruppi forniscono la chiave a 128 bit. Si tratta di un controllo del formato, non della prova che un valore appartenga a un volume.
Una password di ripristino può essere legittimamente archiviata:
- nell'account Microsoft dell'utente, nella pagina delle chiavi di ripristino;
- in Active Directory, come oggetti
msFVE-RecoveryInformationsubordinati all'oggetto computer (attributomsFVE-RecoveryPassword), oppure in Entra ID, nell'oggetto dispositivo; - nei database di gestione MBAM o Intune;
- su una stampa, in un file di testo o su un'unità USB, salvata dall'utente.
Molti dispositivi Windows 11 attivano automaticamente la Cifratura 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 cifrata: il volume rimane cifrato, 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 dati cifrati). Registrare
manage-bde -statusemanage-bde -protectors -get C:, che elenca l'ID di ciascun protettore e, se eseguito come amministratore, la password numerica di ripristino. - Chiavi in memoria. Mentre un volume è sbloccato o montato, la FVEK o la chiave master di VeraCrypt si trova nella RAM (a meno che non sia stata abilitata la cifratura opzionale della RAM di VeraCrypt, disponibile dalla versione 1.24 e disattivata per impostazione predefinita; Configuration.xml ne indica lo stato). 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 decifrare 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: cifrata sono accessibili solo dopo lo sblocco di C:.
- Solo TPM sulla macchina originale. L'avvio del computer originale sblocca il volume senza un segreto, sebbene l'accesso a Windows continui a proteggere la sessione. Un'unità rimossa da tale macchina richiede una password di ripristino.
- Chiavi depositate. Richiedere le password di ripristino all'organizzazione o al fornitore mediante la procedura legale prevista, citando 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 presso 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 non è più accessibile dopo lo spegnimento e VeraCrypt può essere configurato per smontarlo alla disconnessione dell'utente, 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) spesso determinano se i dati cifrati 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, stampa), .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 il volume è sbloccato |
| FileVault (APFS) | fdesetup status; record di sblocco utente/di ripristino nel keybag (l'assenza di APFS_FS_UNENCRYPTED indica soltanto la cifratura; condizione sempre presente su T2/Apple silicon) | Password utente, chiave di ripristino personale o istituzionale, deposito presso 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 svolto: un portatile in standby
Un portatile Windows 11 viene sequestrato in standby con lo schermo bloccato. Il triage mostra BitLocker con un protettore solo TPM su C: e, su D:, un file D:\backup\photos.bin privo di un'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 sul sistema in esecuzione richiede una sessione autenticata: occorre quindi ottenere le credenziali in modo lecito dal proprietario o dall'organizzazione. Successivamente:
- Prima la memoria. Può contenere la chiave master 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 modalità di accesso a questi dati e uno smontaggio per inattività potrebbe chiudere il volume mentre si lavora su C:.
- C: per ultimo. Registrare
manage-bde -statuse gli ID dei protettori, quindi acquisire un'immagine logica di C:. Per C: esistono alternative: il TPM sulla macchina originale e qualsiasi password di ripristino depositata.
Il file. La sua dimensione è di 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 da 1 MiB, è di 7,9998 bit/byte, il valore prodotto da dati casuali con tale dimensione del blocco (la distorsione dovuta a un campione ridotto la mantiene appena al di sotto di 8). In presenza di evidenze dell'esecuzione di VeraCrypt, l'affermazione corretta è: photos.bin è compatibile con un contenitore cifrato, come un file contenitore VeraCrypt; ciò non è dimostrato. Se in seguito viene aperto in modo lecito e il numero di serie del volume del suo file system corrisponde a quello del file LNK, ciò lo collega a Z:.
Controllo 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 esatti (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 il controllo.
Redazione della relazione
Indicare che un volume è cifrato e con quale tecnologia; come è stato identificato (firma e offset, metadati, misurazione dell'entropia e dimensione del blocco, artefatti del software); quali chiavi sono state cercate, presso quali fonti e con quale risultato, inclusi gli ID chiave; che cosa è stato acquisito sul sistema in esecuzione e quando (UTC); e che cosa non è stato possibile esaminare. Mantenere separate le inferenze 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 dei protettori e convalidare i gruppi della password di ripristino verificandone la divisibilità per 11. Le domande basate su scenari verificheranno probabilmente l'ordine di acquisizione su un sistema in esecuzione con un contenitore montato e la formulazione prudente secondo cui un file ad alta entropia privo di intestazione è compatibile con un contenitore cifrato, 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 una firma in chiaro. - Un'entropia elevata, una dimensione divisibile per 512 e l'assenza di intestazione indicano un possibile contenitore, ma non ne dimostrano l'esistenza; i volumi nascosti non possono essere né dimostrati né esclusi sulla sola base del contenitore.
- I settori sono cifrati 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ò che non dispone di altre fonti di chiavi.
- Documentare la cifratura, come è stata identificata, le fonti di chiavi tentate e ciò che resta da esaminare.
Domande di esercitazione
Verifica la tua comprensione. Queste domande non contano per l’esame.
Accedi per salvare i tuoi progressi e riprendere da dove hai lasciato. È gratuito. Accedi