Chyba zabezpečení v KVM umožňuje provádění kódu mimo systém hosta na procesorech AMD

Vědci z týmu Google Project Zero představili před několika dny v příspěvku na blogu identifikovali chybu zabezpečení (CVE-2021-29657) v hypervisoru KVM (hypervisor založený na Linuxu s otevřeným zdrojovým kódem, který podporuje hardwarově akcelerovanou virtualizaci na x86, ARM, PowerPC a S / 390), který umožňuje vyhnout se izolaci hostujícího systému a spusťte svůj kód na straně hostitelského prostředí.

Příspěvek zmiňuje tento problém manifesty od linuxového jádra 5.10-rc1 po v5.12-rc6, to znamená, pokrývá pouze jádra 5.10 a 5.11 (Většina stabilních poboček distribucí nebyla tímto problémem ovlivněna.) Problém je přítomen v mechanismu nested_svm_vmrun, implementovaném pomocí rozšíření AMD SVM (Secure Virtual Machine) a umožňující vnořené spuštění hostujících systémů.

V tomto příspěvku na blogu popisuji chybu zabezpečení v kódu KVM specifickém pro AMD a diskutuji o tom, jak se tato chyba může změnit na kompletní únik virtuálního stroje. Pokud vím, jedná se o první veřejný zápis KVM typu host-to-host, který se nespoléhá na chyby v komponentách uživatelského prostoru, jako je QEMU.

Diskutované chybě byl přidělen CVE-2021-29657, týká se verzí jádra v5.10-rc1 až v5.12-rc6 a byla opravena koncem března 2021. Jelikož se chyba stala použitelnou až ve v5.10 a byla objevena asi o 5 měsíců později, většina KVM nasazení v reálném světě by neměla být ovlivněna. Stále si myslím, že problémem je zajímavá případová studie v práci potřebné k vybudování stabilního úniku host-to-host proti KVM a doufám, že tento článek dokáže, že kompromisy hypervisoru nejsou jen teoretické problémy.

Vědci uvádějí, že pro správnou implementaci této funkce hypervisor musí zachytit všechny pokyny SVM běží na hostujících systémech, emulovat jeho chování a synchronizovat stav s hardwarem, což je docela obtížný úkol.

Po analýze navrhované implementace KVM vědcis došlo k logické chybě, která umožňuje obsah zprávy MSR (Specifická registrace modelu) hostitele být ovlivňován systémem hostů, které lze použít ke spuštění kódu na úrovni hostitele.

Zejména spuštění operace VMRUN od druhého vnořeného hosta na úrovni (L2 spuštěno od jiného hosta) vede k druhému volání nested_svm_vmrun a poškodí strukturu svm-> nested.hsave, která je překryta daty z vmcb ze systému hosta L2 .

Výsledkem je situace, kdy na úrovni hosta L2 je možné uvolnit paměť ve struktuře svm-> nested.msrpm, která ukládá bit MSR, i když se i nadále používá, a přistupovat k MSR hostitele prostředí.

To znamená například, že paměť hosta může být zkontrolována vyřazením přidělené paměti procesu jeho uživatelského prostoru nebo že lze snadno vynutit omezení prostředků pro čas a paměť CPU. 

Kromě toho může KVM odložit většinu práce související s emulací zařízení do komponenty uživatelského prostoru.

Problém je přítomen v kódu používaném v systémech s procesory AMD (modul kvm-amd.ko) a neobjevuje se na procesorech Intel.

 Kromě několika zařízení citlivých na výkon, které se zabývají zpracováním přerušení, lze v uživatelském prostoru nasadit veškerý složitý nízkoúrovňový kód pro poskytování přístupu na virtuální disk, síť nebo GPU.  

Vědci kromě popisu problému Připravili také funkční prototyp exploitu který umožňuje spouštět kořenový shell z prostředí hosta v hostitelském prostředí v systému s procesorem AMD Epyc 7351P a jádrem Linuxu 5.10.

Je pozorováno, že toto je první host, který hostí chybu zabezpečení v hypervizoru KVM sama o sobě nesouvisí s chybami v komponentách uživatelského prostoru, jako je QEMU. Oprava byla v jádře přijata koncem března.

Konečně pokud máte zájem o tom vědět více o poznámce můžete zkontrolovat podrobnosti Na následujícím odkazu.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.