Zraniteľnosť v KVM umožňuje vykonávanie kódov mimo hosťovského systému na procesoroch AMD

Vedci z tímu Google Project Zero predstavili pred pár dňami príspevok v blogu, ktorý to predstavil identifikovali chybu zabezpečenia (CVE-2021-29657) v hypervízore KVM (hypervisor založený na Linuxe s otvoreným zdrojom, ktorý podporuje hardvérovo akcelerovanú virtualizáciu na procesoroch x86, ARM, PowerPC a S / 390), ktorý umožňuje vyhnúť sa izolácii hosťovského systému a spustite svoj kód na strane hostiteľského prostredia.

V príspevku sa spomína tento problém manifesty od jadra Linuxu 5.10-rc1 po v5.12-rc6, to znamená, pokrýva iba jadrá 5.10 a 5.11 (Problém sa netýka väčšiny stabilných pobočiek distribúcií.) Problém je v mechanizme nested_svm_vmrun implementovanom pomocou rozšírenia AMD SVM (Secure Virtual Machine) a umožňujúcom vnorené spúšťanie hosťujúcich systémov.

V tomto blogovom príspevku popisujem zraniteľnosť v kóde KVM špecifickom pre AMD a rozoberám, ako sa táto chyba môže zmeniť na úplný únik virtuálneho stroja. Pokiaľ viem, ide o prvé verejné napísanie úniku KVM hosť-hostiteľ, ktorý sa nespolieha na chyby v komponentoch užívateľského priestoru, ako je QEMU.

Diskutovanej chybe bolo pridelené CVE-2021-29657, týka sa verzií jadra v5.10-rc1 až v5.12-rc6 a bola opravená koncom marca 2021. Pretože sa chyba stala zneužitou až vo v5.10 a bola objavená asi o 5 mesiacov neskôr, nemala by byť ovplyvnená väčšina nasadení KVM v reálnom svete. Stále si myslím, že problémom je zaujímavá prípadová štúdia pri práci potrebnej na vybudovanie stabilného úniku hosťa proti hostiteľovi proti KVM a dúfam, že tento článok dokáže, že kompromisy hypervízora nie sú iba teoretickými problémami.

Vedci spomínajú, že pre správnu implementáciu tejto funkcionality je potrebné hypervisor musí zachytiť všetky pokyny SVM bežať na hosťujúcich systémoch, emulovať svoje správanie a synchronizovať stav s hardvérom, čo je dosť ťažká úloha.

Po analýze navrhovanej implementácie KVM, vedcinarazila na logickú chybu, ktorá umožňuje obsah správy MSR (Registrácia špecifická pre model) hostiteľa byť ovplyvňované zo systému hostí, ktoré možno použiť na spustenie kódu na úrovni hostiteľa.

Najmä spustenie operácie VMRUN od hosťa druhej vnorenej úrovne (L2 spusteného od iného hosťa) vedie k druhému volaniu nested_svm_vmrun a poškodí štruktúru svm-> nested.hsave, ktorá je prekrytá údajmi z vmcb z hosťovského systému L2. .

Výsledkom je situácia, že na úrovni hosťa L2 je možné uvoľniť pamäť v štruktúre svm-> nested.msrpm, ktorá ukladá bit MSR, aj keď sa naďalej používa, a pristupovať k MSR hostiteľa prostredie.

To napríklad znamená, že pamäť hosťa sa dá skontrolovať pomocou vyhodenia pridelenej pamäte procesu jeho užívateľského priestoru alebo že sa dajú ľahko vynútiť limity zdrojov pre čas a pamäť CPU. 

Okrem toho môže KVM odložiť väčšinu práce súvisiacej s emuláciou zariadenia do komponentu užívateľského priestoru.

Problém je v kóde používanom v systémoch s procesormi AMD (modul kvm-amd.ko) a neobjavuje sa na procesoroch Intel.

 Okrem niekoľkých zariadení citlivých na výkon, ktoré sa zaoberajú manipuláciou s prerušením, je možné v používateľskom priestore nasadiť všetok zložitý nízkoúrovňový kód poskytujúci prístup na virtuálny disk, sieť alebo GPU.  

Vedci okrem popisu problému pripravili tiež funkčný prototyp zneužitia ktorý umožňuje spustenie koreňového shellu z hosťovského prostredia v hostiteľskom prostredí v systéme s procesorom AMD Epyc 7351P a jadrom Linux 5.10.

Je to pozorované toto je prvý hosť, ktorý hostí chybu zabezpečenia v hypervízore KVM sám nesúvisí s chybami v komponentoch užívateľského priestoru ako QEMU. Oprava bola prijatá v jadre koncom marca.

Konečne ak máte záujem dozvedieť sa o tom viac o poznámke môžete skontrolovať podrobnosti Na nasledujúcom odkaze.


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.