Aggiramento della crittografia del disco che utilizza TPM2 per lo sblocco automatico

Uno dei pacchetti di accompagnamento in NixOS ha presentato una tecnica di attacco che consente di accedere ai dati su partizioni disco crittografate, in configurazioni che non richiedono l'inserimento di una password di sblocco all'avvio, grazie all'immagazzinamento in TPM2 (Trusted Platform Module) delle informazioni per la decrittografia. Queste configurazioni vengono spesso utilizzate su server o stazioni di lavoro multiutente, dove è problematico inserire manualmente la password dopo ogni riavvio.

Utilizzando un simile metodo di crittografia dei dischi, la decrittografia avviene mediante una chiave aggiuntiva, memorizzata nel TPM e fornita solo dopo la conferma dello stato originale del sistema. Lo stato del sistema è conservato sotto forma di hash nei registri PCR (Platform Configuration Register) ed è legato a una firma digitale che certifica il bootloader, nonché ai checksum del bootloader e dell'ambiente di avvio iniziale (initrd). L'accesso alla chiave nel TPM è fornito solo quando tutti i registri PCR ad esso associati sono nello stesso stato di quando è stata memorizzata la chiave.

Si presume che la catena di avvio del sistema operativo venga convalidata tramite UEFI Secure Boot e che l'accesso alle chiavi possa essere ottenuto solo da un'immagine initrd non modificata. In caso di verifica positiva, il disco viene automaticamente sbloccato, ma l'accesso ai dati decrittati è possibile solo tramite accesso al proprio account nel sistema. Se si tenta di accedere senza un'avvio convalidato o si cercano di sostituire o modificare initrd per intercettare le chiavi, la catena di fiducia verrà compromessa, lo stato dei registri PCR cambierà e il TPM2 non fornirà le informazioni necessarie per la decrittazione.

Il metodo di attacco pubblicato consente di operare senza modificare il contenuto di initrd nelle configurazioni che non identificano le partizioni LUKS criptate. È da notare che l'inclusione di un tale controllo delle partizioni non è descritta in tutte le istruzioni trovate sulla configurazione della crittografia del disco, poiché l'identificazione della partizione complica notevolmente la configurazione (è necessario coinvolgere un registro PCR aggiuntivo per la verifica della chiave della partizione e generare initrd tenendo conto del suo valore). Esempi di attacchi sono stati dimostrati per Fedora Linux in combinazione con gli strumenti clevis e per NixOS in combinazione con systemd-cryptenroll. Per effettuare l'attacco è necessario avere accesso fisico al computer e la possibilità di estrarre il dispositivo di memoria.

Il metodo si basa sul fatto che un attaccante può sostituire una partizione crittografata esistente con una propria partizione crittografata, creata con lo stesso UUID e con le chiavi di decrittazione note all'attaccante. L'ambiente initrd passerà il controllo al processo init nella partizione dell'attaccante. Poiché il contenuto di initrd non è stato modificato, lo stato del TPM non sarà compromesso e, ottenendo il controllo nel proprio ambiente, l'attaccante potrà utilizzare il TPM per decrittografare la chiave della partizione originale del disco.

L'attacco consiste nei seguenti passaggi:

  • Estrazione del disco e analisi dei dati non crittografati su un altro computer nella partizione /boot. Identificazione delle informazioni sulla partizione crittografata e sul suo UUID dall'immagine initrd situata nella partizione /boot.
  • Creazione di una copia di backup dei primi 64 MB della partizione LUKS crittografata.
  • Sostituzione dei 64 MB specificati con un'immagine contenente una propria partizione radice, crittografata utilizzando una chiave nota all'attaccante e avente lo stesso UUID della vecchia partizione.
  • Restituzione del disco al computer originale e avvio con la partizione radice sostituita. Poiché lo sblocco automatico tramite la chiave TPM per la partizione sostituita fallisce, initrd richiede l'inserimento manuale della password.
  • Recupero della chiave originale dal TPM, utilizzando i metadati del TPM e il token crittografato dall'intestazione LUKS della vecchia partizione.
  • Sostituzione del disco sul computer dell'attaccante, ripristino della parte sovrascritta della partizione LUKS da un backup e utilizzo della chiave originale ottenuta per accedere ai dati.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster