QubesOS-i kasutamine Windows 7-ga töötamiseks

Qubesi operatsioonisüsteemile pole Habré kohta palju artikleid ja need, mida olen näinud, ei kirjelda palju selle kasutamise kogemusi. Lõike all loodan seda parandada, kasutades Qubesi kasutamist Windowsi keskkonna kaitsevahendina (vastu) ja samal ajal hinnata süsteemi venekeelsete kasutajate arvu.

QubesOS-i kasutamine Windows 7-ga töötamiseks

Miks Qubes?

Windows 7 tehnilise toe lõppemise lugu ja kasutajate suurenev ärevus tõi kaasa vajaduse korraldada selle OS-i töö, võttes arvesse järgmisi nõudeid:

  • tagama täielikult aktiveeritud Windows 7 kasutamise võimalusega installida värskendusi ja erinevaid rakendusi (sh Interneti kaudu);
  • rakendama võrgu interaktsioonide täielikku või valikulist välistamist tingimustel (autonoomne töö ja liikluse filtreerimise režiimid);
  • pakuvad võimalust irdkandjate ja seadmete valikuliseks ühendamiseks.

See piirangute kogum eeldab selgelt ette valmistatud kasutajat, kuna iseseisev administreerimine on lubatud ning piirangud ei ole seotud tema võimalike toimingute blokeerimisega, vaid võimalike vigade või destruktiivsete tarkvaraefektide välistamisega. Need. Sisemist kurjategijat mudelis ei ole.

Lahendust otsides loobusime kiiresti mõttest rakendada piiranguid sisseehitatud või täiendavate Windowsi tööriistade abil, kuna administraatoriõigustega kasutajat on üsna keeruline tõhusalt piirata, jättes talle võimaluse rakendusi installida.

Järgmine lahendus oli isoleerimine virtualiseerimise abil. Tuntud töölaua virtualiseerimise tööriistad (näiteks virtualbox) sobivad turvaprobleemide lahendamiseks halvasti ja loetletud piirangud tuleb kasutajal teha pidevalt külalise virtuaalmasina atribuute vahetades või kohandades (edaspidi: kui VM), mis suurendab vigade riski.

Samal ajal oli meil kogemusi Qubesi kasutamisel kasutaja töölauasüsteemina, kuid kahtlesime külalisWindowsiga töötamise stabiilsuses. Otsustati kontrollida Qubesi praegust versiooni, kuna märgitud piirangud sobivad väga hästi selle süsteemi paradigmaga, eriti virtuaalmasina mallide ja visuaalse integreerimisega. Järgmisena püüan lühidalt rääkida Qubesi ideedest ja töövahenditest, kasutades ülesande lahendamise näitel.

Xeni virtualiseerimise tüübid

Qubes põhineb Xeni hüperviisoril, mis minimeerib protsessoriressursside, mälu ja virtuaalmasinate haldamise funktsioone. Kogu muu töö seadmetega on koondunud Linuxi tuumal põhinevasse dom0-sse (Qubes for dom0 kasutab Fedora distributsiooni).

QubesOS-i kasutamine Windows 7-ga töötamiseks

Xen toetab mitut tüüpi virtualiseerimist (ma toon näiteid Inteli arhitektuuri kohta, kuigi Xen toetab teisi):

  • paravirtualiseerimine (PV) - riistvaratuge kasutamata virtualiseerimisrežiimi, mis meenutab konteineri virtualiseerimist, saab kasutada kohandatud tuumaga süsteemides (selles režiimis töötab dom0);
  • täielik virtualiseerimine (HVM) - selles režiimis kasutatakse protsessori ressursside jaoks riistvaratuge ja kõiki muid seadmeid emuleeritakse QEMU abil. See on kõige universaalsem viis erinevate operatsioonisüsteemide käitamiseks;
  • riistvara paravirtualiseerimine (PVH - ParaVirtualized Hardware) - riistvaratuge kasutav virtualiseerimisrežiim, kui riistvaraga töötamiseks kasutab külalissüsteemi tuum hüperviisori võimalustele kohandatud draivereid (näiteks ühismälu), välistades vajaduse QEMU emulatsiooni järele. ja I/O jõudluse suurendamine. Linuxi kernel alates versioonist 4.11 saab selles režiimis töötada.

QubesOS-i kasutamine Windows 7-ga töötamiseks

Alates Qubes 4.0-st loobutakse turvakaalutlustel paravirtualiseerimisrežiimi kasutamisest (sealhulgas Inteli arhitektuuri teadaolevate haavatavuste tõttu, mida osaliselt leevendab täieliku virtualiseerimise kasutamine), vaikimisi kasutatakse PVH-režiimi.

Emuleerimise (HVM-režiimi) kasutamisel käivitatakse QEMU isoleeritud virtuaalses masinas, mida nimetatakse stubdomeeniks, vähendades sellega juurutamise võimalike vigade ärakasutamise riske (QEMU projekt sisaldab palju koodi, sealhulgas ühilduvuse tagamiseks).
Meie puhul tuleks seda režiimi kasutada Windowsi jaoks.

Virtuaalsete masinate teenindamine

Qubesi turbearhitektuuris on hüperviisori üheks põhivõimaluseks PCI-seadmete ülekandmine külaliskeskkonda. Riistvara välistamine võimaldab teil isoleerida süsteemi hostiosa välistest rünnakutest. Xen toetab seda PV ja HVM režiimide puhul, teisel juhul nõuab IOMMU (Intel VT-d) tuge – virtualiseeritud seadmete riistvaramälu haldus.

See loob mitu süsteemi virtuaalset masinat:

  • sys-net, kuhu võrguseadmeid edastatakse ja mida kasutatakse sillana teistele VM-idele, näiteks neile, mis rakendavad tulemüüri või VPN-kliendi funktsioone;
  • sys-usb, kuhu USB ja muude välisseadmete kontrollerid üle kantakse;
  • sys-firewall, mis ei kasuta seadmeid, kuid töötab ühendatud VM-ide tulemüürina.

USB-seadmetega töötamiseks kasutatakse puhverserveri teenuseid, mis pakuvad muu hulgas:

  • HID (human interface device) seadmeklassi puhul käskude saatmine aadressile dom0;
  • irdkandja puhul seadme mahtude ümbersuunamine teistele VM-idele (v.a dom0);
  • otse USB-seadmele ümbersuunamine (USBIP-i ja integreerimistööriistade abil).

Sellises konfiguratsioonis võib edukas rünnak võrguvirna või ühendatud seadmete kaudu viia ainult töötava teenuse VM-i, mitte kogu süsteemi kui terviku kahjustamiseni. Ja pärast teenuse VM taaskäivitamist laaditakse see algses olekus.

VM-i integreerimise tööriistad

Virtuaalse masina töölauaga suhtlemiseks on mitu võimalust – rakenduste installimine külalissüsteemi või video emuleerimine virtualiseerimistööriistade abil. Külalisrakendused võivad olla mitmesugused universaalsed kaugjuurdepääsu tööriistad (RDP, VNC, Spice jne) või kohandatud konkreetsele hüperviisorile (selliseid tööriistu nimetatakse tavaliselt külalisutiliidid). Segavalikut saab kasutada ka siis, kui hüperviisor emuleerib külalissüsteemi sisend-/väljundit ja pakub väliselt võimaluse kasutada protokolli, mis ühendab I/O, näiteks nagu Spice. Samal ajal optimeerivad kaugjuurdepääsu tööriistad tavaliselt pilti, kuna need hõlmavad töötamist võrgu kaudu, mis ei avalda pildi kvaliteedile positiivset mõju.

Qubes pakub VM-i integreerimiseks oma tööriistu. Esiteks on see graafika alamsüsteem – erinevate VM-ide aknad kuvatakse ühel töölaual oma värviraamiga. Üldiselt põhinevad integratsioonitööriistad hüperviisori võimalustel – ühismälul (Xen-i lubade tabel), teavitustööriistadel (Xen-i sündmuste kanalil), jagatud salvestusruumil xenstore ja vchan-sideprotokoll. Nende abiga realiseeritakse põhikomponendid qrexec ja qubes-rpc ning rakendusteenused - heli või USB ümbersuunamine, failide või lõikepuhvri sisu edastamine, käskude täitmine ja rakenduste käivitamine. Võimalik on määrata eeskirju, mis võimaldavad piirata virtuaalses masinas saadaolevaid teenuseid. Allolev joonis on näide kahe virtuaalse masina interaktsiooni lähtestamise protseduurist.

QubesOS-i kasutamine Windows 7-ga töötamiseks

Seega toimub töö VM-is ilma võrku kasutamata, mis võimaldab infolekke vältimiseks täielikult ära kasutada autonoomseid VM-e. Näiteks nii rakendatakse krüptograafiliste toimingute eraldamist (PGP/SSH), kui privaatvõtmeid kasutatakse isoleeritud VM-ides ja need ei ületa neid.

Mallid, rakendused ja ühekordsed VM-id

