QubesOS naudojimas darbui su Windows 7

Nėra daug straipsnių apie Habré, skirtą Qubes operacinei sistemai, o tuose, kuriuos mačiau, nelabai aprašyta jos naudojimo patirtis. Po pjūviu tikiuosi tai pataisyti, naudodamas Qubes kaip apsaugos (nuo Windows) aplinkos pavyzdį ir tuo pačiu įvertindamas rusakalbių sistemos vartotojų skaičių.

QubesOS naudojimas darbui su Windows 7

Kodėl Qubes?

Istorija apie „Windows 7“ techninio palaikymo pabaigą ir didėjantį vartotojų nerimą lėmė poreikį organizuoti šios OS darbą, atsižvelgiant į šiuos reikalavimus:

  • užtikrinti visiškai suaktyvintos „Windows 7“ naudojimą su galimybe vartotojui įdiegti naujinimus ir įvairias programas (taip pat ir internetu);
  • įgyvendinti visišką arba atrankinį tinklo sąveikos pašalinimą pagal sąlygas (autonominio veikimo ir srauto filtravimo režimai);
  • suteikia galimybę pasirinktinai prijungti keičiamas laikmenas ir įrenginius.

Šis apribojimų rinkinys suponuoja aiškiai pasiruošusį vartotoją, nes leidžiamas nepriklausomas administravimas, o apribojimai yra susiję ne su galimų jo veiksmų blokavimu, o su galimų klaidų ar destruktyvių programinės įrangos efektų pašalinimu. Tie. Modelyje nėra vidinio nusikaltėlio.

Ieškodami sprendimo, greitai atsisakėme idėjos diegti apribojimus naudojant įmontuotus ar papildomus „Windows“ įrankius, nes gana sunku efektyviai apriboti administratoriaus teises turintį vartotoją, paliekant jam galimybę įdiegti programas.

Kitas sprendimas buvo izoliacija naudojant virtualizaciją. Gerai žinomi darbalaukio virtualizavimo įrankiai (pavyzdžiui, tokie kaip virtualbox) yra menkai pritaikyti saugumo problemoms spręsti ir išvardintus apribojimus turės atlikti vartotojas nuolat perjungdamas ar koreguodamas svečio virtualiosios mašinos (toliau – virtualiosios mašinos) savybes. kaip VM), o tai padidina klaidų riziką.

Tuo pačiu metu turėjome patirties naudojant Qubes kaip vartotojo darbalaukio sistemą, tačiau abejojome darbo su svečių Windows stabilumu. Buvo nuspręsta patikrinti dabartinę Qubes versiją, nes nurodyti apribojimai labai gerai atitinka šios sistemos paradigmą, ypač virtualių mašinų šablonų diegimą ir vizualinę integraciją. Toliau pabandysiu trumpai pakalbėti apie Qubes idėjas ir įrankius, pasitelkdamas problemos sprendimo pavyzdį.

Xen virtualizacijos tipai

Qubes yra pagrįstas Xen hipervizoriumi, kuris sumažina procesoriaus išteklių, atminties ir virtualių mašinų valdymo funkcijas. Visas kitas darbas su įrenginiais yra sutelktas į dom0, pagrįstą Linux branduoliu (Qubes for dom0 naudoja Fedora paskirstymą).

QubesOS naudojimas darbui su Windows 7

„Xen“ palaiko kelis virtualizacijos tipus (pateiksiu „Intel“ architektūros pavyzdžius, nors „Xen“ palaiko kitus):

  • paravirtualizacija (PV) – virtualizacijos režimas be aparatinės įrangos palaikymo, primenantis konteinerio virtualizaciją, gali būti naudojamas sistemoms su pritaikytu branduoliu (šiuo režimu veikia dom0);
  • pilna virtualizacija (HVM) – šiuo režimu aparatinės įrangos palaikymas naudojamas procesoriaus ištekliams, o visa kita įranga emuliuojama naudojant QEMU. Tai universaliausias būdas paleisti įvairias operacines sistemas;
  • aparatinės įrangos paravirtualizavimas (PVH - ParaVirtualized Hardware) - virtualizacijos režimas, naudojant aparatinės įrangos palaikymą, kai darbui su aparatine įranga svečių sistemos branduolys naudoja tvarkykles, pritaikytas hipervizoriaus galimybėms (pavyzdžiui, bendrąją atmintį), todėl nereikia QEMU emuliacijos. ir padidinti I/O našumą. Šiuo režimu gali veikti Linux branduolys nuo 4.11.

QubesOS naudojimas darbui su Windows 7

Pradedant nuo Qubes 4.0, saugumo sumetimais paravirtualizacijos režimo atsisakyta (įskaitant dėl ​​žinomų Intel architektūros spragų, kurias iš dalies sumažina visiškos virtualizacijos naudojimas); PVH režimas naudojamas pagal numatytuosius nustatymus.

