Nav daudz rakstu par HabrĆ©, kas veltÄ«ti Qubes operÄtÄjsistÄmai, un tajos, kurus esmu redzÄjis, nav daudz aprakstÄ«ta tÄs lietoÅ”anas pieredze. Zem griezuma es ceru to labot, izmantojot piemÄru par Qubes izmantoÅ”anu kÄ aizsardzÄ«bas lÄ«dzekli (pret) Windows vidi un tajÄ paÅ”Ä laikÄ novÄrtÄjot sistÄmas krievvalodÄ«go lietotÄju skaitu.
KÄpÄc Qubes?
StÄsts par Windows 7 tehniskÄ atbalsta beigÄm un pieaugoÅ”o lietotÄju satraukumu izraisÄ«ja nepiecieÅ”amÄ«bu organizÄt Ŕīs OS darbu, Åemot vÄrÄ Å”Ädas prasÄ«bas:
- nodroÅ”inÄt pilnÄ«bÄ aktivizÄtas Windows 7 lietoÅ”anu ar iespÄju lietotÄjam instalÄt atjauninÄjumus un dažÄdas lietojumprogrammas (arÄ« izmantojot internetu);
- ieviest pilnÄ«gu vai selektÄ«vu tÄ«kla mijiedarbÄ«bas izslÄgÅ”anu, pamatojoties uz nosacÄ«jumiem (autonomÄ darbÄ«ba un trafika filtrÄÅ”anas režīmi);
- nodroÅ”ina iespÄju selektÄ«vi savienot noÅemamos datu nesÄjus un ierÄ«ces.
Å is ierobežojumu kopums paredz skaidri sagatavotu lietotÄju, jo ir atļauta neatkarÄ«ga administrÄÅ”ana, un ierobežojumi nav saistÄ«ti ar viÅa iespÄjamo darbÄ«bu bloÄ·ÄÅ”anu, bet gan ar iespÄjamu kļūdu vai destruktÄ«vu programmatÅ«ras efektu izslÄgÅ”anu. Tie. ModelÄ« nav iekÅ”Äja likumpÄrkÄpÄja.
MeklÄjot risinÄjumu, mÄs Ätri atteicÄmies no idejas ieviest ierobežojumus, izmantojot iebÅ«vÄtos vai papildu Windows rÄ«kus, jo ir diezgan grÅ«ti efektÄ«vi ierobežot lietotÄju ar administratora tiesÄ«bÄm, atstÄjot viÅam iespÄju instalÄt lietojumprogrammas.
NÄkamais risinÄjums bija izolÄcija, izmantojot virtualizÄciju. Labi zinÄmie darbvirsmas virtualizÄcijas rÄ«ki (piemÄram, virtualbox) ir vÄji piemÄroti droŔības problÄmu risinÄÅ”anai un uzskaitÄ«tie ierobežojumi bÅ«s jÄveic lietotÄjam, pastÄvÄ«gi pÄrslÄdzot vai pielÄgojot viesu virtuÄlÄs maŔīnas (turpmÄk tekstÄ) rekvizÄ«tus. kÄ VM), kas palielina kļūdu risku.
TajÄ paÅ”Ä laikÄ mums bija pieredze, izmantojot Qubes kÄ lietotÄja darbvirsmas sistÄmu, taÄu Å”aubÄ«jÄmies par stabilitÄti darbÄ ar viesu Windows. Tika nolemts pÄrbaudÄ«t paÅ”reizÄjo Qubes versiju, jo norÄdÄ«tie ierobežojumi ļoti labi iekļaujas Ŕīs sistÄmas paradigmÄ, Ä«paÅ”i virtuÄlÄs maŔīnas veidÅu ievieÅ”anÄ un vizuÄlajÄ integrÄcijÄ. TÄlÄk es mÄÄ£inÄÅ”u Ä«si pastÄstÄ«t par Qubes idejÄm un instrumentiem, izmantojot problÄmas risinÄÅ”anas piemÄru.
Xen virtualizÄcijas veidi
Qubes pamatÄ ir Xen hipervizors, kas samazina procesora resursu, atmiÅas un virtuÄlo maŔīnu pÄrvaldÄ«bas funkcijas. Viss pÄrÄjais darbs ar ierÄ«cÄm ir koncentrÄts dom0, pamatojoties uz Linux kodolu (Qubes for dom0 izmanto Fedora izplatÄ«Å”anu).
Xen atbalsta vairÄkus virtualizÄcijas veidus (es sniegÅ”u piemÄrus Intel arhitektÅ«rai, lai gan Xen atbalsta citus):
- paravirtualizÄcija (PV) - virtualizÄcijas režīms bez aparatÅ«ras atbalsta izmantoÅ”anas, kas atgÄdina konteineru virtualizÄciju, var tikt izmantots sistÄmÄm ar pielÄgotu kodolu (Å”ajÄ režīmÄ darbojas dom0);
- pilna virtualizÄcija (HVM) - Å”ajÄ režīmÄ procesora resursiem tiek izmantots aparatÅ«ras atbalsts, un visas pÄrÄjÄs iekÄrtas tiek emulÄtas, izmantojot QEMU. Å is ir universÄlÄkais veids, kÄ palaist dažÄdas operÄtÄjsistÄmas;
- aparatÅ«ras paravirtualizÄcija (PVH - ParaVirtualized Hardware) - virtualizÄcijas režīms, kurÄ tiek izmantots aparatÅ«ras atbalsts, kad, lai strÄdÄtu ar aparatÅ«ru, viesu sistÄmas kodols izmanto draiverus, kas pielÄgoti hipervizora iespÄjÄm (piemÄram, koplietojamÄ atmiÅa), novÄrÅ”ot nepiecieÅ”amÄ«bu pÄc QEMU emulÄcijas. un palielinÄt I/O veiktspÄju. Å ajÄ režīmÄ var darboties Linux kodols, sÄkot no 4.11.
SÄkot ar Qubes 4.0, droŔības apsvÄrumu dÄļ paravirtualizÄcijas režīma izmantoÅ”ana ir atmesta (tostarp zinÄmo Intel arhitektÅ«ras ievainojamÄ«bu dÄļ, kuras daļÄji mazina pilnas virtualizÄcijas izmantoÅ”ana); PVH režīms tiek izmantots pÄc noklusÄjuma.
Izmantojot emulÄciju (HVM režīmu), QEMU tiek palaists izolÄtÄ virtuÄlajÄ maŔīnÄ, ko sauc par stubdomain, tÄdÄjÄdi samazinot iespÄjamo kļūdu izmantoÅ”anas risku ievieÅ”anÄ (QEMU projektÄ ir daudz koda, tostarp saderÄ«bas nodroÅ”inÄÅ”anai).
MÅ«su gadÄ«jumÄ Å”is režīms ir jÄizmanto operÄtÄjsistÄmai Windows.
Apkalpo virtuÄlÄs maŔīnas
Qubes droŔības arhitektÅ«rÄ viena no galvenajÄm hipervizora iespÄjÄm ir PCI ierÄ«Äu pÄrsÅ«tÄ«Å”ana uz viesu vidi. AparatÅ«ras izslÄgÅ”ana ļauj izolÄt sistÄmas resursdatora daļu no ÄrÄjiem uzbrukumiem. Xen to atbalsta PV un HVM režīmiem, otrajÄ gadÄ«jumÄ nepiecieÅ”ams atbalsts IOMMU (Intel VT-d) - aparatÅ«ras atmiÅas pÄrvaldÄ«bai virtualizÄtÄm ierÄ«cÄm.
TÄdÄjÄdi tiek izveidotas vairÄkas sistÄmas virtuÄlÄs maŔīnas:
- sys-net, uz kuru tiek pÄrsÅ«tÄ«tas tÄ«kla ierÄ«ces un kas tiek izmantots kÄ tilts citÄm virtuÄlajÄm maŔīnÄm, piemÄram, tÄm, kas realizÄ ugunsmÅ«ra vai VPN klienta funkcijas;
- sys-usb, uz kuru tiek pÄrsÅ«tÄ«ti USB un citu perifÄrijas ierÄ«Äu kontrolleri;
- sys-firewall, kas neizmanto ierÄ«ces, bet darbojas kÄ ugunsmÅ«ris savienotajÄm virtuÄlajÄm maŔīnÄm.
Lai strÄdÄtu ar USB ierÄ«cÄm, tiek izmantoti starpniekservera pakalpojumi, kas cita starpÄ nodroÅ”ina:
- HID (cilvÄka interfeisa ierÄ«ces) ierÄ«Äu klasei komandu nosÅ«tÄ«Å”ana uz dom0;
- noÅemamiem datu nesÄjiem ā ierÄ«Äu apjomu novirzÄ«Å”ana uz citÄm virtuÄlajÄm maŔīnÄm (izÅemot dom0);
- novirzÄ«Å”ana tieÅ”i uz USB ierÄ«ci (izmantojot USBIP un integrÄcijas rÄ«kus).
Å ÄdÄ konfigurÄcijÄ veiksmÄ«gs uzbrukums, izmantojot tÄ«kla steku vai pievienotÄs ierÄ«ces, var apdraudÄt tikai darbojoÅ”os pakalpojuma VM, nevis visu sistÄmu kopumÄ. Un pÄc pakalpojuma VM restartÄÅ”anas tas tiks ielÄdÄts sÄkotnÄjÄ stÄvoklÄ«.
VM integrÄcijas rÄ«ki
Ir vairÄki veidi, kÄ mijiedarboties ar virtuÄlÄs maŔīnas darbvirsmu ā lietojumprogrammu instalÄÅ”ana viesu sistÄmÄ vai video emulÄÅ”ana, izmantojot virtualizÄcijas rÄ«kus. Viesu lietojumprogrammas var bÅ«t dažÄdi universÄlie attÄlÄs piekļuves rÄ«ki (RDP, VNC, Spice u.c.) vai pielÄgoti konkrÄtam hipervizoram (Å”Ädus rÄ«kus parasti sauc par viesu utilÄ«tiem). Var izmantot arÄ« jauktu opciju, kad hipervizors emulÄ I/O viesu sistÄmai un ÄrÄji nodroÅ”ina iespÄju izmantot protokolu, kas apvieno I/O, piemÄram, piemÄram, Spice. TajÄ paÅ”Ä laikÄ attÄlÄs piekļuves rÄ«ki parasti optimizÄ attÄlu, jo tie ietver darbu, izmantojot tÄ«klu, kas neietekmÄ attÄla kvalitÄti.
Qubes nodroÅ”ina savus rÄ«kus VM integrÄcijai. PirmkÄrt, Ŕī ir grafikas apakÅ”sistÄma - logi no dažÄdÄm virtuÄlajÄm maŔīnÄm tiek parÄdÄ«ti vienÄ darbvirsmÄ ar savu krÄsu rÄmi. KopumÄ integrÄcijas rÄ«ki ir balstÄ«ti uz hipervizora iespÄjÄm - koplietojamo atmiÅu (Xen pieŔķirÅ”anas tabula), paziÅojumu rÄ«kiem (Xen notikumu kanÄls), koplietojamo krÄtuves xenstore un vchan sakaru protokolu. Ar to palÄ«dzÄ«bu tiek ieviesti pamata komponenti qrexec un qubes-rpc un lietojumprogrammu pakalpojumi - audio vai USB novirzÄ«Å”ana, failu vai starpliktuves satura pÄrsÅ«tÄ«Å”ana, komandu izpilde un lietojumprogrammu palaiÅ”ana. Ir iespÄjams iestatÄ«t politikas, kas ļauj ierobežot virtuÄlajÄ maŔīnÄ pieejamos pakalpojumus. TÄlÄk redzamajÄ attÄlÄ ir parÄdÄ«ts divu virtuÄlo maŔīnu mijiedarbÄ«bas inicializÄcijas procedÅ«ras piemÄrs.
TÄdÄjÄdi darbs VM tiek veikts, neizmantojot tÄ«klu, kas ļauj pilnÄ«bÄ izmantot autonomÄs VM, lai izvairÄ«tos no informÄcijas noplÅ«des. PiemÄram, Å”Ädi tiek realizÄta kriptogrÄfisko operÄciju (PGP/SSH) atdalÄ«Å”ana, kad privÄtÄs atslÄgas tiek izmantotas izolÄtÄs virtuÄlajÄs maŔīnÄs un nepÄrsniedz tÄs.
Veidnes, lietojumprogrammas un vienreizÄjÄs virtuÄlÄs maŔīnas
Viss lietotÄju darbs Qubes tiek veikts virtuÄlajÄs maŔīnÄs. GalvenÄ resursdatora sistÄma tiek izmantota, lai tos kontrolÄtu un vizualizÄtu. OS ir instalÄta kopÄ ar pamata komplektu uz veidnÄm balstÄ«tu virtuÄlo maŔīnu (TemplateVM). Å Ä« veidne ir Linux virtuÄlÄ maŔīna, kuras pamatÄ ir Fedora vai Debian izplatÄ«Å”ana, ar instalÄtiem un konfigurÄtiem integrÄcijas rÄ«kiem un Ä«paÅ”iem sistÄmas un lietotÄju nodalÄ«jumiem. ProgrammatÅ«ras instalÄÅ”anu un atjauninÄÅ”anu veic standarta pakotÅu pÄrvaldnieks (dnf vai apt) no konfigurÄtÄm krÄtuvÄm ar obligÄto digitÄlÄ paraksta pÄrbaudi (GnuPG). Å Ädu virtuÄlo maŔīnu mÄrÄ·is ir nodroÅ”inÄt uzticÄ«bu lietojumprogrammu virtuÄlajÄm maŔīnÄm, kas palaists uz to pamata.
StartÄÅ”anas laikÄ lietojumprogrammas VM (AppVM) izmanto attiecÄ«gÄs VM veidnes sistÄmas nodalÄ«juma momentuzÅÄmumu un pÄc pabeigÅ”anas izdzÄÅ” Å”o momentuzÅÄmumu, nesaglabÄjot izmaiÅas. LietotÄjam nepiecieÅ”amie dati tiek glabÄti lietotÄja nodalÄ«jumÄ, kas ir unikÄls katrai lietojumprogrammas VM, kas ir uzstÄdÄ«ts mÄjas direktorijÄ.
VienreizÄjÄs lietoÅ”anas virtuÄlo maŔīnu (disposableVM) izmantoÅ”ana var bÅ«t noderÄ«ga no droŔības viedokļa. Å Äda VM tiek izveidota, pamatojoties uz veidni palaiÅ”anas brÄ«dÄ«, un tiek palaista vienam mÄrÄ·im - vienas lietojumprogrammas izpildei, pabeidzot darbu pÄc tÄs aizvÄrÅ”anas. VienreizÄjÄs lietoÅ”anas virtuÄlÄs maŔīnas var izmantot, lai atvÄrtu aizdomÄ«gus failus, kuru saturs var izraisÄ«t noteiktu lietojumprogrammu ievainojamÄ«bu izmantoÅ”anu. IespÄja palaist vienreizÄju virtuÄlo maŔīnu ir integrÄta failu pÄrvaldniekÄ (Nautilus) un e-pasta klientÄ (Thunderbird).
Windows VM var izmantot arÄ«, lai izveidotu veidni un vienreizÄju virtuÄlo maŔīnu, pÄrvietojot lietotÄja profilu uz atseviŔķu sadaļu. MÅ«su versijÄ Å”Ädu veidni lietotÄjs izmantos administrÄÅ”anas uzdevumiem un lietojumprogrammu instalÄÅ”anai. Pamatojoties uz veidni, tiks izveidotas vairÄkas lietojumprogrammu VM - ar ierobežotu piekļuvi tÄ«klam (standarta sys-firewall iespÄjas) un bez piekļuves tÄ«klam vispÄr (virtuÄlÄ tÄ«kla ierÄ«ce netiek izveidota). Visas veidnÄ instalÄtÄs izmaiÅas un lietojumprogrammas bÅ«s pieejamas darbam Å”ajÄs virtuÄlajÄs maŔīnÄs, un pat tad, ja tiks ieviestas grÄmatzÄ«mju programmas, tÄm nebÅ«s piekļuves tÄ«klam kompromisa dÄļ.
CÄ«Åa par Windows
IepriekÅ” aprakstÄ«tÄs funkcijas ir Qubes pamatÄ un darbojas diezgan stabili; grÅ«tÄ«bas sÄkas ar Windows. Lai integrÄtu sistÄmu Windows, jums jÄizmanto viesu rÄ«ku komplekts Qubes Windows Tools (QWT), kas ietver draiverus darbam ar Xen, qvideo draiveri un utilÄ«tu komplektu informÄcijas apmaiÅai (failu pÄrsÅ«tÄ«Å”anai, starpliktuvei). InstalÄÅ”anas un konfigurÄÅ”anas process ir detalizÄti dokumentÄts projekta mÄjaslapÄ, tÄpÄc dalÄ«simies ar savu pielietoÅ”anas pieredzi.
GalvenÄs grÅ«tÄ«bas bÅ«tÄ«bÄ ir atbalsta trÅ«kums izstrÄdÄtajiem rÄ«kiem. Å Ä·iet, ka Key Developers (QWT) nav pieejams, un Windows integrÄcijas projekts gaida galveno izstrÄdÄtÄju. TÄpÄc, pirmkÄrt, bija jÄnovÄrtÄ tÄ darbÄ«ba un jÄveido izpratne par iespÄju nepiecieÅ”amÄ«bas gadÄ«jumÄ to patstÄvÄ«gi atbalstÄ«t. VisgrÅ«tÄk izstrÄdÄt un atkļūdot ir grafikas draiveris, kas emulÄ video adapteri un displeju, lai Ä£enerÄtu attÄlu koplietotajÄ atmiÅÄ, ļaujot parÄdÄ«t visu darbvirsmu vai lietojumprogrammas logu tieÅ”i resursdatora sistÄmas logÄ. Draivera darbÄ«bas analÄ«zes laikÄ mÄs pielÄgojÄm kodu montÄžai Linux vidÄ un izstrÄdÄjÄm atkļūdoÅ”anas shÄmu starp divÄm Windows viesu sistÄmÄm. Crossbuild posmÄ mÄs veicÄm vairÄkas izmaiÅas, kas mums vienkÄrÅ”oja lietas, galvenokÄrt attiecÄ«bÄ uz komunÄlo pakalpojumu āklusuā instalÄÅ”anu, kÄ arÄ« novÄrsÄm kaitinoÅ”o veiktspÄjas pasliktinÄÅ”anos, ilgstoÅ”i strÄdÄjot virtuÄlajÄ maŔīnÄ. Darba rezultÄtus prezentÄjÄm atseviŔķÄ
ViskritiskÄkais posms viesu sistÄmas stabilitÄtes ziÅÄ ir Windows startÄÅ”ana, Å”eit jÅ«s varat redzÄt pazÄ«stamo zilo ekrÄnu (vai pat to neredzÄt). LielÄkajai daļai konstatÄto kļūdu bija dažÄdi risinÄjumi - Xen bloka ierÄ«Äu draiveru likvidÄÅ”ana, VM atmiÅas balansÄÅ”anas atspÄjoÅ”ana, tÄ«kla iestatÄ«jumu laboÅ”ana un kodolu skaita samazinÄÅ”ana. MÅ«su viesu rÄ«ki veido instalÄcijas un darbojas pilnÄ«bÄ atjauninÄtajÄs operÄtÄjsistÄmÄs Windows 7 un Windows 10 (izÅemot qvideo).
PÄrejot no reÄlÄs vides uz virtuÄlo, rodas problÄma ar Windows aktivizÄÅ”anu, ja tiek izmantotas iepriekÅ” instalÄtas OEM versijas. Å Ädas sistÄmas izmanto aktivizÄciju, pamatojoties uz licencÄm, kas norÄdÄ«tas ierÄ«ces UEFI. Lai pareizi apstrÄdÄtu aktivizÄciju, ir jÄpÄrtulko viena no visÄm resursdatora sistÄmas ACPI sadaļÄm (SLIC tabula) viesu sistÄmÄ un nedaudz jÄrediÄ£Ä pÄrÄjÄs, reÄ£istrÄjot ražotÄju. Xen ļauj pielÄgot papildu tabulu ACPI saturu, taÄu nemainot galvenÄs. RisinÄjumam palÄ«dzÄja ielÄps no lÄ«dzÄ«ga OpenXT projekta, kas tika pielÄgots Qubes. Labojumi Ŕķita noderÄ«gi ne tikai mums, un tie tika tulkoti galvenajÄ Qubes repozitorijÄ un Libvirt bibliotÄkÄ.
AcÄ«mredzamie Windows integrÄcijas rÄ«ku trÅ«kumi ir audio, USB ierÄ«Äu atbalsta trÅ«kums un sarežģītÄ«ba darbÄ ar multividi, jo nav aparatÅ«ras atbalsta GPU. TaÄu iepriekÅ” minÄtais neliedz izmantot VM darbam ar biroja dokumentiem, kÄ arÄ« neliedz palaist konkrÄtas korporatÄ«vÄs lietojumprogrammas.
PrasÄ«ba pÄc Windows VM veidnes izveidoÅ”anas pÄrslÄgties uz darbÄ«bas režīmu bez tÄ«kla vai ar ierobežotu tÄ«klu tika izpildÄ«ta, izveidojot atbilstoÅ”as āālietojumprogrammu VM konfigurÄcijas, un iespÄja selektÄ«vi pieslÄgt noÅemamo datu nesÄju tika atrisinÄta arÄ« ar standarta OS rÄ«kiem - kad ir pieslÄgts. , tie ir pieejami sistÄmÄ VM sys-usb, no kurienes var "pÄrsÅ«tÄ«t" uz vajadzÄ«go VM. LietotÄja darbvirsma izskatÄs apmÄram Å”Ädi.
SistÄmas galÄ«go versiju pozitÄ«vi (ciktÄl Å”Äds visaptveroÅ”s risinÄjums atļauj) akceptÄja lietotÄji, un sistÄmas standarta rÄ«ki ļÄva paplaÅ”inÄt aplikÄciju uz lietotÄja mobilo darbstaciju ar piekļuvi caur VPN.
TÄ vietÄ, lai noslÄgtu
VirtualizÄcija kopumÄ Ä¼auj samazinÄt bez atbalsta atstÄtu Windows sistÄmu lietoÅ”anas risku - tÄ neuzspiež saderÄ«bu ar jaunu aparatÅ«ru, ļauj izslÄgt vai kontrolÄt piekļuvi sistÄmai tÄ«klÄ vai caur pievienotajÄm ierÄ«cÄm, kÄ arÄ« ļauj ieviest vienreizÄju palaiÅ”anas vidi.
Pamatojoties uz ideju par izolÄciju, izmantojot virtualizÄciju, Qubes OS palÄ«dz jums izmantot Å”os un citus droŔības mehÄnismus. No malas daudzi cilvÄki Qubes uztver galvenokÄrt kÄ vÄlmi pÄc anonimitÄtes, taÄu tÄ ir noderÄ«ga sistÄma gan inženieriem, kuri bieži žonglÄ projektiem, infrastruktÅ«rÄm un noslÄpumiem, lai tiem piekļūtu, gan droŔības pÄtniekiem. Lietojumprogrammu, datu atdalÄ«Å”ana un to mijiedarbÄ«bas formalizÄÅ”ana ir draudu analÄ«zes un droŔības sistÄmu projektÄÅ”anas sÄkuma soļi. Å Äda nodalÄ«Å”ana palÄ«dz strukturÄt informÄciju un samazinÄt kļūdu iespÄjamÄ«bu cilvÄciskÄ faktora ā steigas, noguruma u.c.
Å obrÄ«d galvenais uzsvars izstrÄdÄ tiek likts uz Linux vidi funkcionalitÄtes paplaÅ”inÄÅ”anu. IzlaiÅ”anai tiek gatavota versija 4.1, kas balstÄ«sies uz Fedora 31 un ietvers galveno komponentu Xen un Libvirt paÅ”reizÄjÄs versijas. Ir vÄrts atzÄ«mÄt, ka Qubes veido informÄcijas droŔības profesionÄļi, kuri vienmÄr nekavÄjoties izlaiž atjauninÄjumus, ja tiek atklÄti jauni draudi vai kļūdas.
PÄcvÄrds
Viena no mÅ«su izstrÄdÄtajÄm eksperimentÄlajÄm iespÄjÄm ļauj mums izveidot virtuÄlÄs maŔīnas ar atbalstu viesa piekļuvei GPU, pamatojoties uz Intel GVT-g tehnoloÄ£iju, kas ļauj izmantot grafiskÄ adaptera iespÄjas un bÅ«tiski paplaÅ”inÄt sistÄmas darbÄ«bas jomu. RakstÄ«Å”anas laikÄ Å”Ä« funkcionalitÄte darbojas Qubes 4.1 testa versijÄs un ir pieejama vietnÄ
Avots: www.habr.com