È stata rivelata un'informazione su una vulnerabilità (CVE-2021-33164) nei firmware UEFI, che consente di eseguire codice a livello di SMM (System Management Mode), un livello più privilegiato rispetto alla modalità hypervisor e al livello di protezione zero, fornendo accesso illimitato a tutta la memoria di sistema. La vulnerabilità, denominata RingHopper, è legata alla possibilità di condurre attacchi basati sul tempo tramite DMA (Direct Memory Access) per corrompere la memoria nel codice eseguito a livello di SMM. La presenza della vulnerabilità è stata confermata nei firmware di Intel, Dell e Insyde Software (si afferma che il problema riguardi 8 produttori, ma gli altri 5 non sono stati ancora rivelati). I firmware di AMD, Phoenix e Toshiba non sono interessati dal problema.
L'exploitation delle vulnerabilità può essere effettuata dall'interno del sistema operativo, utilizzando gestori SMI vulnerabili (System Management Interrupt), per accedere ai quali sono necessari diritti di amministratore. L'attacco può essere condotto anche in presenza di accesso fisico nelle prime fasi di avvio, prima dell'inizializzazione del sistema operativo. Per bloccare il problema, agli utenti Linux si consiglia di aggiornare il firmware tramite il servizio LVFS (Linux Vendor Firmware Service), utilizzando l'utilità fwupdmgr (fwupdmgr get-updates; fwupdmgr update) dal pacchetto fwupd.
La necessità di privilegi di amministratore per condurre un attacco limita la gravità del problema, ma non impedisce il suo utilizzo come vulnerabilità di secondo livello, per mantenere la propria presenza dopo aver sfruttato altre vulnerabilità nel sistema o mediante metodi di ingegneria sociale. L'accesso a SMM (Ring -2) consente di eseguire codice a un livello non controllato dal sistema operativo, il che può essere utilizzato per modificare i firmware e inserire in SPI Flash codice dannoso nascosto o rootkit, non rilevabili dal sistema operativo, e per disabilitare la verifica durante il processo di avvio (UEFI Secure Boot, Intel BootGuard), nonché per attacchi agli hypervisor che aggirano i meccanismi di verifica dell'integrità degli ambienti virtuali.
Il problema è causato da una condizione di competizione nell'handler SMI (System Management Interrupt), che si verifica nel momento tra la verifica dell'accesso e l'accesso a SMRAM. Per determinare il momento giusto tra la verifica dello stato e l'uso del risultato della verifica, può essere utilizzata un'analisi tramite canali esterni con DMA. Di conseguenza, a causa della natura asincrona dell'accesso a SMRAM tramite DMA, un aggressore può determinare il momento giusto e sovrascrivere il contenuto di SMRAM, utilizzando DMA per eludere l'API dell'handler SMI. I processori che supportano i meccanismi Intel-VT e Intel VT-d includono protezioni contro gli attacchi DMA, basate sull'uso dell'IOMMU (Input-Output Memory Management Unit), ma questa protezione è efficace per bloccare attacchi hardware DMA effettuati tramite dispositivi preparati dall'aggressore e non protegge da attacchi tramite gli handler SMI.
Fonte: opennet.ru
