Uporaba QubesOS za delo z operacijskim sistemom Windows 7

Na Habréju ni veliko člankov, posvečenih operacijskemu sistemu Qubes, in tisti, ki sem jih videl, ne opisujejo veliko izkušenj z njegovo uporabo. Spodaj upam, da bom to popravil na primeru uporabe Qubes kot sredstva za zaščito (pred) okoljem Windows in hkrati ocenil število rusko govorečih uporabnikov sistema.

Uporaba QubesOS za delo z operacijskim sistemom Windows 7

Zakaj Qubes?

Zgodba o koncu tehnične podpore za Windows 7 in vse večja zaskrbljenost uporabnikov sta pripeljala do potrebe po organizaciji dela tega OS ob upoštevanju naslednjih zahtev:

  • zagotoviti uporabo popolnoma aktiviranega sistema Windows 7 z možnostjo uporabnika, da namesti posodobitve in različne aplikacije (tudi prek interneta);
  • implementirati popolno ali selektivno izključitev omrežnih interakcij glede na pogoje (avtonomno delovanje in načini filtriranja prometa);
  • omogočajo selektivno povezovanje izmenljivih medijev in naprav.

Ta nabor omejitev predvideva jasno pripravljenega uporabnika, saj je dovoljeno neodvisno upravljanje, omejitve pa niso povezane z blokiranjem njegovih morebitnih dejanj, temveč z izključitvijo morebitnih napak ali destruktivnih programskih učinkov. Tisti. V modelu ni notranjega kršitelja.

V iskanju rešitve smo hitro opustili idejo o izvajanju omejitev z vgrajenimi ali dodatnimi orodji Windows, saj je precej težko učinkovito omejiti uporabnika s skrbniškimi pravicami in mu pustiti možnost namestitve aplikacij.

Naslednja rešitev je bila izolacija z uporabo virtualizacije. Znana orodja za virtualizacijo namizja (na primer virtualbox) so premalo primerna za reševanje varnostnih težav in naštete omejitve bo moral izvajati uporabnik z nenehnim preklapljanjem ali prilagajanjem lastnosti gostujočega virtualnega stroja (v nadaljevanju kot VM), kar poveča tveganje za napake.

Hkrati smo imeli izkušnje z uporabo Qubesa kot uporabniškega namiznega sistema, vendar smo dvomili o stabilnosti dela z gostujočimi Windowsi. Odločili smo se, da preverimo trenutno različico Qubesa, saj se navedene omejitve zelo dobro ujemajo s paradigmo tega sistema, predvsem implementacija predlog virtualnih strojev in vizualna integracija. Nato bom poskušal na kratko spregovoriti o idejah in orodjih Qubes na primeru reševanja problema.

Vrste virtualizacije Xen

Qubes temelji na hipervizorju Xen, ki minimizira funkcije upravljanja procesorskih virov, pomnilnika in virtualnih strojev. Vse ostalo delo z napravami je skoncentrirano v dom0 na osnovi jedra Linux (Qubes za dom0 uporablja distribucijo Fedora).

Uporaba QubesOS za delo z operacijskim sistemom Windows 7

Xen podpira več vrst virtualizacije (navedel bom primere za Intelovo arhitekturo, čeprav Xen podpira druge):

  • paravirtualizacija (PV) - virtualizacijski način brez uporabe strojne podpore, ki spominja na kontejnersko virtualizacijo, se lahko uporablja za sisteme s prilagojenim jedrom (v tem načinu deluje dom0);
  • popolna virtualizacija (HVM) - v tem načinu se uporablja strojna podpora za procesorske vire, vsa druga oprema pa se emulira s pomočjo QEMU. To je najbolj univerzalen način za zagon različnih operacijskih sistemov;
  • paravirtualizacija strojne opreme (PVH - ParaVirtualized Hardware) - način virtualizacije z uporabo strojne podpore, ko za delo s strojno opremo jedro gostujočega sistema uporablja gonilnike, prilagojene zmožnostim hipervizorja (na primer skupni pomnilnik), kar odpravlja potrebo po emulaciji QEMU in povečanje V/I zmogljivosti. Jedro Linuxa od različice 4.11 lahko deluje v tem načinu.

Uporaba QubesOS za delo z operacijskim sistemom Windows 7