Naudojant emuliaciją (HVM režimą), QEMU paleidžiama izoliuotoje VM, vadinamoje stuburo domenu, taip sumažinant galimų diegimo klaidų išnaudojimo riziką (QEMU projekte yra daug kodo, įskaitant suderinamumą).
Mūsų atveju šis režimas turėtų būti naudojamas „Windows“.

Aptarnaukite virtualias mašinas

Qubes saugos architektūroje viena iš pagrindinių hipervizoriaus galimybių yra PCI įrenginių perkėlimas į svečio aplinką. Aparatinės įrangos išskyrimas leidžia izoliuoti pagrindinę sistemos dalį nuo išorinių atakų. „Xen“ tai palaiko PV ir HVM režimams, antruoju atveju reikalingas IOMMU (Intel VT-d) palaikymas – virtualizuotų įrenginių aparatinės atminties valdymas.

Taip sukuriamos kelios sistemos virtualios mašinos:

  • sys-net, į kurį perduodami tinklo įrenginiai ir kuris naudojamas kaip tiltas kitiems VM, pavyzdžiui, tų, kurie įgyvendina ugniasienės ar VPN kliento funkcijas;
  • sys-usb, į kurį perkeliami USB ir kitų išorinių įrenginių valdikliai;
  • sys-firewall, kuri nenaudoja įrenginių, bet veikia kaip prijungtų VM užkarda.

Norint dirbti su USB įrenginiais, naudojamos tarpinio serverio paslaugos, kurios, be kita ko, teikia:

  • HID (žmogaus sąsajos įrenginio) įrenginių klasei komandų siuntimas į dom0;
  • keičiamai laikmenai – įrenginio tomų peradresavimas į kitas VM (išskyrus dom0);
  • nukreipimas tiesiai į USB įrenginį (naudojant USBIP ir integravimo įrankius).

Esant tokiai konfigūracijai, sėkminga ataka per tinklo krūvą arba prijungtus įrenginius gali pakenkti tik veikiančiai VM paslaugai, o ne visai sistemai. Ir iš naujo paleidus paslaugos VM, ji bus įkelta pradine būsena.

VM integravimo įrankiai

Yra keletas būdų, kaip sąveikauti su virtualios mašinos darbalaukiu – diegti programas svečių sistemoje arba emuliuoti vaizdo įrašą naudojant virtualizacijos įrankius. Svečių programos gali būti įvairios universalios nuotolinės prieigos įrankiai (RDP, VNC, Spice ir kt.) arba pritaikyti konkrečiam hipervizoriui (tokie įrankiai dažniausiai vadinami guest utilities). Taip pat galima naudoti mišrią parinktį, kai hipervizorius emuliuoja svečių sistemos I/O ir išoriškai suteikia galimybę naudoti protokolą, jungiantį I/O, pavyzdžiui, kaip Spice. Tuo pačiu metu nuotolinės prieigos įrankiai paprastai optimizuoja vaizdą, nes jie apima darbą per tinklą, o tai neturi teigiamo poveikio vaizdo kokybei.

„Qubes“ teikia savo VM integravimo įrankius. Visų pirma, tai yra grafikos posistemis – langai iš skirtingų VM rodomi viename darbalaukyje su savo spalvų rėmeliais. Apskritai, integravimo įrankiai yra pagrįsti hipervizoriaus galimybėmis – bendra atmintimi (Xen dotacijų lentelė), pranešimo įrankiais (Xen įvykių kanalu), bendrai naudojama saugykla xenstore ir vchan ryšio protokolu. Jų pagalba realizuojami pagrindiniai komponentai qrexec ir qubes-rpc bei taikomųjų programų paslaugos – garso arba USB peradresavimas, failų ar iškarpinės turinio perkėlimas, komandų vykdymas ir programų paleidimas. Galima nustatyti politiką, leidžiančią apriboti VM pasiekiamas paslaugas. Toliau pateiktame paveikslėlyje pateiktas dviejų VM sąveikos inicijavimo procedūros pavyzdys.

QubesOS naudojimas darbui su Windows 7

Taigi, darbas VM vykdomas nenaudojant tinklo, o tai leidžia visapusiškai išnaudoti autonomines VM, kad būtų išvengta informacijos nutekėjimo. Pavyzdžiui, taip įgyvendinamas kriptografinių operacijų atskyrimas (PGP/SSH), kai privatūs raktai naudojami izoliuotose VM ir jų neperžengia.

Šablonai, programa ir vienkartinės VM

