QubesOS kasutamine Windows 7-ga töötamiseks

Habril ei ole palju artikleid, mis käsitlevad Qubes operatsioonisüsteemi, ja need, mida olen näinud, ei opi rakendamise kogemust piisavalt. Allpool loodan seda parandada, tuues näite Qubesi kasutamisest Windowsi keskkonna kaitsevahendina ja ühtlasi hinnata venekeelsete kasutajate arvu süsteemis.

QubesOS kasutamine Windows 7-ga töötamiseks

Miks Qubes?

Windows 7 tuge lõpetamise lugu koos kasutajate kasvava ärevusega tõi esile vajaduse töötada välja sellele operatsioonisüsteemile, arvestades järgmisi nõudeid:

  • tagada täielikult aktiveeritud Windows 7 kasutamine, võimaldades kasutajal installida uuendusi ja erinevaid rakendusi (sealhulgas läbi Interneti);
  • teostada täielik või valikuline võrguühenduste välistamine tingimustel (autonoomse töö režiimid ja liikluse filtreerimine);
  • anda võimalus valikuliselt ühendada eemaldatavaid andmekandjaid ja seadmeid.

Selline piirangute kogum eeldab selgelt ettevalmistatud kasutajat, kuna iseseisev haldamine on lubatud, ja piirangud ei tulene tema potentsiaalsete tegude takistamisest, vaid võimalike vigade või programmide destruktiivse mõju välistamisest. T.e. sisemist rikkujat mudelis ei ole.

Lahenduse otsimisel loobusime kiiresti mõttest rakendada piiranguid Windowsi sisseehitatud või lisavahenditega, kuna on üpris keeruline tõhusalt piirata administraatori õigustega kasutajat, jättes talle võimaluse rakendusi installida.

Järgmine lahenduse variant oli isolatsioon virtualiseerimise abil. Laialdaselt tuntud lauaarvutite virtualiseerimise tööriistad (nt nagu virtualbox) ei sobi turvalisuse ülesannete lahendamiseks ja loetletud piirangud tuleb kasutajal pidevalt läbi lülitades või seadistades külalise virtuaalm masina (edaspidi VМ) omadusi määrata, mis suurendab vigade riske.

Samasuguse ajaga oli meil kogemus Qubes'i kasutamisest kasutaja töölauasüsteemina, kuid olid kahtlused Windowsi külginstallatööri töö stabiilsuses. Otsustati kontrollida Qubes'i praegust versiooni, kuna seatud piirangud sobivad selle süsteemi paradigmasse väga hästi, eriti virtuaalmasinate mallide rakendamine ja visuaalne integreerimine. Edasi püüan võimaluse korral lühidalt rääkida Qubes'i ideedest ja tööriistadest, tuginedes seatud ülesande lahendusele.

Xeni virtualiseerimise tüübid

