Tipi di attacchi per le chiavi di crittografia del volume

Windows include molte tecnologie che contribuiscono alla protezione delle organizzazioni dagli attacchi, tra cui l'avvio protetto UEFI (Unified Extensible Firmware Interface), TPM (Trusted Platform Module), Criteri di gruppo, password complesse e blocco degli account.

Le sezioni successive descrivono i tipi di attacco che possono essere usati per compromettere una chiave di crittografia del volume, sia di BitLocker che di una soluzione di crittografia non Microsoft. Se riesce a compromettere una chiave di crittografia del volume, un utente malintenzionato può leggere i dati dall'unità di sistema o persino installare malware mentre Windows è offline. Ogni sezione inizia con una panoramica dei punti di forza e dei punti deboli di un attacco e delle misure di prevenzione consigliate.

Attacchi bootkit e rootkit

I rootkit sono un tipo di malware pericoloso e sofisticato che viene eseguito in modalità kernel, usando gli stessi privilegi del sistema operativo. Poiché hanno diritti pari o persino superiori rispetto al sistema operativo, i rootkit possono rendersi completamente invisibili a Windows e alle soluzioni antimalware. Spesso fanno parte di un'intera famiglia intera di malware, in grado di ignorare gli accessi locali, registrare password, trasferire file privati e acquisire chiavi di crittografia.

Tipi diversi di bootkit e rootkit vengono caricati a livelli software diversi:

  • Livello del kernel. I rootkit eseguiti al livello del kernel dispongono dei privilegi più elevati nel sistema operativo. Possono inserire codice dannoso o sostituire parti del sistema operativo principale, inclusi driver del kernel e di dispositivo.

  • Livello di applicazione. Questi rootkit mirano a sostituire i file binari delle applicazioni con codice dannoso, ad esempio un trojan, e possono anche modificare il comportamento delle applicazioni esistenti.

  • Livello di libreria. Lo scopo dei rootkit a livello di libreria è intercettare, modificare o sostituire le chiamate di sistema con codice dannoso che può nascondere la presenza del malware.

  • Livello di hypervisor. I rootkit a livello di hypervisor hanno come obiettivo la sequenza di avvio. Il loro scopo principale è modificare la sequenza di avvio per caricare se stessi come hypervisor.

  • Livello di firmware. Questi rootkit sovrascrivono il firmware del BIOS del PC, conferendo al malware accesso a basso livello e potenzialmente la capacità di installare o nascondere altro malware anche dopo la pulizia o la rimozione dal disco rigido.

Indipendentemente dal sistema operativo o dal metodo di crittografia, una volta installati i rootkit possono ottenere l'accesso a informazioni riservate. I rootkit a livello di applicazione possono leggere qualsiasi file accessibile all'utente, ignorando la crittografia a livello di volume. I rootkit a livello di raccolta, hypervisor e firmware hanno accesso diretto ai file di sistema nei volumi crittografati e sono anche in grado di recuperare una chiave di crittografia dalla memoria.

Windows offre una protezione efficace da bootkit e rootkit, ma è possibile eludere la sicurezza del sistema operativo se un utente malintenzionato ha accesso fisico al dispositivo e può installare il malware mentre Windows è offline. Ad esempio, l'autore di un attacco potrebbe avviare un PC da un'unità flash USB contenente malware che viene avviata prima di Windows. Il malware può sostituire i file di sistema o il firmware del PC oppure semplicemente avviare Windows assumendone il controllo.

Per proteggere efficacemente un PC da bootkit e rootkit, i dispositivi devono usare un sistema di autenticazione prima dell'avvio o l'avvio protetto. In alternativa, la soluzione di crittografia deve usare il TPM (Trusted Platform Module) del dispositivo per monitorare l'integrità del processo di avvio end-to-end. L'autenticazione prima dell'avvio è disponibile per tutti i dispositivi, indipendentemente dall'hardware, ma poiché è scomoda per gli utenti andrebbe usata solo per ridurre le minacce applicabili al dispositivo. Nei dispositivi in cui è abilitato l'avvio protetto non è necessario usare l'autenticazione prima dell'avvio per prevenire gli attacchi bootkit e rootkit.

Anche se la password di protezione della configurazione UEFI è importante per proteggere la configurazione di un dispositivo e impedire all'autore di un attacco di disabilitare l'avvio protetto, usa un TPM e le misurazioni del registro PCR (PCR 7) per garantire che il bootloader del sistema (che si tratti di Windows o di una soluzione di crittografia non Microsoft) non sia stato manomesso e che il primo codice avviato nel dispositivo sia attendibile. Una soluzione di crittografia che non usa il TPM di un dispositivo per proteggere i suoi componenti dalla manomissione può non essere in grado di proteggersi dalle infezioni a livello di bootkit, che potrebbero registrare una password utente o acquisire le chiavi di crittografia.