Kogu kasutaja töö Qubesis tehakse virtuaalmasinates. Nende juhtimiseks ja visualiseerimiseks kasutatakse peamist hostsüsteemi. OS installitakse koos mallipõhiste virtuaalmasinate põhikomplektiga (TemplateVM). See mall on Fedora või Debiani distributsioonil põhinev Linuxi virtuaalmasin, mille integratsioonitööriistad on installitud ja konfigureeritud ning spetsiaalsed süsteemi- ja kasutajasektsioonid. Tarkvara installimise ja värskendamise teostab standardne paketihaldur (dnf või apt) konfigureeritud hoidlatest koos kohustusliku digitaalallkirja kontrollimisega (GnuPG). Selliste VM-ide eesmärk on tagada usaldus nende baasil käivitatud rakenduste VM-ide vastu.

Rakenduse VM (AppVM) kasutab käivitamisel vastava VM-malli süsteemipartitsiooni hetktõmmist ja pärast lõpetamist kustutab selle hetktõmmise muudatusi salvestamata. Kasutaja nõutavad andmed salvestatakse iga rakenduse VM-i jaoks unikaalsesse kasutajasektsiooni, mis on ühendatud kodukataloogi.

QubesOS-i kasutamine Windows 7-ga töötamiseks

Ühekordsete VM-ide (disposableVM) kasutamine võib olla turvalisuse seisukohast kasulik. Selline VM luuakse käivitamise ajal malli alusel ja käivitatakse ühel eesmärgil - ühe rakenduse käivitamiseks, töö lõpetades pärast selle sulgemist. Ühekordselt kasutatavaid VM-e saab kasutada kahtlaste failide avamiseks, mille sisu võib viia konkreetsete rakenduste haavatavuste ärakasutamiseni. Ühekordse VM-i käitamise võimalus on integreeritud failihaldurisse (Nautilus) ja meilikliendisse (Thunderbird).

Windowsi VM-i saab kasutada ka malli ja ühekordse VM-i loomiseks, teisaldades kasutajaprofiili eraldi jaotisesse. Meie versioonis kasutab kasutaja sellist malli haldusülesannete täitmiseks ja rakenduste installimiseks. Malli alusel luuakse mitu rakenduslikku VM-i - piiratud juurdepääsuga võrgule (standardsed sys-tulemüüri võimalused) ja ilma võrgule üldse juurdepääsuta (virtuaalset võrguseadet ei looda). Kõik malli installitud muudatused ja rakendused on nendes VM-ides töötamiseks saadaval ja isegi kui järjehoidjaprogrammid võetakse kasutusele, ei ole neil kompromissi jaoks võrgujuurdepääsu.

Võitle Windowsi eest

Ülalkirjeldatud funktsioonid on Qubesi aluseks ja töötavad üsna stabiilselt, raskused algavad Windowsiga. Windowsi integreerimiseks peate kasutama külaliste tööriistade komplekti Qubes Windows Tools (QWT), mis sisaldab draivereid Xeniga töötamiseks, qvideo draiverit ja utiliitide komplekti teabevahetuseks (failiedastus, lõikelaud). Installimis- ja konfigureerimisprotsess on projekti veebisaidil üksikasjalikult dokumenteeritud, seega jagame oma rakenduskogemust.

Peamine raskus seisneb sisuliselt väljatöötatud tööriistade toetuse puudumises. Key Developers (QWT) ei näi olevat saadaval ja Windowsi integratsiooniprojekt ootab juhtivat arendajat. Seetõttu tuli ennekõike hinnata selle toimivust ja kujundada arusaam võimalusest seda vajadusel iseseisvalt toetada. Kõige keerulisem on arendada ja siluda graafikadraiverit, mis emuleerib videoadapterit ja kuvarit, et luua pilt ühismälus, võimaldades kuvada kogu töölauda või rakenduse akent otse hostisüsteemi aknas. Draiveri töö analüüsimisel kohandasime koodi Linuxi keskkonnas koostamiseks ja töötasime välja kahe Windowsi külalissüsteemi vahelise silumisskeemi. Crossbuild etapis tegime mitmeid muudatusi, mis lihtsustasid meie jaoks asju, peamiselt kommunaalteenuste "vaikse" installimise osas, ning kõrvaldasime ka tüütu jõudluse halvenemise, kui töötate pikka aega VM-is. Töö tulemused esitasime eraldi hoidlad, seega mitte kauaks inspireeriv Qubesi juhtiv arendaja.

