Zabezpečení virtuálních počítačů na úrovni hypervisoru (1)

24. 8. 2009

Sdílet

Se vzrůstající oblibou virtuálních prostředí, ať již serverových nebo ve stále větší míře i desktopových, je kladen mnohem větší důraz i na bezpečnost těchto prostředí.

Je potřeba vzít v úvahu, že zabezpečení virtuálních počítačů se netýká pouze VM (virtuálních počítačů) samotných, respektive jejich síťové komunikace a dat na nich uložených, ale jde také o ochranu virtualizačních vrstev (hypervisorů) a virtuálních počítačů z pohledu těchto nejnižších vrstev virtuální infrastruktury.

Tato úroveň zabezpečení je velmi důležitá. Nejedná se zde totiž ve většině případů o standardní zabezpečení některým z antivirových nástrojů, i když i taková řešení existují, ale o bezpečnost přístupu k ovládacím prvkům virtuálních počítačů. Pomocí těchto nástrojů je totiž často možné virtuální počítače nejen zapnout nebo vypnout, ale také například zkopírovat celý disk virtuálního počítače nebo změnit jeho síťové připojení do jiné sítě, než má být. Jsou to rizika vyplývající z faktu, že i virtuální infrastruktura musí být nějakým způsobem a hlavně někým spravována. To, jakým způsobem lze ovlivnit chod virtuálních počítačů, je dáno i jejich pozicí nad samotnou virtualizační vrstvou.

 

Pozice VM

Pozice virtuálního počítače ve vztahu k samotné virtualizační vrstvě je jedním z klíčových parametrů bezpečnosti virtuálního počítače jako celku. Existují dvě základní schémata, která se objevují ve spojitosti s virtualizovanými řešeními. Prvním z nich je takzvaná „hosted“ virtualizace, kdy pod samotnými virtuálními počítači je fungující operační systém. Ten pak provozuje virtualizační vrstvu jako aplikaci nebo jako svou součást.

Druhým používaným schématem je využití takzvané „bare metal“ virtualizace. V tomto případě je na fyzickém serveru nainstalována pouze virtualizační vrstva jako jednoúčelový robot bez potřeby podkladového operačního systému. Bezpečnější z těchto dvou variant je určitě „bare metal“ virtualizace. Důvodem je právě absence plného podkladového operačního systému a tedy i mnohem menší možnost napadení virtualizační vrstvy jako takové běžnými viry či dalším škodlivým softwarem.

Pokud se zaměříme na „bare metal“ virtualizaci, objevuje se zde další aspekt poskytování zdrojů - poskytování fyzických zdrojů serveru k vykonávání činností virtuálních počítačů. Zde nejde jen o bezpečné poskytování zdrojů ve smyslu sdíleného paměťového prostoru nebo přístup k diskovým prostorům a způsob ukládání dat, ale také o izolaci virtuálních počítačů mezi sebou, možnosti jejich komunikace jeden na druhého a především o komunikaci hypervisoru směrem k virtuálnímu počítači.

Zdálo by se, že se jedná o dva zcela protichůdné přístupy. Sdílení prostředků a současně vzájemná izolace jednotlivých virtuálních serverů. Ve skutečnosti je ale princip umožňující tento zdánlivý paradox velmi jednoduchý - virtualizační vrstva, obecně nazývaná hypervisor, spravuje veškeré hardwarové prostředky a virtuálním počítačům jsou přidělovány adekvátní části těchto prostředků potřebných pro jejich provoz a zpracování úloh, jež mají vykonávat.

Důležitým faktem je, že i když jsou tyto základní prostředky sdílené, virtuální počítač, respektive příslušné operační systémy o tom nemají žádné informace a zpracovávají data stejně jako kdyby běžely na fyzických strojích. Neexistuje zde prakticky žádná cesta, jak by mohlo dojít k nechtěnému přenosu informací nebo záměně informací (například při operacích nad fyzickou pamětí RAM) mezi jednotlivými virtuálními počítači.

Jedinou cestou, jak operační systémy mohou sdílet informace mezi sebou, jsou sdílené datové prostory (disky, adresáře, …) a síťová komunikace mezi nimi. Toto jsou ale zdroje a přístupové cesty velmi dobře známé i z fyzického prostředí, přičemž existuje nespočet nástrojů a způsobů, jak je zabezpečit. O některých z nich bude řeč ještě dále.

Jak tedy může být bezpečnost virtuálních počítačů ovlivněna na úrovni samotného hypervisoru? Hypervisory jako takové nemají žádný důvod zasahovat z prostředí virtualizační vrstvy do dat na virtuálním počítači a v tomto smyslu nejsou ani poskytovány nástroje, které by to umožňovaly. Jedinými změnami či úpravami operačního systému virtuálního počítače jsou ovladače a nástroje pro monitorování správného běhu VM. Tyto nástroje jsou však rovněž známy z prostředí běžných fyzických počítačů (monitorování teploty procesoru, stavu napájecích zdrojů, atd.) a není to tedy žádná novinka. Z pohledu zabezpečení virtuálních počítačů se pak nejedná o bezpečnostní rizika, která by bylo potřeba zohledňovat při návrhu řešení virtualizace.

Nebezpečím, které hrozí virtuálním počítačům z úrovně virtualizační vrstvy, ať již ji poskytuje kterýkoliv z dodavatelů virtualizačních technologií, je bohužel člověk. O těchto chybách lidského faktoru a jejich možném omezení je následující část.

 

