È stata introdotta una nuova classe di vulnerabilità nei processori Intel

Intel pubblicato informazioni sul nuovo classe di vulnerabilità nei loro processori - MDS (Campionamento dati microarchitettonici). Come i precedenti attacchi Spectre, i nuovi problemi possono portare alla fuga di dati privati ​​dal sistema operativo, dalle macchine virtuali e da altri processi. Si presume che i problemi siano stati identificati per la prima volta dai dipendenti e dai partner di Intel durante un audit interno, dopo il quale ricercatori indipendenti hanno fornito a Intel informazioni su problemi simili. I processori AMD e ARM non sono interessati dal problema.

Basato sui problemi identificati dai ricercatori dell'Università Tecnica di Graz (Austria) sviluppato Alcuni attacchi pratici sui canali laterali:

  • ZombieLoad (PDF) - consente di estrarre informazioni riservate da altri processi, dal sistema operativo, dalle macchine virtuali e dalle enclavi protette (TEE, Trusted Execution Environment). Ad esempio, è stata dimostrata la capacità di determinare la cronologia dell'apertura delle pagine nel browser Tor in esecuzione su un'altra macchina virtuale, nonché di determinare le chiavi di accesso e le password utilizzate nelle applicazioni;


  • RIDL (PDF) - consente la fuga di informazioni tra varie aree isolate nei processori Intel, come buffer di riempimento, buffer di archiviazione e porte di caricamento. Vengono mostrati esempi di attacchi per organizzare fughe di dati da altri processi, dal sistema operativo, da macchine virtuali ed enclavi protette. Ad esempio, mostra come scoprire il contenuto dell'hash della password di root da /etc/shadow durante i periodici tentativi di autenticazione (l'attacco ha richiesto 24 ore);

    Inoltre, viene mostrato un esempio di attacco utilizzando JavaScript e WebAssembly quando si apre una pagina dannosa nel motore SpiderMonkey (nei moderni browser completi, tale attacco è improbabile a causa della precisione limitata del timer e delle misure di protezione da Spectre);

  • Fallout (PDF) - consente di leggere i dati scritti di recente dal sistema operativo e di determinare il layout della memoria del sistema operativo per semplificare altri attacchi;
  • Inoltro dal negozio alla perdita — sfrutta le ottimizzazioni della CPU per lavorare con il buffer di archiviazione e può essere utilizzato per bypassare il meccanismo di randomizzazione dello spazio degli indirizzi del kernel (KASLR), per monitorare lo stato del sistema operativo o per организации perdite in combinazione con gadget basati sui metodi Spectre.

Rivelato vulnerabilità:

  • CVE-2018-12126 - MSBDS (Microarchitectural Store Buffer Data Sampling), recupero del contenuto dei buffer di archiviazione. Utilizzato nell'attacco di Fallout. Il grado di pericolo è determinato in 6.5 punti (CVSS);
  • CVE-2018-12127 - MLPDS (Microarchitectural Load Port Data Sampling), recupero del contenuto della porta di caricamento. Utilizzato nell'attacco RIDL. CVSS 6.5;
  • CVE-2018-12130 - MFBDS (Microarchitectural Fill Buffer Data Sampling), recupero del contenuto del buffer di riempimento. Utilizzato negli attacchi ZombieLoad e RIDL. CVSS 6.5;
  • CVE-2019-11091 – MDSUM (Microarchitectural Data Sampling Uncacheable Memory), recupero dei contenuti della memoria non memorizzabile nella cache. Utilizzato nell'attacco RIDL. CVSS 3.8.

Sostanza identificato problemi nella capacità di applicare metodi di analisi del canale laterale ai dati in strutture microarchitettoniche a cui le applicazioni non hanno accesso direttamente. Stiamo parlando di strutture di basso livello come buffer di riempimento (Line Fill Buffer), buffer di archiviazione (Store Buffer) e porte di caricamento (Load Port), che sono elementi costitutivi più piccoli della cache di primo livello (L1D), cache di caricamento dei dati ( RDCL ) o L1TF (L1 Terminal Fault), e di conseguenza contengono meno informazioni e vengono aggiornati più intensamente.

È stata introdotta una nuova classe di vulnerabilità nei processori Intel

Gli attacchi side-channel alle strutture microarchitettoniche sono molto più difficili da eseguire rispetto ai metodi per ripristinare il contenuto della cache e richiedono il tracciamento e l'analisi di quantità significative di dati per determinare la loro connessione con determinati indirizzi in memoria (in sostanza, un utente malintenzionato non può intercettare intenzionalmente determinati dati , ma potrebbe occorrere tempo per accumulare fughe di notizie e applicare metodi statistici per ricostruire determinati tipi di dati). Inoltre, l'attacco colpisce solo i dati sullo stesso core fisico della CPU del codice dell'aggressore.