Per questo motivo, quando si configura BitLocker in dispositivi che includono un TPM, il TPM e i relativi registri PCR vengono sempre usati per proteggere e verificare l'integrità dell'ambiente di sistema preoperativo prima di rendere accessibili i volumi crittografati.

Qualunque modifica alla configurazione UEFI invalida il PCR 7 e richiede all'utente di immettere la chiave di ripristino di BitLocker. Grazie a questa funzionalità, non è essenziale proteggere la configurazione UEFI con una password. Se l'autore di un attacco riesce a disattivare l'avvio protetto o a modificare la configurazione UEFI, dovrà immettere la chiave di ripristino di BitLocker, ma l'uso della password di protezione UEFI è una procedura consigliata ed è comunque necessaria per i sistemi che non usano un TPM, ad esempio le alternative non Microsoft.

Attacchi di forza bruta

Se gli viene concesso un numero di tentativi sufficiente, l'autore di un attacco può indovinare qualsiasi password. Il processo di provare milioni di password diverse fino a trovare quella giusta è noto come un attacco di forza bruta. In teoria, usando questo metodo l'autore di un attacco potrebbe ottenere qualunque password.

Esistono tre opportunità per gli attacchi di forza bruta:

  • Contro l'autenticatore prima dell'avvio. Un utente malintenzionato potrebbe attaccare direttamente il dispositivo, tentando di indovinare il PIN di BitLocker dell'utente o un autenticatore equivalente. Il TPM previene questo approccio richiamando una funzionalità di blocco anti-hammering che chiede all'utente di attendere il termine del periodo di blocco o immettere la chiave di ripristino di BitLocker.

  • Contro la chiave di ripristino. Un utente malintenzionato potrebbe tentare di indovinare la chiave di ripristino a 48 cifre di BitLocker. Anche in assenza di un periodo di blocco, la chiave è sufficientemente lunga da rendere impraticabili gli attacchi di forza bruta. In particolare, la chiave di ripristino di BitLocker ha 128 bit di entropia, pertanto un attacco di forza bruta medio avrà esito positivo dopo 18.446.744.073.709.551.616 di tentativi. Se l'autore dell'attacco fosse in grado di tentare 1 milione di password al secondo, un attacco di forza bruta medio riuscirebbe dopo più di 580.000 anni.

  • Contro l'autenticatore di accesso del sistema operativo. Un utente malintenzionato può tentare di indovinare un nome utente e una password validi. Windows implementa un ritardo tra i tentativi di individuare le password, rallentando gli attacchi di forza bruta. Inoltre, tutte le versioni recenti di Windows consentono agli amministratori di richiedere password complesse e blocchi delle password. Allo stesso modo, gli amministratori possono usare criteri di Microsoft Exchange ActiveSync o Criteri di gruppo per configurare Windows 8.1 e Windows 8 in modo da riavviarsi automaticamente e richiedere all'utente di immettere la chiave di ripristino a 48 cifre di BitLocker dopo un determinato numero di inserimenti di una password non valida. Quando sono abilitate queste impostazioni e gli utenti seguono le procedure consigliate per le password complesse, gli attacchi di forza bruta contro il sistema operativo sono impraticabili.

In generale, gli attacchi di questo tipo non sono praticabili su Windows quando gli amministratori impongono password complesse e blocchi degli account.

Attacchi DMA

La tecnologia di accesso diretto alla memoria (DMA) consente ad alcuni tipi di dispositivi hardware di comunicare direttamente con la memoria di sistema di un altro dispositivo. Ad esempio, se usi Thunderbolt per connettere un altro dispositivo al tuo computer, il secondo dispositivo disporrà automaticamente di accesso in lettura e scrittura alla memoria del computer di destinazione.

Purtroppo le porte DMA non usano l'autenticazione e il controllo di accesso per proteggere il contenuto della memoria del computer. Anche se Windows spesso può impedire che app e componenti del sistema leggano e scrivano in parti protette della memoria, un dispositivo può usare DMA per leggere qualsiasi percorso in memoria, incluso il percorso delle chiavi di crittografia.

Gli attacchi DMA sono relativamente semplici da eseguire e richiedono poche competenze tecniche. Chiunque può scaricare uno strumento da Internet, ad esempio quelli creati da Passware, ElcomSoft e altri, e usare un attacco DMA per leggere informazioni riservate dalla memoria di un PC. Poiché le soluzioni di crittografia archiviano le chiavi di crittografia in memoria, è possibile accedervi mediante un attacco DMA.

Non tutte le porte sono vulnerabili agli attacchi DMA. Le porte USB, in particolare, non consentono l'accesso diretto alla memoria, ma tutti i dispositivi con i tipi di porta seguenti sono vulnerabili:

  • FireWire

  • Thunderbolt

  • ExpressCard

  • PCMCIA

  • PCI

  • PCI-X

  • PCI Express

