Používání QubesOS pro práci s Windows 7

O Habrém není mnoho článků věnovaných operačnímu systému Qubes a ty, které jsem viděl, příliš nepopisují zkušenosti s jeho používáním. Pod řezem to doufám napravím na příkladu použití Qubes jako prostředku ochrany (proti) prostředí Windows a zároveň odhadnu počet rusky mluvících uživatelů systému.

Používání QubesOS pro práci s Windows 7

Proč Qubes?

Příběh konce technické podpory pro Windows 7 a zvyšující se obavy uživatelů vedly k potřebě zorganizovat práci tohoto OS s ohledem na následující požadavky:

  • zajistit používání plně aktivovaného Windows 7 s možností pro uživatele instalovat aktualizace a různé aplikace (včetně přes internet);
  • implementovat úplné nebo selektivní vyloučení síťových interakcí na základě podmínek (autonomní provoz a režimy filtrování provozu);
  • poskytují možnost selektivně připojit vyměnitelná média a zařízení.

Tato sada omezení předpokládá jasně připraveného uživatele, protože je povolena nezávislá administrace a omezení nesouvisí s blokováním jeho potenciálních akcí, ale s vyloučením možných chyb nebo destruktivních softwarových efektů. Tito. V modelu není žádný vnitřní pachatel.

Při hledání řešení jsme rychle opustili myšlenku zavádění omezení pomocí vestavěných nebo dodatečných nástrojů Windows, protože je poměrně obtížné účinně omezit uživatele s právy správce a ponechat mu možnost instalovat aplikace.

Dalším řešením byla izolace pomocí virtualizace. Známé nástroje pro virtualizaci desktopů (například virtualbox) se pro řešení bezpečnostních problémů špatně hodí a uvedená omezení bude muset uživatel provádět neustálým přepínáním nebo úpravou vlastností hostujícího virtuálního stroje (dále jen jako VM), což zvyšuje riziko chyb.

Zároveň jsme měli zkušenosti s používáním Qubes jako uživatelského desktopového systému, ale měli jsme pochybnosti o stabilitě práce s hostujícími Windows. Bylo rozhodnuto zkontrolovat aktuální verzi Qubes, protože uvedená omezení velmi dobře zapadají do paradigmatu tohoto systému, zejména implementace šablon virtuálních strojů a vizuální integrace. Dále se pokusím krátce pohovořit o nápadech a nástrojích Qubes na příkladu řešení problému.

Typy virtualizace Xen

Qubes je založen na hypervizoru Xen, který minimalizuje funkce správy procesorových prostředků, paměti a virtuálních strojů. Veškerá další práce se zařízeními je soustředěna v dom0 založeném na linuxovém jádře (Qubes pro dom0 používá distribuci Fedora).

Používání QubesOS pro práci s Windows 7

Xen podporuje několik typů virtualizace (uvedu příklady pro architekturu Intel, i když Xen podporuje i jiné):

  • paravirtualizace (PV) - režim virtualizace bez použití hardwarové podpory, připomínající virtualizaci kontejnerů, lze použít pro systémy s přizpůsobeným jádrem (v tomto režimu pracuje dom0);
  • plná virtualizace (HVM) - v tomto režimu se využívá hardwarová podpora pro procesorové prostředky a všechna ostatní zařízení jsou emulována pomocí QEMU. Toto je nejuniverzálnější způsob spouštění různých operačních systémů;
  • paravirtualizace hardwaru (PVH - ParaVirtualized Hardware) - režim virtualizace využívající hardwarovou podporu, kdy pro práci s hardwarem používá jádro hostujícího systému ovladače přizpůsobené možnostem hypervizoru (například sdílená paměť), což eliminuje potřebu emulace QEMU a zvýšení I/O výkonu. V tomto režimu může pracovat linuxové jádro od verze 4.11.

Používání QubesOS pro práci s Windows 7

Počínaje Qubes 4.0 je z bezpečnostních důvodů opuštěno použití paravirtualizačního režimu (včetně známých zranitelností v architektuře Intel, které jsou částečně zmírněny použitím plné virtualizace); standardně se používá PVH režim.