Qubes põhineb Xeni hüperviisoril, mis minimeerib oma ülesandeid CPU, mälu ja virtuaalmasinate haldamisel. Kõik muud seadmete haldamise toimingud on koondatud dom0-sse, mis põhineb Linuxi tuumal, (Qubes'is kasutatakse dom0 jaoks Fedora jaotust).

QubesOS kasutamine Windows 7-ga töötamiseks

Xen toetab mitmeid virtualiseerimise tüüpe (toon näiteid Intel'i arhitektuuri jaoks, kuigi Xen toetab ka teisi):

  • paraviirliseerimine (PV) — virtualiseerimise režiim, mis ei kasuta riistvaralist tuge, meenutab konteinerite virtualiseerimist, ning seda saab kasutada süsteemidele, millel on kohandatud tuum (sellises režiimis toimib dom0);
  • täielik virtualiseerimine (HVM) - selles režiimis kasutab protsessorite ressursi jaoks riistvaralist tuge, samas kui kogu muu varustus emuleeritakse QEMU vahendite abil. See on kõige universaalsem viis erinevate opsüsteemide käivitamiseks;
  • paravirtualiseerimise riistvara (PVH - Paravirtualiseeritud Riistvara) - virtualiseerimise režiim, mis kasutab riistvaralist tuge, kus külalisoperatsioonisüsteemi tuum kasutab riistvaraga suhtlemiseks draivereid, mis on kohandatud hüperviisori omadustega (nt jagatud mäluga), kõrvaldades QEMU emulatsiooni vajaduse ja suurendades sisendi-väljundi jõudlust. Linuxi tuum alates versioonist 4.11 saab töötada selles režiimis.

QubesOS kasutamine Windows 7-ga töötamiseks

Alates versioonist Qubes 4.0 on turvakaalutlustel loobutud paravirtualiseerimise režiimi kasutamisest (sealhulgas tuntud Intel arhitektuuri haavatavuste tõttu, mis osaliselt kõrvaldatakse täieõiguslikku virtualiseerimise kasutamisega), vaikimisi kasutatakse režiimi PVH.

Emulatsiooni (HVM režiimis) kasutamisel käivitub QEMU isoleeritud VM-is, mida kutsutakse stubdomainiks, vähendades seeläbi potentsiaalsete vigade rakendamise riske (QEMU projekt sisaldab palju koodi, sealhulgas ühilduvuse tagamiseks).
Seda režiimi tuleks meie puhul kasutada Windowsi jaoks.

Teenindavad virtuaalmasinad

Qubesi turvaarkitektuuris on hüperviisori üks peamisi võimalusi PCI-seadmete edastamine külalisolekusse. Seadmete eraldamine võimaldab isoleerida süsteemi hostiosa väliste rünnakute eest. Xen toetab seda nii PV kui HVM režiimides, teisel juhul on vajalik IOMMU (Intel VT-d) tugi — riistvaraline mälu haldamine virtualiseeritavate seadmete jaoks.

Nii luuakse mitu süsteemi virtuaalmasinat:

  • sys-net, millele edastatakse võrguseadmed ja mida kasutatakse sildana teiste VM-ide, näiteks tulemüüri või VPN-i kliendi funktsioonide rakendamiseks;
  • sys-usb, millele edastatakse USB ja muud välisseadmete juhtimisüksused;
  • sys-firewall, mis ei kasuta seadmeid, vaid töötab kui tulemüür ühendatud VM-ide jaoks.

USB-seadmete töötlemiseks kasutatakse vahetuskohtade teenuseid, mis pakuvad sealhulgas:

  • HID-seadmete (inimese liideseseadmed) jaoks käskude edastamist dom0-sse;
  • vahetatavate mäluseadmete puhul seadme mahtude suunamine teistesse VM-idesse (dom0-st välja arvatud);
  • otse USB-seadme suunamine (kasutatavad USBIP ja integreerimisvahendid).

Sellises konfiguratsioonis võib edukas rünnak läbi võrgustiku või ühendatud seadmete viia kompromissini ainult töötavas teenuse VM-is, mitte kogu süsteemis. Pärast teenuse VM-i taaskäivitamist laaditakse see algsesse olekusse.

VM-i integreerimisvahendid

Virtuaalmahlas on mitu võimalust töötada — rakenduste installimine külg süsteemi või virtuaalimise abil video emuleerimine. Külgrakendustena võivad kasutada erinevaid universaalseid kaugjuurdepääsu vahendeid (RDP, VNC, Spice jne) või konkreetsele hüperviisori kohandatud rakendusi (selliseid tööriistu nimetatakse tavaliselt külgrakendusteks). Samuti on võimalik kasutada segatud varianti, kus hüperviisor emuleerib sisendi- ja väljundi käitlemise külgsüsteemi jaoks, samas kui väljastpoolt pakub see võimalust kasutada protokolli, mis ühendab sisendi ja väljundi, nagu näiteks Spice. Sel juhul optimeerivad kaugjuurdepääsuvahendid tavaliselt pildi kvaliteeti, kuna need on mõeldud töötamiseks võrgu kaudu, mis ei mõjuta pildi kvaliteeti positiivselt.

Qubes pakub omaenda tööriistu virtuaalmasinate integreerimiseks. Esiteks on see graafiline alamsüsteem, kus erinevate virtuaalmasinate aknad kuvatakse ühel töölaual, millel on oma värviline raam. Üldiselt põhinevad integreerimisvahendid hüperviisori võimalustel — jagatud mälul (Xen grant table), teavitamisvahenditel (Xen event channel), jagatud salvestusel (xenstore) ja suhtlusprotokollil (vchan). Nende abil rakendatakse Qrexeci ja Qubes-RPC põhikomponente ning rakendusteenuseid — heli või USB suunamise, failide või lõikelaua sisu edastamise, käskude täitmise ja rakenduste käivitamise. Olemas on võimalus paigaldada poliitika, mis võimaldab piirata virtuaalmasinatel saadaval olevaid teenuseid. Alloleval joonisel on näide kahe virtuaalmasina vahelist suhtlemisprotsessi algatamisest.

QubesOS kasutamine Windows 7-ga töötamiseks

Nii toimub töö virtuaalmasinates ilma võrgu kasutamiseta, mis võimaldab täielikult kasutada iseseisvaid virtuaalmasinaid teabe lekke vältimiseks. Näiteks rakendatakse krüptograafiliste operatsioonide eraldamist (PGP/SSH), kus privaatvõtmed kasutatakse isoleeritud virtuaalmasinates ega lahku nende piiridest.

Mallid, rakendused ja ühekordsed virtuaalmasinad

Kogu kasutaja töö Qubes'is toimub virtuaalsetes masinates. Põhihost süsteem kasutatakse nende töökorralduseks ja visualiseerimiseks. Operatsioonisüsteem installitakse koos aluseks oleva virtuaalsete masinate komplektiga, mis põhineb mallidel (TemplateVM). Selline mall on Linuxi VM, mis põhineb Fedora või Debian'i distributsioonil, koos installitud ja seadistatud integreerimisvahendite ning eraldatud süsteemi ja kasutaja jagudega. Tarkvara installimine ja uuendamine toimub standardsete pakihaldurite (dnf või apt) kaudu seadistatud hoidlatest, kohustuslikult digitaalallkiri (GnuPG) kontrollides. Selliste VMide määramine on tagada usaldusväärsus rakendus VM-idele, mis töötavad nende põhjal.

Rakendus VM (AppVM) käivitamisel kasutab vastava mast VM süsteemijaotuse snapshot'i ja pärast lõpetamist kustutab selle snapshot'i ilma muudatuste salvestamiseta. Kasutajale vajalikud andmed salvestatakse igale rakendus VM'ile unikaalsesse kasutaja jagusse, mis monteeritakse kodu katalooge.

QubesOS kasutamine Windows 7-ga töötamiseks

Ühe kasutuskorraga virtuaalmasinate (disposibleVM) kasutamine võib olla turvalisuse seisukohalt kasulik. Selline virtuaalmasin luuakse mallist käivitamise hetkel ja töötab ühe eesmärgi nimel — ühte rakendust täites, lõpetades töö pärast selle sulgemist. Ühe kasutuskorraga virtuaalmasinaid saab kasutada kahtlaste failide avamiseks, mille sisu võib põhjustada konkreetsete rakenduste haavatavuste ärakasutamist. Ühe kasutuskorraga virtuaalmasina käitamise võimalus on integreeritud failihalduri (Nautilus) ja meiliklient (Thunderbird) poolt.

Windows VM võib samuti kasutada mallide ja ühekordsete VM-ide loomiseks, selleks kantakse kasutaja profiil eraldi jaotisse. Meie variandis kasutatakse sellist malli administraatorite ja rakenduste paigaldamise ülesannete jaoks. Malli põhjal luuakse mitu rakenduslikku VM-i — piiratud juurdepääsuga võrku (sys-firewall'i vaikimisi funktsioonid) ja ilma võrguühenduseta üldse (virtuaalne võrguseade ei loodud). Nendes VM-ides on kõik muudatused ja rakendused, mis on installitud mallis saadaval, ja isegi juhul, kui sisse viiakse nuhkrakendusi, on neil võrguühendusest juurdepääs keelatud, et vältida kompromiteerimist.

Võitlus Windowsi nimel

Ülal kirjeldatud funktsioonid on Qubes'i alus ja töötavad täiesti stabiilselt, kuid raskused algavad Windowsiga. Windowsi integreerimiseks tuleb kasutada Qubes Windows Tools (QWT) külgriistade komplekti, mis sisaldab Xeniga töötamiseks mõeldud draivereid, qvideo draiverit ja teavet edastavate utiliitide komplekti (failide vastuvõtt-edastamine, lõikepasta). Installimis- ja seadistusprotsessi on projekti kodulehel põhjalikult dokumenteeritud, seega jagame oma kasutuskogemust.

Peamine keerukus tuleneb põhimõtteliselt arendatud vahendite toe puudumisest. Põhiarendajad (QWT) näivad olevat kättesaamatud ja Windowsi integreerimisprojekt on juhtarendaja ootel. Seetõttu oli esmalt vajalik hinnata töökindlust ja omandada arusaam selle toe võimalustest, kui seda peaks vajadusel iseseisvalt toetama. Kõige keerulisemaks arendamiseks ja silumiseks on graafikadriver, mis emuleerib videoadapterit ja ekraani kujutise loomiseks jagatud mälus, võimaldades kuvada kogu töölaua või rakenduse akna host-süsteemil. Draiveri töö analüüsimisel kohandasime koodi Linuxi keskkonnas ehitamiseks ja töötasime välja tõrkeotsingu skeemi kahe Windowsi külastussüsteemi vahel. Kross-ehituse etapis tegime mitmeid meie jaoks hõlbustavaid muudatusi peamiselt "vaikse" utiliitide installimise osas ning kõrvaldasime tüütut jõudluse halvenemist pikaajalise töö ajal VM-is. Meie töö tulemused vormistati eraldi repositoriis, seeläbi lühikeseks ajaks inspireerides Qubesi juhtarendajat.

Kriitilisem etapp küpsetussüsteemi stabiilsuse tagamisel on Windowsi käivitamine, kus võib näha tuttavat sinist ekraani (või isegi mitte näha). Enamikule tuvastatud vigadele leiti erinevaid lahendusi - Xen blokeerimise draiveritest loobumine, VM-i mälu tasakaalu väljalülitamine, võrgu seadistuste fikseerimine ja protsessorite arvu vähendamine. Meie külalisvahendite kogum on installitud ja töötab täielikult värskendatud Windows 7 ja Windows 10 peal (välja arvatud qvideo).

Kuna reaalsest keskkonnast virtuaalsesse üleminekul tekib probleem Windowsi aktiveerimisega, kui kasutatakse eeltinstallitud OEM versioone. Sellised süsteemid kasutavad aktiveerimist litsentside põhjal, mis on salvestatud seadme UEFI-sse. Aktiveerimise nõuetekohaseks toimimiseks on vajalik edastada külalissüsteemile üks ACPI jagu host-süsteemist täielikult (SLIC table) ja veidi kohandada teisi, märgides tootjat. Xen võimaldab seadistada täiendavate ACPI tabelite sisu, kuid põhjalikke muudatusi teha ei saa. Lahenduse leidmiseks aitas sarnase projekti OpenXT plaastrite kohandamine Qubesile. Parandused osutusid kasulikuks mitte ainult meile ning need kanti Qubesi põhirepositoorssesse ja Libvirt'i teeki.

Windowsi integreerimisvahendite ilmseteks puudusteks on helitoe, USB-seadmete toetuse puudumine ja keerukus meedia haldamisel, kuna GPU jaoks puudub riistvara tugi. Kuid loetletud puudused ei takista VM-i kasutamist kontoridokumentide töötlemiseks ega takista spetsiifiliste ettevõtte rakenduste käivitamist.

Nõue lülituda võrguvabal või piiratud võrgu režiimile Windows VM malli loomise järel täideti vastava rakenduse VM-i konfiguratsioonide loomisega. Ühendatavad eemaldatavad seadmed olid samuti võimalikud OS-i sisseehitatud tööriistadega — need on ühendamise ajal saadaval süsteemi VM-is sys-usb, kust need saab "edastada" vajalikku VM-i. Kasutaja töölaua välimus on ligikaudu selline.

QubesOS kasutamine Windows 7-ga töötamiseks

Süsteemi lõplik variant oli positiivselt (nii palju kui selline keeruline lahendus võimaldab) vastuvõetud kasutajate poolt, ning süsteemi sisseehitatud tööriistad võimaldasid laiendada rakendust kasutaja mobiilsele töökohale VPN-i kaudu.

Kokkuvõtte asemel

Virtualiseerimine tervikuna vähendab Windows süsteemide kasutamise riske, mis ei ole toetatud — ei sunni tagama ühilduvust uute riistvaradega, võimaldab välistada või kontrollida juurdepääsu süsteemile võrgu või ühendatavate seadmete kaudu, ning loob keskkonna ühekordseks käivitamiseks.

Qubes OS, mis põhineb isolatsiooni ideel virtualiseerimise kaudu, aitab kasutada neid ja teisi mehhanisme turvalisuse tagamiseks. Paljude arvates on Qubes eelkõige suunatud anonüümsusele, kuid see on kasulik süsteem nii inseneridele, kes tihti liidestavad projekte, infrastruktuure ja juurdepääsusalasid, kui ka turvauuringute tegijatele. Rakenduste, andmete ja nendevahelise suhtluse eraldamine on esialgsed sammud ohtude analüüsimiseks ja kaitsesüsteemi kavandamiseks. Selline eraldamine aitab struktureerida teavet ja vähendab inimefektist tingitud eksimuste tõenäosust — kiirusest, väsimusest jne.

Praegu keskendub arendustegevus Linuxi keskkondade funktsionaalsuse laiendamisele. Tulekul on versioon 4.1, mis põhineb Fedora 31-l ning sisaldab värskeid versioone peamistest koostisosadest Xen ja Libvirt. Oluline on märkida, et Qubesit arendavad teabeohutuse spetsialistid, kes vabastavad alati kiiresti värskendusi, kui tuvastatakse uusi ohte või vigu.

Järelsõna

Üks meie arendatavatest katsefunktsioonidest võimaldab luua VM-e, mis toetavad GPU külgi pääsu Intel GVT-g tehnoloogia abil. See võimaldab kasutada graafikakaardi võimekust ja laiendada süsteemi rakenduste valikut. Artikli kirjutamise ajal töötab see funktsioon Qubes 4.1 testversioonide jaoks ja on saadaval github.

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster