È stata identificata una nuova variante dell'attacco Zombieload ai processori Intel

Ricercatori dell'Università Tecnica di Graz (Austria) scoperto informazioni su un nuovo metodo di attacco attraverso canali di terze parti Caricamento zombi 2.0 (CVE-2019-11135), che consente di estrarre informazioni riservate da altri processi, dal sistema operativo, da macchine virtuali ed enclavi protette (TEE, Trusted Execution Environment). Il problema riguarda solo i processori Intel. Componenti per bloccare il problema proposto in ieri aggiornamento del microcodice.

Il problema appartiene alla classe MDS (Microarchitectural Data Sampling) ed è una versione modernizzata pubblicato a maggio ZombieLoad attacca. ZombieLoad 2.0, come altri attacchi MDS, si basa sull'applicazione di tecniche di analisi del canale laterale ai dati in strutture microarchitettoniche (ad esempio, Line Fill Buffer e Store Buffer), che memorizzano temporaneamente i dati utilizzati nel processo (esecuzione delle operazioni di caricamento e archiviazione). .

Nuova variante di attacco Zombieload è basato sulla perdita che si verifica durante il funzionamento del meccanismo per l'interruzione asincrona delle operazioni (TAA, TSX Asynchronous Abort), implementato nell'estensione TSX (Transactional Synchronization Extensions), che fornisce strumenti per lavorare con la memoria transazionale, che consente di aumentare le prestazioni di applicazioni multi-thread eliminando dinamicamente le operazioni di sincronizzazione non necessarie (transazioni atomiche supportate che possono essere accettate o interrotte). Se interrotte, viene eseguito il rollback delle operazioni eseguite sull'area di memoria transazionale.

L'interruzione della transazione avviene in modo asincrono e durante questo periodo altri thread possono accedere alla cache, che viene utilizzata anche nella regione della memoria transazionale scartata. Durante il tempo che intercorre tra l'inizio e l'effettivo completamento di un'interruzione di una transazione asincrona, è possibile che si verifichino situazioni in cui il processore, durante l'esecuzione speculativa di un'operazione, possa leggere i dati dai buffer microarchitettonici interni e trasferirli all'operazione speculativa. Il conflitto verrà quindi rilevato e l'operazione speculativa eliminata, ma i dati rimarranno nella cache e potranno essere recuperati utilizzando tecniche di ripristino della cache del canale laterale.

L'attacco si riduce all'apertura delle transazioni TSX e alla creazione delle condizioni per la loro interruzione asincrona, durante la quale si verificano le condizioni per la fuoriuscita del contenuto dei buffer interni ipoteticamente riempiti con dati provenienti da operazioni di lettura della memoria eseguite sullo stesso core della CPU. La fuga di dati è limitata all'attuale core fisico della CPU (su cui è in esecuzione il codice dell'aggressore), ma poiché i buffer della microarchitettura sono condivisi tra diversi thread in modalità Hyper-Threading, è possibile che trapelano operazioni di memoria eseguite in altri thread della CPU.

attacco soggetto a alcuni modelli dell'ottava, nona e decima generazione di processori Intel Core, nonché Intel Pentium Gold, Intel Celeron 5000, Intel Xeon E, Intel Xeon W e Intel Xeon Scalable di seconda generazione. Anche i nuovi processori Intel basati sulla microarchitettura Cascade Lake introdotta ad aprile, che inizialmente non era suscettibile agli attacchi RIDL e Fallout, sono suscettibili agli attacchi. Oltre a Zombieload 2.0, i ricercatori hanno anche identificato la possibilità di aggirare i metodi di protezione contro gli attacchi MDS precedentemente proposti, basati sull'uso dell'istruzione VERW per cancellare il contenuto dei buffer della microarchitettura quando si ritorna dal kernel allo spazio utente o quando si trasferisce il controllo a il sistema ospite.

Il rapporto Intel afferma che nei sistemi con carico eterogeneo la capacità di sferrare un attacco è difficile, poiché una fuga di dati dalle strutture microarchitettoniche copre tutta l'attività del sistema e l'aggressore non può influenzare la fonte dei dati estratti, cioè può solo accumulare informazioni che emergono a seguito di una fuga di dati e cercare di identificare informazioni utili tra questi dati, senza la possibilità di intercettare intenzionalmente i dati associati a specifici indirizzi di memoria. Tuttavia, i ricercatori hanno pubblicato sfruttare il prototipo, in esecuzione su Linux e Windows, e ha dimostrato la capacità di utilizzare un attacco per determinare l'hash della password dell'utente root.
Forse effettuare un attacco da un sistema ospite per accumulare dati che compaiono nelle operazioni di altri sistemi ospite, nell'ambiente host, nell'hypervisor e nelle enclavi Intel SGX.

Correzioni per bloccare la vulnerabilità incluso nel codice base del kernel Linux e incluso nelle versioni 5.3.11, 4.19.84, 4.14.154, 4.9.201 e 4.4.201. Sono già stati rilasciati aggiornamenti del kernel e del microcodice per le principali distribuzioni (Debian, SUSE / openSUSE, Ubuntu, RHEL, Fedora, FreeBSD). Il problema è stato identificato in aprile ed è stata coordinata una soluzione tra Intel e gli sviluppatori del sistema operativo.

Il metodo più semplice per bloccare Zombieload 2.0 è disabilitare il supporto TSX nella CPU. La correzione proposta per il kernel Linux include diverse opzioni di protezione. La prima opzione offre il parametro "tsx=on/off/auto" per controllare se l'estensione TSX è abilitata sulla CPU (il valore auto disabilita TSX solo per le CPU vulnerabili). La seconda opzione di protezione è abilitata dal parametro “tsx_async_abort=off/full/full,nosmt” e si basa sulla cancellazione dei buffer della microarchitettura durante il cambio di contesto (il flag nosmt disabilita inoltre SMT/Hyper-Thread). Per verificare se un sistema è suscettibile a vulnerabilità, sysfs fornisce il parametro “/sys/devices/system/cpu/vulnerabilities/tsx_async_abort”.

Inoltre, l' aggiornare microcodice eliminato ancora uno vulnerabilità (CVE-2018-12207) nei processori Intel, che è bloccato anche negli ultimi aggiornare Kernel Linux. Vulnerabilità permette un utente malintenzionato senza privilegi per avviare una negazione del servizio, causando il blocco del sistema nello stato "Errore controllo macchina".
Attacco compreso può essere commesso dal sistema ospite.

Fonte: opennet.ru

Aggiungi un commento