Külalissüsteemi stabiilsuse seisukohast on kõige kriitilisem etapp Windowsi käivitamine, siin näete tuttavat sinist ekraani (või isegi ei näe seda). Enamiku tuvastatud vigade puhul oli erinevaid lahendusi – Xen-ploki seadmete draiverite kõrvaldamine, VM-i mälu tasakaalustamise keelamine, võrguseadete parandamine ja tuumade arvu minimeerimine. Meie külalistööriistad loovad installimisi ja töötavad täielikult värskendatud Windows 7 ja Windows 10 (välja arvatud qvideo) peal.

Reaalsest keskkonnast virtuaalsesse liikudes tekib Windowsi aktiveerimisel probleem, kui kasutatakse eelinstallitud OEM versioone. Sellised süsteemid kasutavad aktiveerimist seadme UEFI-s määratud litsentside alusel. Aktiveerimise korrektseks töötlemiseks on vaja tõlkida üks kogu hostsüsteemi ACPI sektsioonidest (SLIC-tabel) külalissüsteemi ja teisi veidi redigeerida, registreerides tootja. Xen võimaldab teil kohandada täiendavate tabelite ACPI-sisu, kuid põhitabeleid muutmata. Lahendusele aitas kaasa plaaster sarnasest OpenXT projektist, mis oli kohandatud Qubesi jaoks. Parandused tundusid kasulikud mitte ainult meile, vaid tõlgiti Qubesi peamisse hoidlasse ja Libvirti teeki.

Windowsi integreerimistööriistade ilmsed puudused hõlmavad heli, USB-seadmete toe puudumist ja meediumiga töötamise keerukust, kuna GPU jaoks puudub riistvaratugi. Kuid ülaltoodu ei takista VM-i kasutamist kontoridokumentidega töötamiseks ega ka konkreetsete ettevõtterakenduste käivitamist.

Nõue lülituda pärast Windowsi VM malli loomist võrguta või piiratud võrguga töörežiimile sai täidetud rakenduste VM-ide vastavate konfiguratsioonide loomisega ning ka irdkandjate valikulise ühendamise võimalus lahendati standardsete OS-i tööriistadega – ühendatuna , on need saadaval süsteemis VM sys-usb, kust saab need vajalikku VM-i "edasida". Kasutaja töölaud näeb välja umbes selline.

QubesOS-i kasutamine Windows 7-ga töötamiseks

Süsteemi lõplik versioon võeti kasutajate poolt positiivselt vastu (niivõrd kui selline terviklik lahendus seda võimaldab) ning süsteemi standardsed tööriistad võimaldasid laiendada rakendust VPN-i kaudu ligipääsuga kasutaja mobiilsele tööjaamale.

Selle asemel, et järeldus

Virtualiseerimine üldiselt võimaldab teil vähendada toeta jäänud Windowsi süsteemide kasutamise riske – see ei sunni ühilduvust uue riistvaraga, võimaldab välistada või kontrollida juurdepääsu süsteemile võrgu kaudu või ühendatud seadmete kaudu ning võimaldab teil rakendada ühekordset käivituskeskkonda.

Tuginedes virtualiseerimise kaudu eraldamise ideele, aitab Qubes OS teil neid ja muid turvalisuse mehhanisme kasutada. Väljastpoolt näevad paljud Qubesi eelkõige anonüümsuse soovina, kuid see on kasulik süsteem nii inseneridele, kes sageli projektide, infrastruktuuride ja saladustega žongleerivad, et neile ligi pääseda, kui ka turvauurijatele. Rakenduste, andmete eraldamine ja nende interaktsiooni formaliseerimine on ohuanalüüsi ja turvasüsteemi projekteerimise algetapid. Selline eraldamine aitab infot struktureerida ja vähendada inimfaktorist tingitud vigade tõenäosust – kiirustamine, väsimus jne.

Hetkel on arenduses põhirõhk Linuxi keskkondade funktsionaalsuse laiendamisel. Väljalaskmiseks valmistatakse ette versiooni 4.1, mis põhineb Fedora 31-l ja sisaldab põhikomponentide Xen ja Libvirt praeguseid versioone. Väärib märkimist, et Qubesi loovad infoturbe spetsialistid, kes uute ohtude või vigade tuvastamisel annavad alati viivitamata välja värskendused.

järelsõna

Üks meie arendatav eksperimentaalne võimalus võimaldab meil luua VM-e, mis toetavad Intel GVT-g tehnoloogial põhinevat külalisjuurdepääsu GPU-le, mis võimaldab meil kasutada graafikaadapteri võimalusi ja laiendada oluliselt süsteemi ulatust. Kirjutamise ajal töötab see funktsioon Qubes 4.1 testversioonide puhul ja on saadaval aadressil github.

Allikas: www.habr.com

Lisa kommentaar