Při použití emulace (režim HVM) se QEMU spouští v izolovaném virtuálním počítači zvaném stubdomain, čímž se snižuje riziko zneužití případných chyb při implementaci (projekt QEMU obsahuje spoustu kódu, včetně kompatibility).
V našem případě by tento režim měl být použit pro Windows.

Servis virtuálních strojů

V bezpečnostní architektuře Qubes je jednou z klíčových schopností hypervizoru přenos zařízení PCI do prostředí hosta. Vyloučení hardwaru umožňuje izolovat hostitelskou část systému od externích útoků. Xen to podporuje pro režimy PV a HVM, v druhém případě vyžaduje podporu pro IOMMU (Intel VT-d) - hardwarovou správu paměti pro virtualizovaná zařízení.

Tím se vytvoří několik systémových virtuálních strojů:

  • sys-net, do kterého jsou přenášena síťová zařízení a který se používá jako most pro další virtuální počítače, například ty, které implementují funkce firewallu nebo VPN klienta;
  • sys-usb, do kterého se přenášejí USB a další řadiče periferních zařízení;
  • sys-firewall, který nepoužívá zařízení, ale funguje jako firewall pro připojené VM.

Pro práci s USB zařízeními se používají proxy služby, které mimo jiné poskytují:

  • pro třídu zařízení HID (human interface device) odesílání příkazů do dom0;
  • u vyměnitelných médií přesměrování svazků zařízení na jiné virtuální počítače (kromě dom0);
  • přesměrování přímo na USB zařízení (pomocí USBIP a integračních nástrojů).

V takové konfiguraci může úspěšný útok přes síťový zásobník nebo připojená zařízení vést ke kompromitaci pouze běžícího virtuálního počítače služby, nikoli celého systému jako celku. A po restartu servisního VM bude načten v původním stavu.

Nástroje pro integraci VM

Existuje několik způsobů interakce s pracovní plochou virtuálního počítače – instalace aplikací do hostujícího systému nebo emulace videa pomocí virtualizačních nástrojů. Hostující aplikace mohou být různé univerzální nástroje pro vzdálený přístup (RDP, VNC, Spice atd.) nebo přizpůsobené konkrétnímu hypervizoru (takovéto nástroje se obvykle nazývají hostující nástroje). Lze také použít smíšenou možnost, kdy hypervizor emuluje I/O pro hostující systém a externě poskytuje možnost používat protokol, který kombinuje I/O, například jako Spice. Nástroje pro vzdálený přístup zároveň obvykle optimalizují obraz, protože zahrnují práci přes síť, což nemá pozitivní vliv na kvalitu obrazu.

Qubes poskytuje své vlastní nástroje pro integraci VM. V první řadě se jedná o grafický subsystém – okna z různých VM se zobrazují na jedné ploše s vlastním barevným rámečkem. Obecně jsou integrační nástroje založeny na schopnostech hypervizoru – sdílená paměť (Xen grantová tabulka), notifikační nástroje (Xen event channel), sdílené úložiště xenstore a komunikační protokol vchan. S jejich pomocí jsou implementovány základní komponenty qrexec a qubes-rpc a aplikační služby - přesměrování zvuku nebo USB, přenos souborů nebo obsahu schránky, provádění příkazů a spouštění aplikací. Je možné nastavit zásady, které vám umožní omezit služby dostupné na virtuálním počítači. Obrázek níže je příkladem postupu pro inicializaci interakce dvou virtuálních počítačů.

Používání QubesOS pro práci s Windows 7

Práce ve VM se tedy provádí bez použití sítě, což umožňuje plné využití autonomních VM, aby se zabránilo úniku informací. Takto je například implementováno oddělení kryptografických operací (PGP/SSH), kdy se soukromé klíče používají v izolovaných VM a nepřekračují je.

Šablony, aplikace a jednorázové virtuální počítače

