CROSSTalk: una vulnerabilità nelle CPU Intel che porta alla perdita di dati tra i core

Un team di ricercatori della Vrije Universiteit Amsterdam ne ha individuato uno nuovo vulnerabilità (CVE-2020-0543) nelle strutture microarchitettoniche dei processori Intel, notevole in quanto consente di ripristinare i risultati dell'esecuzione di alcune istruzioni eseguite su un altro core della CPU. Questa è la prima vulnerabilità nel meccanismo di esecuzione speculativa delle istruzioni che consente la fuga di dati tra i singoli core della CPU (in precedenza le perdite erano limitate a diversi thread dello stesso core). I ricercatori hanno chiamato il problema CROSSTalk, ma Documenti Intel La vulnerabilità è denominata SRBDS (Special Register Buffer Data Sampling).

La vulnerabilità riguarda presentata un anno fa alla classe dei problemi MDS (Microarchitectural Data Sampling) e si basa sull'applicazione di metodi di analisi del canale laterale ai dati nelle strutture microarchitettoniche. Il principio di funzionamento CROSSTalk è vicino alla vulnerabilità RIDL, ma differisce nella fonte della perdita.
La nuova vulnerabilità manipola la perdita di un buffer intermedio precedentemente non documentato condiviso da tutti i core della CPU.

CROSSTalk: una vulnerabilità nelle CPU Intel che porta alla perdita di dati tra i core

L'essenza del problema è che alcune istruzioni del microprocessore, tra cui RDRAND, RDSEED e SGX EGETKEY, sono implementate utilizzando l'operazione SRR (Special Register Reads) della microarchitettura interna. Sui processori interessati, i dati restituiti per SRR vengono depositati in un buffer intermedio comune a tutti i core della CPU, dopodiché vengono trasferiti in un buffer di riempimento associato allo specifico core fisico della CPU su cui è stata avviata l'operazione di lettura. Successivamente, il valore del buffer di riempimento viene copiato nei registri visibili alle applicazioni.

La dimensione del buffer condiviso intermedio corrisponde alla riga della cache, che in genere è maggiore della dimensione dei dati letti, e letture diverse influiscono su offset diversi nel buffer. Poiché il buffer condiviso viene copiato interamente nel buffer di riempimento, non viene spostata solo la porzione necessaria per l'operazione corrente, ma anche i dati rimanenti da altre operazioni, comprese quelle eseguite su altri core della CPU.

CROSSTalk: una vulnerabilità nelle CPU Intel che porta alla perdita di dati tra i core

CROSSTalk: una vulnerabilità nelle CPU Intel che porta alla perdita di dati tra i core

Se l'attacco ha successo, un utente locale autenticato nel sistema può determinare il risultato dell'esecuzione delle istruzioni RDRAND, RDSEED e EGETKEY in un processo esterno o all'interno di un'enclave Intel SGX, indipendentemente dal core della CPU su cui viene eseguito il codice.
Ricercatori che hanno individuato il problema hanno pubblicato Un prototipo di exploit che dimostra la capacità di far trapelare informazioni su valori casuali ottenuti tramite le istruzioni RDRAND e RDSEED per recuperare una chiave privata ECDSA elaborata nell'enclave Intel SGX dopo aver eseguito una sola operazione di firma digitale sul sistema.


problema suscettibile un'ampia gamma di processori Intel per desktop, dispositivi mobili e server, tra cui Core i3, i5, i7, i9, m3, Celeron (serie J, G e N), Atom (serie C, E e X), Xeon (E3, E5, Famiglie E7, W e D), Xeon Scalable, ecc. È interessante notare che Intel è stata informata della vulnerabilità nel settembre 2018 e nel luglio 2019 è stato fornito un prototipo di exploit che dimostrava la perdita di dati tra i core della CPU, ma lo sviluppo di una correzione è stato ritardato a causa della complessità della sua implementazione. L'aggiornamento del microcodice proposto oggi risolve il problema modificando il comportamento delle istruzioni RDRAND, RDSEED ed EGETKEY per sovrascrivere i dati nel buffer condiviso per impedire che informazioni residue si depositino lì. Inoltre, l'accesso al buffer viene sospeso finché i contenuti non vengono letti e riscritti.

Un effetto collaterale di questo tipo di protezione è l'aumento della latenza durante l'esecuzione di RDRAND, RDSEED e EGETKEY e la riduzione del throughput quando si tenta di eseguire queste istruzioni simultaneamente su diversi processori logici. L'esecuzione di RDRAND, RDSEED e EGETKEY sospende anche l'accesso alla memoria da altri processori logici. Queste funzionalità potrebbero influire negativamente sulle prestazioni di alcune applicazioni server, pertanto il firmware fornisce un meccanismo (RNGDS_MITG_DIS) per disabilitare la protezione per le istruzioni RDRAND e RDSEED eseguite all'esterno dell'enclave Intel SGX.

Fonte: opennet.ru

Aggiungi un commento