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

Intel rilasciato aggiornamento del microcodice che risolve vulnerabilità (CVE-2019-14607) permettendo attraverso la manipolazione del meccanismo di controllo dinamico della tensione e della frequenza nella CPU, provocano danni al contenuto delle celle di dati, anche nelle aree utilizzate per i calcoli nelle enclavi Intel SGX isolate. L'attacco si chiama Plundervolt e potenzialmente consente a un utente locale di aumentare i propri privilegi sul sistema, causare un rifiuto di servizio e ottenere l'accesso a dati sensibili.

L'attacco è pericoloso solo nel contesto di manipolazioni con calcoli nelle enclavi SGX, poiché per essere eseguito richiede i diritti di root nel sistema. Nel caso più semplice, un utente malintenzionato può ottenere la distorsione delle informazioni elaborate nell'enclave, ma in scenari più complessi, la possibilità di ricreare le chiavi private archiviate nell'enclave utilizzata per la crittografia utilizzando gli algoritmi RSA-CRT e AES-NI non è possibile. escluso. La tecnica può essere utilizzata anche per generare errori negli algoritmi inizialmente corretti per provocare vulnerabilità quando si lavora con la memoria, ad esempio per organizzare l'accesso a un'area al di fuori dei limiti del buffer allocato.
Codice prototipo per eseguire un attacco pubblicato su GitHub

L'essenza del metodo è creare le condizioni per il verificarsi di danneggiamenti imprevisti dei dati durante i calcoli in SGX, da cui l'uso della crittografia e dell'autenticazione della memoria nell'enclave non protegge. Per introdurre la distorsione, si è scoperto che era possibile utilizzare interfacce software standard per il controllo della frequenza e della tensione, solitamente utilizzate per ridurre il consumo energetico durante i tempi di inattività del sistema e attivare le massime prestazioni durante il lavoro intenso. Le caratteristiche di frequenza e tensione si estendono sull'intero chip, compreso l'impatto dell'elaborazione in un'enclave isolata.

Modificando la tensione si possono creare condizioni in cui la carica non è sufficiente per rigenerare una cella di memoria all'interno della CPU e il suo valore cambia. Differenza fondamentale rispetto all'attacco RowHammer è che RowHammer ti consente di modificare il contenuto dei singoli bit nella memoria DRAM leggendo ciclicamente i dati dalle celle vicine, mentre Plundervolt ti consente di modificare i bit all'interno della CPU quando i dati sono già stati caricati dalla memoria per il calcolo. Questa funzionalità consente di aggirare il controllo di integrità e i meccanismi di crittografia utilizzati in SGX per i dati in memoria, poiché i valori in memoria rimangono corretti, ma possono essere distorti durante le operazioni con essi prima che il risultato venga scritto in memoria.

Se questo valore modificato viene utilizzato nel processo di moltiplicazione del processo di crittografia, l'output viene rifiutato con testo cifrato errato. Avendo la possibilità di contattare un gestore in SGX per crittografare i propri dati, un utente malintenzionato può, causando errori, accumulare statistiche sui cambiamenti nel testo cifrato di output e, in pochi minuti, ripristinare il valore della chiave memorizzata nell'enclave. Il testo di input originale e il testo cifrato di output corretto sono noti, la chiave non cambia e l'output di un testo cifrato errato indica che alcuni bit sono stati distorti al valore opposto.

Dopo aver analizzato le coppie di valori di testi cifrati corretti e corrotti accumulati durante vari guasti, utilizzando metodi di analisi differenziale dei guasti (DFA, Analisi differenziale dei guasti) Potere prevedere probabili chiavi utilizzate per la crittografia simmetrica AES e quindi, analizzando le intersezioni delle chiavi in ​​diversi set, determinare la chiave desiderata.

Vari modelli di processori Intel sono interessati dal problema, comprese le CPU Intel Core da 6
Decima generazione, nonché la quinta e la sesta generazione di Xeon E10, la prima e la seconda generazione di Intel Xeon Scalable, Xeon D,
Xeon W e Xeon E.

Ricordiamo che la tecnologia SGX (Estensioni di protezione del software) è apparso nei processori Intel Core di sesta generazione (Skylake) e offre una serie di istruzioni che consentono alle applicazioni a livello utente di allocare aree di memoria chiuse - enclavi, il cui contenuto non può essere letto o modificato nemmeno dal kernel e dal codice in esecuzione nelle modalità ring0, SMM e VMM. È impossibile trasferire il controllo al codice nell'enclave utilizzando le tradizionali funzioni di salto e manipolazioni con i registri e lo stack; per trasferire il controllo all'enclave viene utilizzata una nuova istruzione appositamente creata che esegue un controllo di autorità. In questo caso, il codice inserito nell'enclave può utilizzare metodi di chiamata classici per accedere alle funzioni interne all'enclave e istruzioni speciali per chiamare funzioni esterne. La crittografia della memoria Enclave viene utilizzata per proteggere da attacchi hardware come la connessione a un modulo DRAM.

Fonte: opennet.ru

Aggiungi un commento