CROSSTalk — vulnerabilità nella CPU Intel che porta a perdite di dati tra i core

Un gruppo di ricercatori dell'Università libera di Amsterdam ha identificato una nuova vulnerabilità (CVE-2020-0543) nelle strutture microarchitettoniche dei processori Intel, notevole perché consente di ripristinare i risultati dell'esecuzione di alcune istruzioni eseguite su un altro core della CPU. Questa è la prima vulnerabilità del meccanismo di esecuzione speculativa delle istruzioni che consente la fuga di dati tra core CPU separati (in precedenza le fughe erano limitate a diversi thread di un singolo core). I ricercatori hanno dato il nome CROSSTalk a questo problema, ma in documenti Intel la vulnerabilità è menzionata come SRBDS (Special Register Buffer Data Sampling).

La vulnerabilità si riferisce a una classe di problemi MDS (Microarchitectural Data Sampling) presentata un anno fa e si basa sull'applicazione di metodi di analisi tramite canali laterali ai dati nelle strutture microarchitettoniche. Principio di funzionamento CROSSTalk è simile alla vulnerabilità RIDL, ma si differenzia per la fonte della fuga.
La nuova vulnerabilità manipola la fuga da un buffer intermedio precedentemente non documentato, utilizzato da tutti i core della CPU.

CROSSTalk - vulnerabilità nei CPU Intel che porta a fuoriuscite di dati tra i core

La questione principale è che alcune istruzioni del microprocessore, tra cui RDRAND, RDSEED e SGX EGETKEY, sono implementate utilizzando un'operazione microarchitetturale interna SRR (Special Register Reads). Su processori vulnerabili, i dati restituiti per SRR si accumulano in un buffer intermedio, condiviso tra tutti i core della CPU, che poi viene trasferito in un buffer di riempimento, legato a un determinato core fisico della CPU sul quale è stata avviata l'operazione di lettura. Successivamente, dal buffer di riempimento il valore viene copiato nei registri visibili alle applicazioni.

La dimensione del buffer intermedio condiviso corrisponde alla linea di cache, che di solito è maggiore della dimensione dei dati letti e diverse operazioni di lettura coinvolgono diversi offset nel buffer. Poiché il buffer condiviso viene copiato interamente nel buffer di riempimento, non si sposta solo la porzione necessaria per l'operazione corrente, ma anche i dati residui dall'esecuzione di altre operazioni, comprese quelle effettuate su altri core della CPU.

CROSSTalk - vulnerabilità nei CPU Intel che porta a fuoriuscite di dati tra i core

CROSSTalk - vulnerabilità nei CPU Intel che porta a fuoriuscite di dati tra i core

Nel caso in cui un attacco organizzato con successo, un utente locale autenticato nel sistema può determinare il risultato dell'esecuzione delle istruzioni RDRAND, RDSEED e EGETKEY in un processo estraneo o all'interno di un enclave Intel SGX, indipendentemente dal core CPU su cui viene eseguito il codice.
I ricercatori che hanno identificato il problema hanno pubblicato prototipo di exploit che dimostra la possibilità di fuoriuscita di dati su valori casuali ottenuti tramite le istruzioni RDRAND e RDSEED per il recupero della chiave privata ECDSA, elaborata nell'enclave Intel SGX, dopo aver eseguito nel sistema solo un'operazione di firma digitale.


Guarda il video

Problema soggetto un'ampia gamma di processori Intel per desktop, mobile e server, tra cui Core i3, i5, i7, i9, m3, Celeron (serie J, G e N), Atom (serie C, E e X), Xeon (famiglie E3, E5, E7, W e D), Xeon Scalable, ecc. È significativo che l'azienda Intel sia stata informata della vulnerabilità nel settembre 2018 e che nel luglio 2019 sia stato fornito un prototipo di exploit che mostrava la fuoriuscita di dati tra i core CPU, ma lo sviluppo della correzione si è protratto a causa della complessità della sua implementazione. Nell'aggiornamento del microcodice proposto oggi, il problema è stato bloccato modificando il comportamento delle istruzioni RDRAND, RDSEED e EGETKEY per un'eccessiva riscrittura dei dati nel buffer condiviso per evitare la persistenza delle informazioni residue. Inoltre, è stata applicata una sospensione dell'accesso al buffer fino al termine delle operazioni di lettura e riscrittura del contenuto.

Un effetto collaterale di tale protezione è l'incremento delle latenze durante l'esecuzione di RDRAND, RDSEED e EGETKEY, e la riduzione della larghezza di banda durante i tentativi di esecuzione simultanea di queste istruzioni su diversi processori logici. L'esecuzione di RDRAND, RDSEED e EGETKEY sospende anche l'accesso alla memoria da parte di altri processori logici. Queste caratteristiche possono influenzare negativamente le prestazioni di alcune applicazioni server, pertanto nel firmware è previsto un meccanismo (RNGDS_MITG_DIS) per disabilitare la protezione delle istruzioni RDRAND e RDSEED eseguite al di fuori dell'enclave Intel SGX.

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