Per eseguire un attacco DMA, in genere gli autori dell'attacco connettono un secondo PC che esegue uno strumento di analisi della memoria (ad esempio Passware o ElcomSoft) alla porta FireWire o Thunderbolt del computer obiettivo. Una volta connesso, il software analizza la memoria di sistema dell'obiettivo e individua la chiave di crittografia. La chiave acquisita può essere usata per decrittografare l'unità e leggere o modificare il contenuto.

In teoria esiste una forma molto più efficiente di questo attacco: un utente malintenzionato crea un dispositivo FireWire o Thunderbolt personalizzato in cui è programmata la logica dell'attacco DMA. Fatto questo, dovrà solo collegare fisicamente il dispositivo. Se non ha accesso fisico ai sistemi, potrebbe camuffarlo da unità flash USB gratuita e distribuirla ai dipendenti di un'organizzazione obiettivo. Dopo la connessione, il dispositivo attaccante potrebbe usare un attacco DMA per analizzare la memoria del PC in cerca della chiave di crittografia. Potrebbe quindi trasmettere la chiave (o qualsiasi informazione presente nella memoria del PC) mediante la connessione Internet del PC o una sua connessione wireless. Questo tipo di attacco ha un livello di complessità estremamente elevato, perché richiede che l'utente malintenzionato crei un dispositivo personalizzato (sul mercato non sono disponibili dispositivi di questo tipo).

Oggi, uno degli usi più comuni per le porte DMA nei dispositivi Windows è il debug, un'attività che solo alcuni sviluppatori devono eseguire e che pochi consumatori eseguiranno mai. Poiché USB, DisplayPort e altri tipi di porte più sicuri soddisfano le esigenze dei consumatori, i PC portatili più recenti non includono porte DMA. A causa dei rischi di sicurezza intrinseci delle porte DMA, Microsoft non le ritiene idonee per i dispositivi mobili e ne ha vietato l'inserimento nei dispositivi con certificazione InstantGo. I dispositivi InstantGo offrono funzionalità di risparmio energetico e accensione immediata simili a quelle dei cellulari. Al momento in cui è stato scritto questo articolo, sono disponibili principalmente nei tablet Windows.

Gli slot di espansione basati su DMA rappresentano un'altra possibile via di attacco, ma in genere compaiono solo nei PC desktop progettati per l'espansione. Per impedire attacchi esterni ai PC desktop, le organizzazioni possono usare la sicurezza fisica. Inoltre, un attacco DMA sullo slot di espansione richiede l'uso di un dispositivo personalizzato. Di conseguenza, per attaccare il PC un utente malintenzionato dovrebbe inserire nello slot un'interfaccia con una porta DMA tradizionale, ad esempio, FireWire.

Per prevenire un attacco basato sulla porta DMA, un amministratore può configurare le impostazioni dei criteri in modo da disabilitare i dispositivi FireWire e di altro tipo con tecnologia DMA. Inoltre, molti PC permettono di disabilitare i dispositivi di questo tipo usando le impostazioni del firmware. Anche se è possibile eliminare la necessità di autenticazione prima dell'avvio a livello di dispositivo o tramite la configurazione di Windows, la funzionalità di autenticazione prima dell'avvio di BitLocker è comunque disponibile quando necessario. Se usata, previene efficacemente tutti i tipi di attacco alle porte DMA e agli slot di espansione su qualsiasi tipo di dispositivo.

Attacchi al file hyberfil.sys

Il file hyberfil.sys è il file ibernazione di Windows. Contiene uno snapshot della memoria di sistema che viene generato quando un dispositivo entra in ibernazione e include la chiave di crittografia per BitLocker e altre tecnologie di crittografia. Alcuni pirati informatici hanno dichiarato di essere riusciti ad estrarre le chiavi di crittografia dal file hyberfil.sys.

Come per l'attacco alla porta DMA descritto nella sezione precedente, sono disponibili strumenti in grado di analizzare il file hyberfile.sys e individuare la chiave di crittografia, tra cui uno strumento sviluppato da Passware. Microsoft non considera Windows vulnerabile a questo tipo di attacco, perché Windows archivia il file hyberfil.sys all'interno del volume di sistema crittografato. Di conseguenza, il file sarebbe accessibile solo se l'utente malintenzionato avesse accesso fisico al PC e conoscesse le credenziali di accesso. Quando un utente malintenzionato dispone delle credenziali di accesso al PC, non ha motivi di decrittografare l'unità, perché ha già accesso completo a tutti i dati che contiene.

In pratica, l'unico caso in cui un attacco al file hyberfil.sys concederebbe un ulteriore livello di accesso a un utente malintenzionato è quello in cui l'amministratore ha modificato la configurazione predefinita di Windows e ha archiviato il file hyberfil.sys in un'unità non crittografata. Per impostazione predefinita, Windows 10 è progettato per essere protetto da questo tipo di attacco.

