Plundervolt — un nuovo metodo di attacco ai processori Intel, che colpisce la tecnologia SGX

Azienda Intel ha rilasciato aggiornamento del microcodice che elimina vulnerabilità (CVE-2019-14607), consentendo di iniziare danni al contenuto delle celle di memoria, anche in aree utilizzate per calcoli in enclave isolate Intel SGX, attraverso manipolazioni del meccanismo di gestione dinamica della tensione e della frequenza nella CPU. L'attacco è stato denominato Plundervolt e consente potenzialmente a un utente locale di ottenere privilegi elevati nel sistema, generare un'interruzione del servizio e accedere a dati riservati.

L'attacco rappresenta un pericolo solo nel contesto delle manipolazioni sui calcoli nelle enclave SGX, poiché richiede diritti di root nel sistema per essere eseguito. Nel caso più semplice, l'attaccante può indurre distorsioni nelle informazioni elaborate nell'enclave, ma in scenari più complessi non è esclusa la possibilità di ricreare le chiavi riservate memorizzate nell'enclave, utilizzate per la crittografia con algoritmi RSA-CRT e AES-NI. La tecnica può anche essere utilizzata per generare errori in algoritmi inizialmente corretti al fine di provocare vulnerabilità nella gestione della memoria, ad esempio, per compromettere l'accesso a aree al di fuori di un buffer allocato.
Prototipo di codice per eseguire l'attacco pubblicato su GitHub

Il metodo consiste nel creare condizioni per la comparsa di distorsioni impreviste dei dati durante i calcoli in SGX, da cui non protegge l'uso della crittografia e dell'autenticazione della memoria nell'enclave. Per indurre distorsioni, si è rivelato possibile utilizzare interfacce software standard per gestire la frequenza e la tensione, normalmente utilizzate per ridurre il consumo energetico durante i periodi di inattività del sistema e attivare la massima performance durante i lavori intensivi. Le caratteristiche di frequenza e tensione coprono l'intero chip, influenzando anche l'esecuzione dei calcoli nell'enclave isolata.

Modificando la tensione, è possibile creare condizioni in cui la carica non è sufficiente per rigenerare la cella di memoria all'interno della CPU, facendo cambiare il suo valore. La differenza chiave rispetto all'attacco RowHammer è ciò che RowHammer consente di modificare il contenuto di singoli bit nella memoria DRAM, leggendo ciclicamente i dati dalle celle adiacenti, mentre Plundervolt consente di modificare i bit all'interno della CPU quando i dati sono già stati caricati dalla memoria per eseguire calcoli. Questa caratteristica consente di eludere i meccanismi di controllo dell'integrità e crittografia dei dati in memoria applicati in SGX, poiché i valori in memoria rimangono corretti, ma possono essere distorti durante le operazioni su di essi, prima che il risultato venga scritto in memoria.

Se questo valore modificato viene utilizzato nel processo di moltiplicazione durante la crittografia, l'output sarà un testo cifrato non corretto. Avere la possibilità di contattare il gestore in SGX per crittografare i propri dati consente all'attaccante di accumulare statistiche sulla modifica del testo cifrato in uscita e, in pochi minuti, ripristinare il valore della chiave memorizzata nell'enclave. Il testo in chiaro in ingresso e il testo cifrato corretto in uscita sono noti, la chiave non cambia e l'output di un testo cifrato non corretto indica che qualche bit è stato distorto in un valore opposto.

Analizzando le coppie di valori corretti e distorti raccolti durante diversi guasti, utilizzando metodi di analisi differenziale dei guasti (DFA, Differential Fault Analysis) è possibile prevedere le chiavi probabili utilizzate per la crittografia simmetrica AES, e poi, analizzando le intersezioni delle chiavi in diversi set, determinare la chiave cercata.

Guarda il video

Il problema colpisce diversi modelli di processori Intel, inclusi CPU Intel Core di 6
fino alla 10° generazione, così come le 5° e 6° generazioni Xeon E3, le prime e le seconde generazioni Intel Xeon Scalable, Xeon D,
Xeon W e Xeon E.

Ricordiamo che la tecnologia SGX (Software Guard Extensions) è stata introdotta nei processori Intel Core di sesta generazione (Skylake) e offre una serie di istruzioni che consentono alle applicazioni di livello utente di accedere a aree di memoria chiuse - enclavi, il cui contenuto non può essere letto o modificato nemmeno dal kernel e dai codici eseguiti in modalità ring0, SMM e VMM. Trasferire il controllo al codice nell'enclave non è possibile tramite funzioni di transizione tradizionali e manipolazioni con registri e stack: per trasferire il controllo nell'enclave viene utilizzata una nuova istruzione appositamente creata, che esegue un controllo delle autorizzazioni. In questo caso, il codice inserito nell'enclave può utilizzare metodi classici di invocazione per accedere alle funzioni all'interno dell'enclave e un'istruzione speciale per chiamare funzioni esterne. Per proteggere da attacchi hardware, come la connessione a un modulo DRAM, viene applica la crittografia della memoria dell'enclave.

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