Vulnerabilità in AMD SEV che consente di determinare le chiavi di crittografia

Gli sviluppatori del team Google Cloud hanno identificato una vulnerabilità (CVE-2019-9836) nell'implementazione della tecnologia AMD SEV (Secure Encrypted Virtualization), che consente di compromettere i dati protetti con questa tecnologia. AMD SEV fornisce a livello hardware una crittografia trasparente della memoria delle macchine virtuali, in cui solo il sistema operativo guest corrente ha accesso ai dati decrittografati, mentre altre macchine virtuali e l'hypervisor, nel tentativo di accedere a questa memoria, ricevono un insieme di dati cifrati.

Il problema identificato consente di recuperare completamente il contenuto della chiave PDH privata, gestita a livello di un singolo processore sicuro PSP (AMD Security Processor), non accessibile al sistema operativo principale.
Avendo la chiave PDH, un aggressore può quindi recuperare la chiave di sessione e la sequenza segreta specificata 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 consentono di eseguire un attacco per il recupero dei parametri della curva. Durante l'esecuzione del comando di avvio di una macchina virtuale protetta, un aggressore può inviare parametri della curva che non corrispondono ai parametri raccomandati dal NIST, il che porterà all'uso di valori di punto di basso ordine nelle operazioni di moltiplicazione con i dati della chiave privata.

La sicurezza del protocollo ECDH dipende direttamente dall'ordine di del punto iniziale generato della curva, 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. Fondamentalmente, viene eseguita un'operazione di moltiplicazione di due punti, uno dei quali corrisponde alla chiave privata. Se il secondo punto appartiene ai numeri primi di basso ordine, l'aggressore può determinare i parametri del primo punto (i bit del modulo utilizzato nell'operazione di elevazione a potenza modulo) attraverso un'analisi di tutti i possibili valori. Per determinare la chiave privata, i frammenti di numeri primi selezionati possono poi essere assemblati insieme tramite il Teorema cinese dei resti Teorema cinese dei resti.

I server basati su piattaforme AMD EPYC, che utilizzano firmware SEV fino alla versione 0.17 build 11, sono soggetti a problemi. L'azienda AMD ha già ha pubblicato rilasciato un aggiornamento del firmware, in cui è stata aggiunta la blocco dell'uso di punti non conformi alla curva NIST. I certificati generati in precedenza per le chiavi PDH rimangono validi, il che consente a un attaccante di eseguire un attacco di migrazione delle macchine virtuali da ambienti protetti contro la vulnerabilità a quelli vulnerabili. Viene anche menzionata la possibilità di un attacco di downgrade del firmware su una vecchia versione vulnerabile, ma questa possibilità non è stata ancora confermata.

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