Veškerá uživatelská práce v Qubes se provádí na virtuálních strojích. K jejich ovládání a vizualizaci slouží hlavní hostitelský systém. OS se instaluje spolu se základní sadou virtuálních strojů založených na šablonách (TemplateVM). Tato šablona je virtuální počítač s Linuxem založený na distribuci Fedora nebo Debian s nainstalovanými a nakonfigurovanými integračními nástroji a vyhrazenými systémovými a uživatelskými oddíly. Instalace a aktualizace softwaru se provádí standardním správcem balíčků (dnf nebo apt) z nakonfigurovaných repozitářů s povinným ověřováním digitálního podpisu (GnuPG). Účelem takových VM je zajistit důvěru v aplikační VM spouštěné na jejich základě.

Při spuštění používá virtuální počítač aplikace (AppVM) snímek systémového oddílu odpovídající šablony virtuálního počítače a po dokončení tento snímek odstraní bez uložení změn. Data požadovaná uživatelem jsou uložena v uživatelském oddílu jedinečném pro každý virtuální počítač aplikace, který je připojen v domovském adresáři.

Používání QubesOS pro práci s Windows 7

Použití jednorázových virtuálních počítačů (disposableVM) může být užitečné z hlediska zabezpečení. Takový VM je vytvořen na základě šablony v okamžiku spuštění a je spuštěn za jediným účelem - spustit jednu aplikaci a dokončit práci po jejím uzavření. Jednorázové virtuální počítače lze použít k otevírání podezřelých souborů, jejichž obsah by mohl vést ke zneužití konkrétních zranitelností aplikací. Možnost spustit jednorázový VM je integrována do správce souborů (Nautilus) a e-mailového klienta (Thunderbird).

Windows VM lze také použít k vytvoření šablony a jednorázového VM přesunutím uživatelského profilu do samostatné sekce. V naší verzi bude taková šablona sloužit uživateli pro administrativní úkony a instalaci aplikace. Na základě šablony bude vytvořeno několik aplikačních VM – s omezeným přístupem k síti (standardní možnosti sys-firewallu) a bez přístupu k síti vůbec (nevytvoří se virtuální síťové zařízení). Všechny změny a aplikace nainstalované v šabloně budou k dispozici pro práci v těchto virtuálních počítačích, a i když budou zavedeny programy se záložkami, nebudou mít přístup k síti kvůli kompromitaci.

Bojujte za Windows

Výše popsané funkce jsou základem Qubes a fungují poměrně stabilně, potíže začínají u Windows. Chcete-li integrovat Windows, musíte použít sadu nástrojů pro hosty Qubes Windows Tools (QWT), která obsahuje ovladače pro práci s Xen, ovladač qvideo a sadu utilit pro výměnu informací (přenos souborů, schránka). Proces instalace a konfigurace je podrobně zdokumentován na webových stránkách projektu, takže se podělíme o naše zkušenosti s aplikací.

Hlavním problémem je v podstatě nedostatek podpory pro vyvinuté nástroje. Key Developers (QWT) se zdá být nedostupné a projekt integrace Windows čeká na hlavního vývojáře. Proto bylo v první řadě nutné posoudit jeho výkonnost a vytvořit si pochopení pro možnost samostatné podpory, bude-li to nutné. Nejnáročnější na vývoj a ladění je grafický ovladač, který emuluje grafický adaptér a displej pro generování obrazu ve sdílené paměti, což umožňuje zobrazit celou plochu nebo okno aplikace přímo v okně hostitelského systému. Během analýzy fungování ovladače jsme upravili kód pro sestavení v prostředí Linuxu a vypracovali schéma ladění mezi dvěma hostujícími systémy Windows. Ve fázi crossbuild jsme provedli několik změn, které nám věci zjednodušily, především z hlediska „tiché“ instalace utilit, a také odstranily nepříjemné zhoršování výkonu při dlouhodobé práci ve VM. Výsledky práce jsme prezentovali v samostatné úložišť, takže ne na dlouho inspirující Vedoucí vývojář Qubes.