Od različice Qubes 4.0 je iz varnostnih razlogov opuščena uporaba paravirtualizacijskega načina (tudi zaradi znanih ranljivosti v arhitekturi Intel, ki so delno omilile z uporabo popolne virtualizacije); način PVH se uporablja privzeto.

Pri uporabi emulacije (način HVM) se QEMU zažene v izoliranem VM, imenovanem stubdomain, s čimer se zmanjšajo tveganja izkoriščanja morebitnih napak pri implementaciji (projekt QEMU vsebuje veliko kode, tudi za združljivost).
V našem primeru je treba ta način uporabiti za Windows.

Storitev virtualnih strojev

V varnostni arhitekturi Qubes je ena ključnih zmožnosti hipervizorja prenos PCI naprav v gostujoče okolje. Izključitev strojne opreme vam omogoča, da gostiteljski del sistema izolirate od zunanjih napadov. Xen to podpira za načina PV in HVM, v drugem primeru zahteva podporo za IOMMU (Intel VT-d) - strojno upravljanje pomnilnika za virtualizirane naprave.

To ustvari več sistemskih virtualnih strojev:

  • sys-net, kamor se prenesejo omrežne naprave in se uporablja kot most za druge VM, na primer tiste, ki izvajajo funkcije požarnega zidu ali odjemalca VPN;
  • sys-usb, na katerega se prenesejo krmilniki USB in drugih perifernih naprav;
  • sys-firewall, ki ne uporablja naprav, ampak deluje kot požarni zid za povezane VM.

Za delo z napravami USB se uporabljajo proxy storitve, ki med drugim zagotavljajo:

  • za razred naprave HID (human interface device) pošiljanje ukazov v dom0;
  • za izmenljive medije, preusmeritev nosilcev naprav na druge VM (razen za dom0);
  • preusmeritev neposredno na USB napravo (z uporabo USBIP in integracijskih orodij).

V taki konfiguraciji lahko uspešen napad prek omrežnega sklada ali povezanih naprav privede do ogrožanja samo delujoče storitve VM in ne celotnega sistema kot celote. Po ponovnem zagonu storitvenega VM se bo naložil v prvotnem stanju.

Orodja za integracijo VM

Obstaja več načinov za interakcijo z namizjem virtualnega stroja - namestitev aplikacij v sistem za goste ali posnemanje videa z orodji za virtualizacijo. Gostujoče aplikacije so lahko različna univerzalna orodja za oddaljeni dostop (RDP, VNC, Spice ipd.) ali prilagojene določenemu hipervizorju (takšna orodja običajno imenujemo guest utilities). Uporabi se lahko tudi mešana možnost, ko hipervizor emulira V/I za gostujoči sistem in navzven nudi možnost uporabe protokola, ki združuje V/I, na primer, kot je Spice. Hkrati pa orodja za oddaljeni dostop običajno optimizirajo sliko, saj gre za delo preko omrežja, kar pa ne vpliva pozitivno na kakovost slike.

Qubes ponuja lastna orodja za integracijo VM. Prvič, to je grafični podsistem - okna iz različnih VM-jev so prikazana na enem namizju z lastnim barvnim okvirjem. V splošnem integracijska orodja temeljijo na zmožnostih hipervizorja – skupni pomnilnik (Xen grant table), orodja za obveščanje (Xen event channel), xenstore za skupno shranjevanje in komunikacijski protokol vchan. Z njihovo pomočjo se izvajajo osnovni komponenti qrexec in qubes-rpc ter aplikacijske storitve - preusmeritev zvoka ali USB, prenos datotek ali vsebine odložišča, izvajanje ukazov in zagon aplikacij. Možno je nastaviti pravilnike, ki vam omogočajo omejitev storitev, ki so na voljo v VM. Spodnja slika je primer postopka za inicializacijo interakcije dveh VM-jev.

Uporaba QubesOS za delo z operacijskim sistemom Windows 7

Tako se delo v VM izvaja brez uporabe omrežja, kar omogoča popolno uporabo avtonomnih VM, da se prepreči uhajanje informacij. Na primer, tako se izvaja ločevanje kriptografskih operacij (PGP/SSH), ko se zasebni ključi uporabljajo v izoliranih VM in ne presegajo njih.

Predloge, aplikacije in enkratni virtualni stroji