Visas vartotojo darbas „Qubes“ atliekamas virtualiose mašinose. Pagrindinė prieglobos sistema naudojama jiems valdyti ir vizualizuoti. OS įdiegta kartu su pagrindiniu šablonais pagrįstų virtualių mašinų rinkiniu (TemplateVM). Šis šablonas yra „Linux“ virtualioji mašina, pagrįsta „Fedora“ arba „Debian“ paskirstymu, su įdiegtais ir sukonfigūruotais integravimo įrankiais bei tam skirtais sistemos ir vartotojo skaidiniais. Programinės įrangos diegimą ir atnaujinimą atlieka standartinė paketų tvarkyklė (dnf arba apt) iš sukonfigūruotų saugyklų su privalomu skaitmeninio parašo patikrinimu (GnuPG). Tokių VM tikslas – užtikrinti pasitikėjimą jų pagrindu paleistomis taikomųjų programų VM.

Paleidžiant taikomosios programos VM (AppVM) naudoja atitinkamo VM šablono sistemos skaidinio momentinį vaizdą ir užbaigus šią momentinę kopiją ištrina neišsaugodama pakeitimų. Duomenys, kurių reikalauja vartotojas, yra saugomi vartotojo skaidinyje, kuris yra unikalus kiekvienai taikomosios programos VM, kuris yra prijungtas prie namų katalogo.

QubesOS naudojimas darbui su Windows 7

Vienkartinių VM (disposableVM) naudojimas gali būti naudingas saugumo požiūriu. Tokia VM sukuriama pagal šabloną paleidimo metu ir paleidžiama vienam tikslui – vykdyti vieną programą, užbaigiant darbą ją uždarius. Vienkartines virtualias mašinas galima naudoti norint atidaryti įtartinus failus, kurių turinys gali sukelti tam tikrų programų pažeidžiamumo išnaudojimą. Galimybė paleisti vienkartinę VM yra integruota į failų tvarkyklę (Nautilus) ir el. pašto klientą (Thunderbird).

„Windows“ virtualioji mašina taip pat gali būti naudojama šablonui ir vienkartinei VM sukurti, perkeliant vartotojo profilį į atskirą skyrių. Mūsų versijoje tokį šabloną vartotojas naudos administravimo užduotims ir programų diegimui. Pagal šabloną bus sukurtos kelios taikomosios VM – su ribota prieiga prie tinklo (standartinės sys-firewall galimybės) ir išvis be prieigos prie tinklo (virtualus tinklo įrenginys nesukuriamas). Visi šablone įdiegti pakeitimai ir programos bus prieinami darbui šiose VM ir net jei bus įdiegtos žymių programos, jos neturės prieigos prie tinklo, kad būtų išvengta kompromiso.

Kovok už Windows

Aukščiau aprašytos funkcijos yra „Qubes“ pagrindas ir veikia gana stabiliai; sunkumai prasideda „Windows“. Norėdami integruoti Windows, turite naudoti svečių įrankių rinkinį Qubes Windows Tools (QWT), į kurį įeina tvarkyklės darbui su Xen, qvideo tvarkyklė ir informacijos mainų paslaugų rinkinys (failų perkėlimas, mainų sritis). Diegimo ir konfigūravimo procesas yra išsamiai dokumentuotas projekto svetainėje, todėl pasidalinsime savo taikymo patirtimi.

Pagrindinis sunkumas iš esmės yra paramos trūkumas sukurtoms priemonėms. Atrodo, kad pagrindiniai kūrėjai (QWT) nepasiekiami, o „Windows“ integravimo projektas laukia pagrindinio kūrėjo. Todėl visų pirma reikėjo įvertinti jos veiklą ir susidaryti supratimą apie galimybę prireikus ją remti savarankiškai. Sunkiausia sukurti ir derinti grafikos tvarkyklę, kuri emuliuoja vaizdo adapterį ir ekraną, kad sukurtų vaizdą bendrojoje atmintyje, leidžiantį rodyti visą darbalaukį arba programos langą tiesiai pagrindinės sistemos lange. Tvarkyklės veikimo analizės metu pritaikėme kodą surinkimui Linux aplinkoje ir parengėme derinimo schemą tarp dviejų Windows svečių sistemų. Kryžminio sukūrimo etape atlikome keletą pakeitimų, kurie mums supaprastino reikalus, daugiausia kalbant apie „tylaus“ komunalinių paslaugų diegimą, taip pat pašalinome erzinantį našumo pablogėjimą ilgą laiką dirbant VM. Darbo rezultatus pristatėme atskirame skyriuje saugyklos, taigi neilgam ikvepiantis Pagrindinis „Qubes“ kūrėjas.

Svarbiausias etapas svečių sistemos stabilumo požiūriu yra „Windows“ paleidimas, čia galite pamatyti pažįstamą mėlyną ekraną (arba jo net nematote). Daugeliui nustatytų klaidų buvo įvairių būdų – panaikinti Xen bloko įrenginių tvarkykles, išjungti VM atminties balansavimą, pataisyti tinklo nustatymus ir sumažinti branduolių skaičių. Mūsų svečių įrankiai diegiami ir veikia visiškai atnaujintose „Windows 7“ ir „Windows 10“ (išskyrus „qvideo“).

Pereinant iš realios aplinkos į virtualią, iškyla problema suaktyvinant „Windows“, jei naudojamos iš anksto įdiegtos OEM versijos. Tokios sistemos naudoja aktyvinimą pagal įrenginio UEFI nurodytas licencijas. Norint tinkamai apdoroti aktyvinimą, reikia išversti vieną iš visos pagrindinės sistemos ACPI sekcijų (SLIC lentelė) į svečio sistemą ir šiek tiek redaguoti kitus, registruojant gamintoją. „Xen“ leidžia tinkinti papildomų lentelių ACPI turinį, tačiau nekeičiant pagrindinių. Išspręsti padėjo pataisas iš panašaus OpenXT projekto, kuris buvo pritaikytas Qubes. Pataisymai pasirodė naudingi ne tik mums ir buvo išversti į pagrindinę Qubes saugyklą ir Libvirt biblioteką.

Akivaizdūs „Windows“ integravimo įrankių trūkumai yra garso, USB įrenginių palaikymo trūkumas ir darbo su laikmenomis sudėtingumas, nes nėra aparatinės įrangos paramos GPU. Tačiau tai, kas išdėstyta pirmiau, netrukdo naudoti VM dirbant su biuro dokumentais, taip pat netrukdo paleisti konkrečias įmonės programas.

Reikalavimas pereiti į darbo režimą be tinklo arba su ribotu tinklu sukūrus Windows VM šabloną buvo įvykdytas sukūrus atitinkamas taikomųjų VM konfigūracijas, o galimybė pasirinktinai prijungti keičiamąsias laikmenas taip pat buvo išspręsta standartiniais OS įrankiais – kai prijungta. , jie yra prieinami sistemoje VM sys-usb, iš kur juos galima „persiųsti“ į reikiamą VM. Vartotojo darbalaukis atrodo maždaug taip.

QubesOS naudojimas darbui su Windows 7

Galutinė sistemos versija buvo teigiama (kiek leidžia toks kompleksinis sprendimas) vartotojų, o standartiniai sistemos įrankiai leido išplėsti aplikaciją į vartotojo mobilią darbo vietą su prieiga per VPN.

Vietoj išvados

Virtualizacija apskritai leidžia sumažinti be palaikymo paliktų „Windows“ sistemų naudojimo riziką – ji neapsunkina suderinamumo su nauja aparatine įranga, leidžia atmesti arba valdyti prieigą prie sistemos per tinklą arba per prijungtus įrenginius ir leidžia įdiegti vienkartinę paleidimo aplinką.

Remiantis izoliacijos per virtualizaciją idėja, Qubes OS padeda jums panaudoti šiuos ir kitus saugumo mechanizmus. Žvelgiant iš šalies, daugelis žmonių Qubes pirmiausia vertina kaip anonimiškumo troškimą, tačiau tai yra naudinga sistema tiek inžinieriams, kurie dažnai žongliruoja projektais, infrastruktūra ir paslaptimis, kad juos pasiektų, tiek saugumo tyrinėtojams. Programų, duomenų atskyrimas ir jų sąveikos formalizavimas yra pradiniai grėsmių analizės ir apsaugos sistemos projektavimo žingsniai. Toks atskyrimas padeda struktūrizuoti informaciją ir sumažinti klaidų tikimybę dėl žmogiškojo faktoriaus – skubėjimo, nuovargio ir pan.

Šiuo metu pagrindinis kūrimo akcentas yra Linux aplinkų funkcionalumo išplėtimas. 4.1 versija ruošiama išleisti, kuri bus pagrįsta Fedora 31 ir apims dabartines pagrindinių komponentų Xen ir Libvirt versijas. Verta paminėti, kad „Qubes“ kuria informacijos saugumo profesionalai, kurie visada operatyviai išleidžia atnaujinimus, jei nustatomos naujos grėsmės ar klaidos.

Afterword

Viena iš mūsų kuriamų eksperimentinių galimybių leidžia kurti VM su svečių prieigos prie GPU palaikymu, remiantis Intel GVT-g technologija, kuri leidžia išnaudoti grafinio adapterio galimybes ir gerokai išplėsti sistemos apimtį. Rašymo metu ši funkcija veikia bandomuosiuose Qubes 4.1 versijose ir yra pasiekiama GitHub.

Šaltinis: www.habr.com

Добавить комментарий