A causa del bug del firmware Lenovo ThinkPwn sto cercando di capire i privilegi e gli anelli.
Se il kernel è Ring 0 e SMM (System Management Mode) è Ring -2, cosa potrebbe esserci tra Ring -1?
A causa del bug del firmware Lenovo ThinkPwn sto cercando di capire i privilegi e gli anelli.
Se il kernel è Ring 0 e SMM (System Management Mode) è Ring -2, cosa potrebbe esserci tra Ring -1?
La nomenclatura "anelli" (0-3) di solito si vede in questi giorni iniziata con il campo del livello di privilegio richiesto nei selettori di segmento come parte della progettazione della modalità protetta x86.
Nel passato, era possibile creare sezioni esclusive dello spazio di memoria chiamato segmenti. In "modalità reale" era necessario poiché si aveva solo memoria indirizzabile a 20 bit. Quando è arrivata la modalità protetta, offriva ancora la segmentazione, ma anche i livelli di privilegio. I livelli 0-2 sono di livello "supervisore" e possono fare la maggior parte delle cose. Gli anelli 1-2 non possono eseguire istruzioni privilegiate ma questo è l'unico limite reale; altrimenti sono privilegiati come lo squillo 0.
Ring 3 nel frattempo è "modalità utente". Se hai il tuo selettore di segmenti impostato per puntare a questo anello, hai bisogno dell'aiuto del kernel tramite un'interfaccia di chiamata di sistema per fare qualsiasi cosa che richieda un accesso privilegiato alla CPU o alla memoria.
In questi giorni, è piuttosto necessario in x86 a 64 bit non utilizzare la segmentazione. Tuttavia, i selettori di segmento sono ancora lì: tutti i segmenti si sovrappongono e coprono l'intero spazio degli indirizzi.
Quindi, lo scopo originale dell'anello 0-3 era di isolare il privilegio tra il codice della modalità utente e il kernel e interrompere il codice della modalità utente camminando su tutte le strutture di controllo del sistema.
Quindi la virtualizzazione divenne una cosa su x86 e Intel / AMD decise di aggiungere il supporto hardware per questo. Ciò richiede un pezzo di codice supervisore (hypervisor) per configurare alcune strutture di controllo (chiamate VMCS) che definiscono le macchine virtuali e quindi chiama vmenter
e gestiscono vmexit
i.e. condizioni su cui la macchina virtuale ha bisogno dell'aiuto dell'hypervisor.
Questo pezzo di codice è indicato come "ring -1". Non esiste un tale livello di privilegi effettivo, ma dal momento che può ospitare più kernel che credono di avere l'accesso a Ring 0 al sistema, ha senso.
La modalità di gestione del sistema è un'altra bestia con istruzioni speciali. Il firmware (il BIOS) imposta un gestore SMM per gestire interrupt di gestione del sistema, configurabili in base a ciò che il firmware desidera ricevere. Quando questi eventi vengono attivati, il sistema operativo (o anche l'hypervisor) viene sospeso e viene inserito uno spazio indirizzo speciale. Questa area dovrebbe essere invisibile al sistema operativo stesso, mentre viene eseguita sullo stesso processore. Quindi "ring -2", poiché è più privilegiato di un hypervisor.
Sentirai anche "ring -3" menzionato qui e là in riferimento a Intel ME o PSP di AMD. Si tratta di un secondo processore che esegue un firmware separato (Intel credo utilizzi processori ARC SoC) in grado di fare tutto ciò che gli piace sul sistema principale. Apparentemente questo è per fornire IPMI / gestione remota della funzionalità del tipo di hardware. Può essere eseguito ogni volta che l'hardware è alimentato, indipendentemente dal fatto che il sistema principale sia acceso o meno; il suo scopo, come dire, sarebbe quello di accendere il sistema principale.
Dal punto di vista della sicurezza, l'anello inferiore in cui ti puoi muovere, il più inosservabile che puoi fare da solo. La ricerca di bluepill riguardava la possibilità di nascondersi da un sistema operativo, dal momento che funzionava veramente in una VM. Ricerche successive sono state condotte sulla persistenza SMM. La persistenza SMM, ad esempio, ti consentirebbe potenzialmente di reinstallare il tuo malware anche su una cancellazione completa del disco rigido e reinstallarla. Intel ME potenzialmente apre un chip di rete sempre attivo per installare malware sul target principale.
Sono rimasto fedele ai chip Intel ma dovresti sapere che altre piattaforme funzionano diversamente. Ad esempio, i chip ARM hanno modalità "supervisore" e "utente", tra gli altri.
Ring -1 è l'hypervisor, implementato come Intel VT-x ("Vanderpool") [ Wikipedia] o AMD-V ("Pacifica") [Wikipedia] .
Leggi altre domande sui tag operating-systems kernel protection