Vse uporabniško delo v Qubes poteka v virtualnih strojih. Glavni gostiteljski sistem se uporablja za njihov nadzor in vizualizacijo. OS je nameščen skupaj z osnovnim naborom virtualnih strojev, ki temeljijo na predlogah (TemplateVM). Ta predloga je Linux VM, ki temelji na distribuciji Fedora ali Debian, z nameščenimi in konfiguriranimi integracijskimi orodji ter namenskimi sistemskimi in uporabniškimi particijami. Namestitev in posodabljanje programske opreme izvaja standardni upravljalnik paketov (dnf ali apt) iz konfiguriranih repozitorijev z obveznim preverjanjem digitalnega podpisa (GnuPG). Namen takih VM je zagotoviti zaupanje v aplikacijske VM, ki se zaženejo na njihovi osnovi.

Ob zagonu aplikacijski VM (AppVM) uporabi posnetek sistemske particije ustrezne predloge VM in po zaključku izbriše ta posnetek brez shranjevanja sprememb. Podatki, ki jih zahteva uporabnik, so shranjeni v uporabniški particiji, edinstveni za vsako aplikacijo VM, ki je nameščena v domačem imeniku.

Uporaba QubesOS za delo z operacijskim sistemom Windows 7

Uporaba navideznih računalnikov za enkratno uporabo (disposableVM) je lahko koristna z varnostnega vidika. Tak VM je ustvarjen na podlagi predloge v času zagona in se zažene z enim namenom - za izvedbo ene aplikacije in dokončanje dela, ko je zaprta. VM za enkratno uporabo je mogoče uporabiti za odpiranje sumljivih datotek, katerih vsebina bi lahko povzročila izkoriščanje določenih ranljivosti aplikacij. Možnost zagona enkratnega VM je integrirana v upravitelja datotek (Nautilus) in e-poštnega odjemalca (Thunderbird).

Windows VM je mogoče uporabiti tudi za ustvarjanje predloge in enkratnega VM tako, da premaknete uporabniški profil v ločen razdelek. V naši različici bo takšno predlogo uporabnik uporabljal za skrbniška opravila in namestitev aplikacije. Na podlagi predloge bo ustvarjenih več aplikacijskih VM-jev - z omejenim dostopom do omrežja (standardne zmožnosti sys-firewall) in brez dostopa do omrežja sploh (virtualna omrežna naprava se ne ustvari). Vse spremembe in aplikacije, nameščene v predlogi, bodo na voljo za delo v teh virtualnih strojih in tudi če so uvedeni programi za zaznamke, ne bodo imeli dostopa do omrežja zaradi kompromisa.

Boj za Windows

Zgoraj opisane funkcije so osnova Qubes in delujejo precej stabilno; težave se začnejo z Windows. Za integracijo sistema Windows morate uporabiti nabor gostujočih orodij Qubes Windows Tools (QWT), ki vključuje gonilnike za delo z Xen, gonilnik qvideo in nabor pripomočkov za izmenjavo informacij (prenos datotek, odložišče). Postopek namestitve in konfiguracije je podrobno dokumentiran na spletni strani projekta, zato bomo delili svoje izkušnje z uporabo.

Glavna težava je v bistvu pomanjkanje podpore za razvita orodja. Zdi se, da Key Developers (QWT) ni na voljo in projekt integracije sistema Windows čaka na glavnega razvijalca. Zato je bilo najprej treba oceniti njegovo delovanje in oblikovati razumevanje možnosti samostojne podpore, če je potrebno. Najtežji za razvoj in odpravljanje napak je grafični gonilnik, ki posnema video adapter in zaslon za ustvarjanje slike v skupnem pomnilniku, kar vam omogoča prikaz celotnega namizja ali okna aplikacije neposredno v oknu gostiteljskega sistema. Pri analizi delovanja gonilnika smo prilagodili kodo za montažo v okolju Linux in izdelali shemo odpravljanja napak med dvema gostujočima sistemoma Windows. Na stopnji navzkrižne gradnje smo naredili več sprememb, ki so nam stvari poenostavile, predvsem v smislu »tihe« namestitve pripomočkov, odpravile pa so tudi nadležno poslabšanje zmogljivosti pri dolgotrajnem delu v VM. Rezultate dela smo predstavili v posebnem repozitorijetorej ne za dolgo navdihujoče Vodilni razvijalec Qubes.