Vliv uživatele na správu VM

Nejnebezpečnějším prvkem všech virtualizačních řešení, a nejen jejich, je bohužel člověk. Ať již se jedná o nedbalost nebo úmysl, často právě jeho zásah způsobí ty největší škody. Otázkou je, zda lze tomuto vůbec zabránit. To, do jaké míry je možné zajistit, aby uživatel či administrátor řešení nepoškodil prostředí svou nedbalostí nebo špatným úmyslem, je dáno konstrukcí hypervisoru a oprávněními potřebnými pro jeho účinné ovládání.

Pokud budou uvažováni tři v současnosti největší hráči na trhu, tedy Citrix (XenServer), Microsoft (Hyper-V) a VMware (ESX server, respektive ESXi), je možné se bavit o konkrétních možnostech. U VMware ESX a Citrix XenServeru je otázka zabezpečení přístupu na hypervisor relativně jednoduchá. XenServer vychází z prostředí operačního systému Linux a u VMware ESX (pozor, nikoliv ESXi) je servisní konzole na tomto systému rovněž založena. U nástroje Microsoft Hyper-V je to operační systém Windows 2008 Server.

Z tohoto zjištění plynou i základní principy autorizace uživatelů a jejich práv směrem k možnosti správy virtualizační vrstvy a jejich možná kontrola, logování přístupů uživatelů k virtualizační vrstvě, sledování jejich činnosti, trvalé monitorování stavu virtualizační vrstvy a jednotlivých virtuálních počítačů, což je jen velmi krátký výčet základních funkcí většiny nástrojů pro virtualizaci.

Existuje tu ale jeden zásadní problém, týkající se oprávnění, která má k dispozici administrátor. Ve většině případů po přihlášení administrátora nebo uživatele s plnými administrátorskými právy je pak jeho činnost na úrovni hypervisoru prakticky anonymní, nehledě na to, že mívá natolik silná oprávnění, aby případné napáchané škody nebo manipulaci s daty po sobě mohl zahladit.

Nejen proto se tu nalézá další vrstva správy vizualizovaných prostředí. Tou je obvykle aplikace instalovaná na samostatný server, a to nad běžící operační systém. Skrze ni je rovněž možné provádět veškeré administrativní kroky nad hypervisorem, ale je tu jeden podstatný rozdíl - tyto aplikace umožňují autorizaci uživatele na úrovni účtů například z Active Directory domény nebo jiného správce uživatelských účtů.

Přímý přístup k virtualizační vrstvě má pak pouze tato aplikace a vstup uživatelům k nejnižší vrstvě virtualizace pouze zprostředkovává. Velkou výhodou tohoto řešení je, že veškeré činnosti prováděné nad virtualizační vrstvou jsou detailně logovány a tyto informace uchovávány. Navíc zde není možnost uchovávané informace smazat nebo jinak změnit. Bývají totiž ukládány v záznamech logů samotné virtualizační vrstvy, ke kterým uživatel správní aplikace, i kdyby měl postavení administrátora, má práva pouze pro čtení.

Zřejmě nejdále je v tomto způsobu zabezpečení hypervisoru společnost VMware se svým produktem ESXi. Jedná se o plnohodnotnou virtualizační vrstvu známou z VMware ESX serveru, ale bez servisní konsole. Jedinými údaji, které je možné nastavit přímo z konsole tohoto nástroje, jsou jeho IP adresa a heslo uživatele root. I tohoto uživatele však lze omezit natolik, že není možné se na lokální klávesnici vůbec přihlásit a jedinou možností je pak již zmíněná zabezpečená management aplikace.

Kromě možnosti ovlivnění virtuálního počítače z prostředí hypervisoru nebo jeho správní aplikace tu existuje „běžná“ hrozba ve formě virů a neautorizovaného přístupu po síťové vrstvě. Ani zde ale producenti virtualizačních nástrojů nezahálejí. Mohlo by se říci, že to není přímo jejich starost, ale opak je pravdou.

Už v dnešní době jsou zde specializované nástroje právě na ochranu síťové komunikace ve formě jednoúčelových virtuálních počítačů. Tato jsou zařazeny do virtualizované infrastruktury jako firewally nebo antivirové brány předřazené virtuálním počítačům jako takovým. Jako jedny z mnoha je možné jmenovat například takové firmy, jako jsou například CheckPoint, F5, Symantec nebo RSA. Tito partneři velmi úzce spolupracují s dodavateli virtualizačních nástrojů na vývoji účinnějších nástrojů na zabezpečení síťové komunikace a operačních systémů virtuálních počítačů.

Kromě zajištění bezpečnosti operačního systému a jeho síťové komunikace tu existuje další prvek, který může přinést velkou změnu v pohledu na antivirové zabezpečení virtuálních počítačů. Tím je vložení bezpečnostního rozhraní, na které je napojen zmíněný jednoúčelový zabezpečovací stroj. Pomocí něj jsou pak kontrolována veškerá zpracovávaná data na úrovni obsahů paměti, instrukcí a dat ukládaných na pevný disk víceméně bez nutné interakce s operačním systémem virtuálního počítače. Tato oblast se teprve rozvíjí, nicméně je považována za další velký krok ve směru k bezpečnějším virtualizovaným prostředím.

 

bitcoin_skoleni

(dokočení článku)

Tento článek vyšel v tištěném SecurityWorldu 1/2009.