SQUIP - attacco ai processori AMD, che porta alla perdita di dati attraverso canali di terze parti

Un gruppo di ricercatori della Graz University of Technology (Austria), precedentemente noto per aver sviluppato gli attacchi MDS, NetSpectre, Throwhammer e ZombieLoad, ha rivelato i dettagli di un nuovo attacco side-channel (CVE-2021-46778) alla coda dello scheduler del processore AMD , utilizzato per programmare l'esecuzione di istruzioni in diverse unità di esecuzione della CPU. L'attacco, chiamato SQUIP, consente di determinare i dati utilizzati nei calcoli in un altro processo o macchina virtuale o organizzare un canale di comunicazione nascosto tra processi o macchine virtuali che consente di scambiare dati aggirando i meccanismi di controllo dell'accesso al sistema.

Le CPU AMD basate su microarchitetture Zen di prima, seconda e terza generazione (AMD Ryzen 2000-5000, AMD Ryzen Threadripper, AMD Athlon 3000, AMD EPYC) sono interessate dall'utilizzo della tecnologia Simultaneous Multithreading (SMT). I processori Intel non sono suscettibili agli attacchi, poiché utilizzano un'unica coda di pianificazione, mentre i processori AMD vulnerabili utilizzano code separate per ciascuna unità di esecuzione. Come soluzione alternativa per bloccare la fuga di informazioni, AMD ha raccomandato agli sviluppatori di utilizzare algoritmi che eseguono sempre calcoli matematici in un tempo costante, indipendentemente dalla natura dei dati elaborati, ed evitare anche diramazioni basate su dati segreti.

L'attacco si basa su una valutazione del livello di occorrenza della contesa (contention level) in diverse code dello scheduler e viene effettuato attraverso la misurazione dei ritardi all'avvio delle operazioni di verifica eseguite in un altro thread SMT sulla stessa CPU fisica. Per analizzare il contenuto è stato utilizzato il metodo Prime+Probe, che implica il riempimento della coda con un set di valori di riferimento e la determinazione delle modifiche misurando il tempo di accesso agli stessi in fase di ricarica.

Durante l'esperimento, i ricercatori sono stati in grado di ricreare completamente la chiave RSA privata a 4096 bit utilizzata per creare firme digitali utilizzando la libreria crittografica mbedTLS 3.0, che utilizza l'algoritmo di Montgomery per elevare un numero a un modulo di potenza. Ci sono volute 50500 tracce per determinare la chiave. Il tempo totale di attacco è durato 38 minuti. Vengono dimostrate varianti di attacco che forniscono una fuga di notizie tra diversi processi e macchine virtuali controllate dall'hypervisor KVM. Viene inoltre dimostrato che il metodo può essere utilizzato per organizzare il trasferimento nascosto di dati tra macchine virtuali a una velocità di 0.89 Mbit/s e tra processi a una velocità di 2.70 Mbit/s con un tasso di errore inferiore allo 0.8%.

Fonte: opennet.ru

Aggiungi un commento