Najbolj kritična faza v smislu stabilnosti sistema za goste je zagon sistema Windows, tukaj lahko vidite znani modri zaslon (ali pa ga sploh ne vidite). Za večino odkritih napak so obstajale različne rešitve - odstranitev gonilnikov blokirnih naprav Xen, onemogočanje uravnoteženja pomnilnika VM, popravljanje omrežnih nastavitev in zmanjšanje števila jeder. Naša orodja za goste se namestijo in delujejo v popolnoma posodobljenih sistemih Windows 7 in Windows 10 (razen qvideo).

Pri prehodu iz realnega okolja v virtualno se pojavi težava pri aktivaciji Windows, če se uporabljajo prednameščene različice OEM. Takšni sistemi uporabljajo aktivacijo na podlagi licenc, navedenih v UEFI naprave. Za pravilno obdelavo aktivacije je potrebno enega od celotnih razdelkov ACPI gostiteljskega sistema (SLIC tabela) prevesti v gostujoči sistem, druge pa nekoliko urediti, pri čemer registriramo proizvajalca. Xen vam omogoča prilagajanje vsebine ACPI dodatnih tabel, vendar brez spreminjanja glavnih. Pri rešitvi je pomagal popravek iz podobnega projekta OpenXT, ki je bil prilagojen za Qubes. Popravki se niso zdeli koristni le nam in so bili prevedeni v glavno skladišče Qubes in knjižnico Libvirt.

Očitne pomanjkljivosti orodij za integracijo sistema Windows vključujejo pomanjkanje podpore za zvok, naprave USB in zapletenost dela z mediji, saj ni podpore za strojno opremo za GPU. Vendar to ne preprečuje uporabe VM za delo s pisarniškimi dokumenti, niti ne preprečuje zagona določenih korporativnih aplikacij.

Zahteva po preklopu v način delovanja brez omrežja ali z omejenim omrežjem po izdelavi predloge Windows VM je bila izpolnjena z ustvarjanjem ustreznih konfiguracij aplikacijskih VM-jev, možnost selektivnega povezovanja izmenljivih medijev pa je bila rešena tudi s standardnimi orodji OS – ob povezavi , so na voljo v sistemskem VM sys-usb, od koder jih je mogoče "posredovati" zahtevanemu VM. Uporabnikovo namizje je videti nekako takole.

Uporaba QubesOS za delo z operacijskim sistemom Windows 7

Končna različica sistema je bila (kolikor tako celovita rešitev omogoča) med uporabniki pozitivno sprejeta, standardna orodja sistema pa so omogočila razširitev aplikacije na uporabnikovo mobilno delovno postajo z dostopom preko VPN.

Namesto zaključka

Virtualizacija na splošno omogoča zmanjšanje tveganja uporabe sistemov Windows brez podpore – ne vsiljuje združljivosti z novo strojno opremo, omogoča izključitev ali nadzor dostopa do sistema prek omrežja ali prek povezanih naprav in omogoča implementirajte okolje za enkratni zagon.

Qubes OS vam na podlagi ideje o izolaciji prek virtualizacije pomaga izkoristiti te in druge mehanizme za varnost. Od zunaj mnogi vidijo Qubes predvsem kot željo po anonimnosti, vendar je to uporaben sistem tako za inženirje, ki pogosto žonglirajo s projekti, infrastrukturo in skrivnostmi, da bi do njih dostopali, kot za varnostne raziskovalce. Ločevanje aplikacij, podatkov in formalizacija njihove interakcije so začetni koraki analize groženj in načrtovanja varnostnega sistema. To ločevanje pomaga strukturirati informacije in zmanjšati verjetnost napak zaradi človeškega dejavnika - naglica, utrujenost itd.

Trenutno je glavni poudarek pri razvoju na širitvi funkcionalnosti okolij Linux. Za izdajo je v pripravi različica 4.1, ki bo temeljila na Fedori 31 in bo vključevala trenutni različici ključnih komponent Xen in Libvirt. Treba je omeniti, da Qubes ustvarjajo strokovnjaki za informacijsko varnost, ki vedno nemudoma izdajo posodobitve, če se odkrijejo nove grožnje ali napake.

spremna beseda

Ena izmed eksperimentalnih zmožnosti, ki jih razvijamo, nam omogoča ustvarjanje navideznih strojev s podporo za gostujoči dostop do GPE na podlagi tehnologije Intel GVT-g, kar nam omogoča uporabo zmogljivosti grafičnega adapterja in znatno razširitev obsega sistema. V času pisanja ta funkcionalnost deluje za testne različice Qubes 4.1 in je na voljo na github.

Vir: www.habr.com

Dodaj komentar