Nejkritičtější fází z hlediska stability hostujícího systému je spuštění Windows, zde můžete vidět známou modrou obrazovku (nebo ji ani nevidět). U většiny zjištěných chyb existovala různá řešení – eliminace ovladačů zařízení Xen block, deaktivace vyvažování paměti VM, oprava síťových nastavení a minimalizace počtu jader. Naše sestavení nástrojů pro hosty se nainstaluje a spustí v plně aktualizovaných systémech Windows 7 a Windows 10 (kromě qvideo).

Při přechodu z reálného prostředí do virtuálního vzniká problém s aktivací Windows v případě použití předinstalovaných OEM verzí. Takové systémy používají aktivaci na základě licencí uvedených v UEFI zařízení. Pro správné zpracování aktivace je nutné přeložit jednu z celých ACPI sekcí hostitelského systému (SLIC tabulku) do hostujícího systému a ostatní mírně upravit, registrovat výrobce. Xen vám umožňuje přizpůsobit obsah ACPI dalších tabulek, ale bez úpravy těch hlavních. S řešením pomohl patch z podobného projektu OpenXT, který byl upraven pro Qubes. Opravy se zdály užitečné nejen nám a byly přeloženy do hlavního repozitáře Qubes a knihovny Libvirt.

Mezi zjevné nevýhody integračních nástrojů Windows patří nedostatek podpory zvuku, zařízení USB a složitost práce s médii, protože neexistuje žádná hardwarová podpora pro GPU. Výše uvedené ale nebrání využití VM pro práci s kancelářskými dokumenty ani nebrání spouštění konkrétních firemních aplikací.

Požadavek na přepnutí do provozního režimu bez sítě nebo s omezenou sítí po vytvoření šablony Windows VM byl splněn vytvořením příslušných konfigurací aplikačních VM a možnost selektivního připojení vyměnitelných médií byla vyřešena i standardními nástroji OS - při připojení , jsou k dispozici v systémovém VM sys-usb, odkud je lze "přesměrovat" na požadovaný VM. Plocha uživatele vypadá asi takto.

Používání QubesOS pro práci s Windows 7

Finální verze systému byla pozitivně (pokud to takto komplexní řešení umožňuje) přijata uživateli a standardní nástroje systému umožnily rozšíření aplikace na mobilní pracovní stanici uživatele s přístupem přes VPN.

Místo závěru

Virtualizace obecně umožňuje snížit rizika používání systémů Windows ponechaných bez podpory – nevynucuje si kompatibilitu s novým hardwarem, umožňuje vyloučit nebo kontrolovat přístup k systému přes síť nebo přes připojená zařízení a umožňuje implementovat prostředí pro jednorázové spuštění.

Na základě myšlenky izolace prostřednictvím virtualizace vám Qubes OS pomáhá využít tyto a další mechanismy pro zabezpečení. Zvenčí mnoho lidí vidí Qubes především jako touhu po anonymitě, ale je to užitečný systém jak pro inženýry, kteří často žonglují s projekty, infrastrukturami a tajemstvími, aby se k nim dostali, tak pro bezpečnostní výzkumníky. Oddělení aplikací, dat a formalizace jejich interakce jsou počátečními kroky analýzy hrozeb a návrhu bezpečnostního systému. Toto oddělení pomáhá strukturovat informace a snižovat pravděpodobnost chyb způsobených lidským faktorem – spěch, únava atd.

V současné době je hlavní důraz při vývoji kladen na rozšiřování funkčnosti linuxových prostředí. Připravuje se vydání verze 4.1, která bude založena na Fedoře 31 a bude obsahovat aktuální verze klíčových komponent Xen a Libvirt. Stojí za zmínku, že Qubes vytvářejí odborníci na informační bezpečnost, kteří vždy okamžitě uvolňují aktualizace, pokud jsou identifikovány nové hrozby nebo chyby.

Doslov

Jedna z experimentálních schopností, které vyvíjíme, nám umožňuje vytvářet virtuální počítače s podporou přístupu hostů ke GPU založené na technologii Intel GVT-g, což nám umožňuje využít možnosti grafického adaptéru a výrazně rozšířit rozsah systému. V době psaní tohoto článku tato funkce funguje pro testovací sestavení Qubes 4.1 a je dostupná na GitHub.

Zdroj: www.habr.com

Přidat komentář