Sviluppatori del team Google Cloud vulnerabilità (CVE-2019-9836) nell'implementazione della tecnologia AMD SEV (Secure Encrypted Virtualization), che consente di compromettere i dati protetti tramite questa tecnologia. AMD SEV garantisce a livello hardware una crittografia trasparente della memoria delle macchine virtuali, con accesso ai dati decriptati riservato solo al sistema operativo ospite in uso, mentre le altre macchine virtuali e l'ipervisor ricevono un insieme di dati criptati quando tentano di accedere a tale memoria.
Il problema individuato consente di recuperare completamente il contenuto della chiave PDH riservata, gestita a livello di un processore di sicurezza protetto PSP (AMD Security Processor), che non è accessibile al sistema operativo principale.
Possedendo la chiave PDH, l'attaccante può quindi recuperare la chiave di sessione e la sequenza segreta impostate durante la creazione della macchina virtuale, ottenendo accesso ai dati crittografati.
La vulnerabilità è causata da carenze nell'implementazione delle curve ellittiche (ECC) utilizzate per la crittografia, che permettono di effettuare per il ripristino dei parametri della curva. Durante l'esecuzione del comando per l'avvio di una macchina virtuale protetta, l'attaccante può inviare parametri della curva che non corrispondono a quelli raccomandati dal NIST, portando all'uso di valori di punti di basso ordine nelle operazioni di moltiplicazione con i dati della chiave privata.
La sicurezza del protocollo ECDH è direttamente da del punto iniziale generato, il cui logaritmo discreto rappresenta un compito molto complesso. In uno dei passaggi di inizializzazione dell'ambiente AMD SEV, nei calcoli con la chiave privata vengono utilizzati parametri forniti dall'utente. In effetti, viene eseguita un'operazione di moltiplicazione di due punti, uno dei quali corrisponde alla chiave privata. Se il secondo punto è associato a numeri primi di basso ordine, l'attaccante può determinare i parametri del primo punto (i bit del modulo utilizzato nell'operazione di elevamento a potenza modulo) attraverso la ricerca di tutti i valori possibili. Per determinare la chiave privata, i frammenti di numeri primi scelti possono quindi essere uniti tramite .
Le piattaforme server AMD EPYC sono vulnerabili, utilizzando firmware SEV fino alla versione 0.17 build 11. AMD ha già rilasciato un aggiornamento del firmware che aggiunge il blocco dell'uso di punti non conformi alla curva NIST. Pertanto, i certificati generati in precedenza per le chiavi PDH rimangono validi, consentendo a un attaccante di eseguire un attacco di migrazione delle macchine virtuali da ambienti protetti da questa vulnerabilità a quelli vulnerabili. Si menziona anche la possibilità di un attacco di rollback su versioni di firmware precedenti vulnerabili, ma questa possibilità non è ancora confermata.
Fonte: opennet.ru
