È stata identificata un'altra vulnerabilità nei processori AMD che consente attacchi Meltdown

Un team di ricercatori dell'Università Tecnica di Graz (Austria) e del Centro Helmholtz per la sicurezza informatica (CISPA) ha scoperto una vulnerabilità (CVE-2021-26318) in tutti i processori AMD che consente di eseguire side-class di classe Meltdown attacchi channel (inizialmente si presumeva che i processori AMD non fossero interessati dalla vulnerabilità Meltdown). In termini pratici, l'attacco può essere utilizzato per stabilire canali di comunicazione nascosti, monitorare l'attività nel kernel o ottenere informazioni sugli indirizzi nella memoria del kernel per aggirare la protezione KASLR sfruttando le vulnerabilità nel kernel.

AMD ritiene inappropriato adottare misure speciali per bloccare il problema, poiché la vulnerabilità, come un attacco simile scoperto in agosto, è di scarsa utilità in condizioni reali, è limitata dagli attuali confini dello spazio degli indirizzi del processo e richiede la presenza di determinati sequenze già pronte di istruzioni (gadget) nel kernel. Per dimostrare l'attacco, i ricercatori hanno caricato il proprio modulo kernel con un gadget aggiunto artificialmente. In condizioni reali, gli aggressori possono, ad esempio, utilizzare regolarmente le vulnerabilità nel sottosistema eBPF per sostituire le sequenze necessarie.

Per proteggersi da questo nuovo tipo di attacco, AMD ha consigliato di utilizzare tecniche di codifica sicure che aiutano a bloccare gli attacchi Meltdown, come l'utilizzo delle istruzioni LFENCE. I ricercatori che hanno identificato il problema consigliano di abilitare un isolamento più rigoroso della tabella delle pagine di memoria (KPTI), precedentemente utilizzato solo per i processori Intel.

Durante l’esperimento, i ricercatori sono riusciti a far trapelare informazioni dal kernel ad un processo nello spazio utente ad una velocità di 52 byte al secondo, data la presenza di un gadget nel kernel che esegue l’operazione “if (offset < data_len) tmp = LUT[dati[offset] * 4096];” . Sono stati proposti diversi metodi per recuperare informazioni tramite canali laterali che finiscono nella cache durante l'esecuzione speculativa. Il primo metodo si basa sull'analisi delle deviazioni nel tempo di esecuzione dell'istruzione del processore “PREFETCH” (Prefetch+Time), mentre il secondo sulla modifica della variazione del consumo di energia durante l'esecuzione di “PREFETCH” (Prefetch+Power).

Ricordiamo che la classica vulnerabilità Meltdown si basa sul fatto che durante l'esecuzione speculativa delle istruzioni, il processore può accedere ad un'area dati privata e quindi scartare il risultato, poiché i privilegi impostati vietano tale accesso al processo utente. Nel programma, il blocco eseguito speculativamente è separato dal codice principale da un ramo condizionale, che in condizioni reali si attiva sempre, ma a causa del fatto che l'istruzione condizionale utilizza un valore calcolato che il processore non conosce durante l'esecuzione preventiva di il codice, tutte le opzioni di ramo vengono eseguite in modo speculativo.

Poiché le operazioni eseguite speculativamente utilizzano la stessa cache delle istruzioni eseguite normalmente, è possibile durante l'esecuzione speculativa impostare dei marcatori nella cache che riflettono il contenuto dei singoli bit in un'area di memoria privata, e quindi nel codice eseguito normalmente determinare il loro valore attraverso la temporizzazione. l'analisi accede ai dati memorizzati nella cache e non nella cache.

Fonte: opennet.ru

Aggiungi un commento