I metodi proposti per determinare il contenuto delle strutture microarchitettoniche si basano sul fatto che queste strutture vengono utilizzate durante la gestione speculativa delle eccezioni (guasti) o delle operazioni di caricamento e archiviazione.
Durante l'esecuzione speculativa, il contenuto delle strutture interne viene reindirizzato ai registri o alle cache per l'elaborazione. Le operazioni speculative non vengono completate e il risultato viene scartato, ma il contenuto reindirizzato può essere determinato utilizzando tecniche di analisi della cache del canale laterale.

Le porte di caricamento vengono utilizzate dal processore per ricevere dati dalla memoria o dal sottosistema I/O e fornire le informazioni ricevute ai registri della CPU. Grazie alla funzionalità di implementazione, i dati delle vecchie operazioni di download rimangono nelle porte finché non vengono sovrascritti da nuovi dati, il che rende possibile determinare indirettamente lo stato dei dati nella porta di download manipolando eccezioni (errori) e SSE/AVX/ Istruzioni AVX-512 che caricano più di 64 bit di dati. In tali condizioni, le operazioni di caricamento espongono speculativamente valori di dati non aggiornati da strutture interne a operazioni dipendenti. In modo simile, una perdita viene organizzata tramite il buffer di archiviazione, che viene utilizzato per velocizzare la scrittura nella cache della CPU e include una tabella di indirizzi, valori e flag, nonché tramite il buffer di riempimento, che contiene i dati che non è ancora nella cache L1 (cache-miss), per il momento viene caricato da cache di altri livelli.

È stata introdotta una nuova classe di vulnerabilità nei processori Intel

Problema colpisce Modelli di processori Intel prodotti dal 2011 (a partire dalla 6a generazione). In questo caso, le vulnerabilità hardware vengono bloccate a partire da alcuni modelli di 8a e 9a generazione di Intel Core e 2a generazione di Intel Xeon Scalable (è possibile verificare utilizzando il bit ARCH_CAP_MDS_NO in IA32_ARCH_CAPABILITIES MSR). Anche le vulnerabilità esistono già eliminato a livello di firmware, microcodice e sistemi operativi. Intel stima una perdita di prestazioni dopo l'attivazione della patch per la maggior parte degli utenti non supera 3%. Quando la tecnologia Hyper-Threading è disabilitata, il degrado delle prestazioni può raggiungere fino al 9% nel test SPECint_rate_base, fino all'11% nei calcoli di interi attivi e fino al 19% quando si eseguono applicazioni Java lato server (con HT abilitato, c'è quasi nessun degrado delle prestazioni). Le patch hanno un impatto minimo sulle prestazioni di I/O.

Il kernel Linux protegge dalle MDS aggiunto in oggi aggiornamenti 5.1.2, 5.0.16,
4.19.43, 4.14.119 e 4.9.176. Metodo di protezione in costruzione sulla cancellazione del contenuto dei buffer della microarchitettura al momento del ritorno dal kernel allo spazio utente o quando si trasferisce il controllo al sistema ospite, per il quale viene utilizzata l'istruzione VERW. Affinché la protezione funzioni, è necessario il supporto per la modalità MD_CLEAR, implementata nell'ultimo aggiornamento del microcodice. Per una protezione completa, si consiglia inoltre di disabilitare l'Hyper Threading. Per verificare l'esposizione del sistema alle vulnerabilità nel kernel Linux aggiunto gestore "/sys/devices/system/cpu/vulnerabilities/mds". Per controllare l'inclusione delle varie modalità di blocco delle vulnerabilità, è stato aggiunto nel kernel il parametro “mds=", che può assumere i valori "full", "full,nosmt" (disabilitando Hyper-Threads), "vmwerv" e "spento".

Sono già stati rilasciati aggiornamenti del pacchetto per RHEL и Ubuntu, ma per ora non sono disponibili Debian, Fedora и SUSE.
Una correzione per bloccare anche le fughe di dati dalle macchine virtuali formato per l'hypervisor Xen. Per proteggere i sistemi di virtualizzazione che emettono il comando L1D_FLUSH prima di trasferire il controllo a un'altra macchina virtuale e per proteggere le enclavi Intel SGX, è sufficiente un aggiornamento del microcodice.

Fonte: opennet.ru

Aggiungi un commento