Attacchi che sfruttano la rimanenza della memoria

Gli attacchi che sfruttano la rimanenza della memoria sono attacchi del canale laterale che leggono la chiave di crittografia dalla memoria dopo il riavvio di un PC. Contrariamente a ciò che si crede comunemente, la memoria di un PC non viene cancellata completamente al riavvio. Quando si toglie l'alimentazione, infatti, i chip di memoria conservano i dati per alcuni minuti. Di conseguenza, un utente malintenzionato che ha accesso fisico alla memoria del PC potrebbe essere in grado di leggere dati direttamente dalla memoria, compresa la chiave di crittografia.

Durante l'esecuzione di questo tipo di attacchi di avvio a freddo, l'utente malintenzionato accede alla memoria fisica del PC e recupera la chiave di crittografia entro pochi secondi o minuti dallo spegnimento. Questo tipo di attacco è stato dimostrato dai ricercatori dell'università di Princeton. Con la chiave di crittografia, l'utente malintenzionato sarebbe in grado di decrittografare l'unità e accedere ai file.

Per acquisire le chiavi, l'utente malintenzionato deve seguire questa procedura:

  1. Congelare la memoria del PC. Ad esempio, può congelarla a −50° C usando una bomboletta di aria compressa.

  2. Riavviare il PC.

  3. Invece di riavviare in Windows, si esegue l'avvio in un altro sistema operativo. A questo scopo in genere si usano un'unità flash di avvio o un DVD di avvio.

  4. Il supporto di avvio carica gli strumenti per l'attacco, che l'utente malintenzionato usa per analizzare la memoria di sistema e individuare le chiavi di crittografia.

  5. L'utente malintenzionato usa le chiavi di crittografia per accedere ai dati dell'unità.

Se non può avviare il dispositivo in un altro sistema operativo (ad esempio perché sono state disabilitate le unità flash di avvio o è abilitato l'avvio protetto), l'utente malintenzionato può tentare di rimuovere fisicamente la memoria congelata dal dispositivo e collegarla a un dispositivo diverso, possibilmente identico. Fortunatamente questo processo si è rivelato poco affidabile, come dimostrato dall'analisi del gruppo Valcartier dell'agenzia di ricerca per la difesa e lo sviluppo del Canada (Defence Research and Development Canada, DRDC). Vedi il documento sull'analisi approfondita dell'attacco di avvio a freddo. Su un numero crescente di dispositivi moderni questo tipo di attacco non è possibile, perché la memoria è saldata direttamente alla scheda madre.

Anche se la ricerca di Princeton ha dimostrato che questo tipo di attacco è possibile sui dispositivi con memoria rimovibile, l'hardware di dispositivo è cambiato dopo la pubblicazione di questa ricerca, nel 2008:

  • L'avvio protetto impedisce l'esecuzione nel dispositivo di destinazione degli strumenti dannosi su cui si basa l'attacco descritto dall'università di Princeton.

  • I sistemi Windows con BIOS o interfaccia UEFI possono essere bloccati con una password e l'avvio da un'unità USB può essere impedito.

  • Se l'avvio da unità USB è necessario per il dispositivo, può essere limitato all'avvio di sistemi operativi attendibili mediante la funzionalità di avvio protetto.

  • La velocità di deterioramento dei dati in memoria varia notevolmente da un dispositivo all'altro e molti montano una memoria completamente immune agli attacchi di questo tipo.

  • La maggiore densità della memoria riduce le proprietà di rimanenza e le probabilità di un esito positivo dell'attacco, anche quando la memoria viene fisicamente rimossa e inserita in un sistema identico la cui configurazione consente l'avvio degli strumenti dannosi.

Per queste ragioni, questo tipo di attacco è raramente possibile nei dispositivi moderni. Anche nei dispositivi legacy che presentano fattori di rischio, l'attacco verrebbe considerato poco praticabile. Per informazioni dettagliate sugli usi pratici per l'acquisizione della memoria a scopi forensi e sui fattori che rendono un computer vulnerabile o resistente agli attacchi che sfruttano la rimanenza della memoria, leggi il documento sull'analisi approfondita dell'attacco di avvio a freddo.

La funzionalità di autenticazione prima dell'avvio di BitLocker permette di prevenire gli attacchi che sfruttano la rimanenza della memoria nella maggior parte dei dispositivi, ma puoi prevenire questi attacchi anche proteggendo il l'interfaccia UEFI o il BIOS del sistema e impedire l'avvio del PC da un supporto esterno (ad esempio un'unità flash USB o DVD). La seconda opzione è spesso una scelta migliore, perché offre protezione sufficiente senza infastidire gli utenti con l'autenticazione prima dell'avvio.

Vedi anche