Attacco TSA che porta a perdite di informazioni dalle strutture microarchitetturali della CPU AMD

L'azienda AMD ha rivelato informazioni su una nuova classe di attacchi microarchitetturali ai suoi processori: TSA (Transient Scheduler Attack). Questo attacco consente a un aggressore di eludere i meccanismi di isolamento della CPU e di identificare i dati trattati in altri contesti, ad esempio, ottenere informazioni elaborate a livello di kernel dallo spazio utente o scoprire dati utilizzati in un'altra macchina virtuale da un sistema ospitante.

Le vulnerabilità sono state scoperte durante lo sviluppo di un toolkit creato da ricercatori di Microsoft e dal Politecnico Federale di Zurigo per stress testare l'isolamento microarchitetturale tra diverse zone di separazione degli accessi, come il kernel, le macchine virtuali e i processi.

Il metodo di attacco si basa sulla dipendenza del tempo di esecuzione di alcune istruzioni dallo stato delle strutture microarchitetturali. Quando il processore attende un rapido completamento dell'istruzione di lettura dei dati dalla memoria (ad esempio, presumendo che i dati siano nella cache L1), ma non riesce a ottenere con successo i dati, si verifica uno stato di 'falsa conclusione' dell'istruzione. In questo caso, il processore, ancor prima di stabilire questo stato, può pianificare l'esecuzione speculativa di altre operazioni dipendenti dal risultato dell'istruzione di caricamento dalla memoria.

Poiché il caricamento non è stato completato, i dati associati sono considerati non validi dalla CPU e l'operazione di caricamento viene ripetuta successivamente. Anche le operazioni dipendenti vengono rieseguite dopo la disponibilità dei dati corretti. Tuttavia, non viene effettuato il flush della pipeline dopo l'esecuzione dell'istruzione per la quale è stato registrato lo stato di 'falsa conclusione', e dati non corretti possono essere indirizzati a operazioni dipendenti.

L'esecuzione di tali operazioni non altera lo stato della cache e del TLB (Translation Lookaside Buffer), ovvero i dati non possono essere recuperati attraverso metodi tradizionali di determinazione dello stato della cache. Tuttavia, questi dati influenzano i tempi di esecuzione di altre istruzioni. L'analisi dei tempi di esecuzione può essere utilizzata come fonte di perdite di informazioni dalle strutture microarchitetturali, rimaste dopo l'esecuzione speculativa di altre operazioni.

A seconda della fonte di estrazione dei dati residui, sono state identificate due vulnerabilità:

  • CVE-2024-36350 (TSA-SQ — TSA Store Queue) — perdita di dati dal buffer temporaneo delle operazioni di scrittura (Store Queue), che consente di determinare il risultato delle istruzioni di scrittura nella memoria.
  • CVE-2024-36357 (TSA-L1 — TSA L1 Data Cache) — perdita attraverso la cache L1D.

Le vulnerabilità si manifestano nella famiglia di processori AMD (Fam19h) basati sulle microarchitetture Zen 3 e Zen 4. Ad esempio, il problema è presente nelle serie di CPU AMD Ryzen 5000/6000/7000/8000, AMD EPYC Milan/Milan-X/Genoa/Genoa-X/Bergamo/Siena, AMD Instinct MI300A, AMD Ryzen Threadripper PRO 7000 WX, AMD EPYC Embedded 7003/8004/9004/97X4, AMD Ryzen Embedded 5000/7000/V3000.

Le modifiche necessarie per bloccare le vulnerabilità sono incluse nell'aggiornamento di microcodice di dicembre e nei firmware PI (Platform Initialization) forniti ai produttori OEM. Le patch per proteggere da queste vulnerabilità sono state inviate per essere incluse nel kernel di Linux (per disattivare la protezione, che influisce negativamente sulle prestazioni, è prevista un'opzione della riga di comando del kernel «tsa=off»). La correzione è stata inoltre aggiunta nell'ipervisore Xen. Per bloccare le vulnerabilità è necessaria sia l'aggiornamendo del microcodice che l'attivazione della modalità protetta a livello di kernel o dell'ipervisore.

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