Paggamit ng QubesOS upang gumana sa Windows 7

Walang maraming mga artikulo sa Habré na nakatuon sa operating system ng Qubes, at ang mga nakita ko ay hindi naglalarawan ng maraming karanasan sa paggamit nito. Sa ibaba ng hiwa, inaasahan kong iwasto ito gamit ang halimbawa ng paggamit ng Qubes bilang isang paraan ng proteksyon (laban) sa kapaligiran ng Windows at, sa parehong oras, tantyahin ang bilang ng mga gumagamit ng system na nagsasalita ng Ruso.

Paggamit ng QubesOS upang gumana sa Windows 7

Bakit Qubes?

Ang kwento ng pagtatapos ng teknikal na suporta para sa Windows 7 at ang pagtaas ng pagkabalisa ng mga gumagamit ay humantong sa pangangailangan na ayusin ang gawain ng OS na ito, na isinasaalang-alang ang mga sumusunod na kinakailangan:

  • tiyakin ang paggamit ng ganap na aktibo na Windows 7 na may kakayahan para sa user na mag-install ng mga update at iba't ibang mga application (kabilang ang sa pamamagitan ng Internet);
  • ipatupad ang kumpleto o piling pagbubukod ng mga pakikipag-ugnayan sa network batay sa mga kundisyon (autonomous na operasyon at mga mode ng pag-filter ng trapiko);
  • magbigay ng kakayahang piliing ikonekta ang naaalis na media at mga device.

Ipinapalagay ng hanay ng mga paghihigpit na ito ang isang malinaw na handa na gumagamit, dahil pinapayagan ang independiyenteng pangangasiwa, at ang mga paghihigpit ay hindi nauugnay sa pagharang sa kanyang mga potensyal na aksyon, ngunit sa pagbubukod ng mga posibleng pagkakamali o mapanirang epekto ng software. Yung. Walang panloob na nagkasala sa modelo.

Sa aming paghahanap para sa isang solusyon, mabilis naming tinalikuran ang ideya ng pagpapatupad ng mga paghihigpit gamit ang built-in o karagdagang mga tool sa Windows, dahil medyo mahirap na epektibong paghigpitan ang isang gumagamit na may mga karapatan ng administrator, na nag-iiwan sa kanya ng kakayahang mag-install ng mga application.

Ang susunod na solusyon ay paghihiwalay gamit ang virtualization. Ang mga kilalang tool para sa virtualization ng desktop (halimbawa, tulad ng virtualbox) ay hindi angkop para sa paglutas ng mga problema sa seguridad at ang mga nakalistang paghihigpit ay kailangang gawin ng user sa pamamagitan ng patuloy na paglipat o pagsasaayos ng mga katangian ng guest virtual machine (mula rito ay tinutukoy sa bilang VM), na nagpapataas ng panganib ng mga error.

Kasabay nito, nagkaroon kami ng karanasan sa paggamit ng Qubes bilang desktop system ng user, ngunit may mga pagdududa tungkol sa katatagan ng pagtatrabaho sa guest Windows. Napagpasyahan na suriin ang kasalukuyang bersyon ng Qubes, dahil ang mga nakasaad na limitasyon ay akma nang husto sa paradigm ng sistemang ito, lalo na ang pagpapatupad ng mga virtual machine template at visual integration. Susunod, susubukan kong maikling pag-usapan ang tungkol sa mga ideya at tool ng Qubes, gamit ang halimbawa ng paglutas ng problema.

Mga uri ng Xen virtualization

Ang Qubes ay batay sa Xen hypervisor, na nagpapaliit sa mga function ng pamamahala ng mga mapagkukunan ng processor, memorya at virtual machine. Ang lahat ng iba pang gawain sa mga device ay puro sa dom0 batay sa Linux kernel (Qubes para sa dom0 ay gumagamit ng pamamahagi ng Fedora).

Paggamit ng QubesOS upang gumana sa Windows 7

Sinusuportahan ng Xen ang ilang uri ng virtualization (Magbibigay ako ng mga halimbawa para sa arkitektura ng Intel, bagaman sinusuportahan ng Xen ang iba):

  • paravirtualization (PV) - isang virtualization mode na walang paggamit ng hardware support, na nakapagpapaalaala sa container virtualization, ay maaaring gamitin para sa mga system na may inangkop na kernel (dom0 ay gumagana sa mode na ito);
  • full virtualization (HVM) - sa mode na ito, ginagamit ang suporta sa hardware para sa mga mapagkukunan ng processor, at lahat ng iba pang kagamitan ay ginagaya gamit ang QEMU. Ito ang pinaka-unibersal na paraan upang magpatakbo ng iba't ibang mga operating system;
  • paravirtualization ng hardware (PVH - ParaVirtualized Hardware) - isang virtualization mode gamit ang hardware support kapag, para gumana sa hardware, ang guest system kernel ay gumagamit ng mga driver na inangkop sa mga kakayahan ng hypervisor (halimbawa, shared memory), na inaalis ang pangangailangan para sa QEMU emulation at pagtaas ng pagganap ng I/O. Ang Linux kernel simula sa 4.11 ay maaaring gumana sa mode na ito.

Paggamit ng QubesOS upang gumana sa Windows 7

Simula sa Qubes 4.0, para sa mga kadahilanang panseguridad, ang paggamit ng paravirtualization mode ay inabandona (kabilang ang dahil sa mga kilalang kahinaan sa Intel architecture, na bahagyang nababawasan ng paggamit ng buong virtualization); PVH mode ay ginagamit bilang default.

Kapag gumagamit ng emulation (HVM mode), inilulunsad ang QEMU sa isang nakahiwalay na VM na tinatawag na stubdomain, sa gayon ay binabawasan ang mga panganib ng pagsasamantala sa mga potensyal na error sa pagpapatupad (ang proyekto ng QEMU ay naglalaman ng maraming code, kabilang ang para sa pagiging tugma).
Sa aming kaso, ang mode na ito ay dapat gamitin para sa Windows.

Serbisyo ng mga virtual machine

Sa arkitektura ng seguridad ng Qubes, ang isa sa mga pangunahing kakayahan ng hypervisor ay ang paglipat ng mga PCI device sa kapaligiran ng bisita. Nagbibigay-daan sa iyo ang pagbubukod ng hardware na ihiwalay ang host na bahagi ng system mula sa mga panlabas na pag-atake. Sinusuportahan ito ng Xen para sa mga mode ng PV at HVM, sa pangalawang kaso nangangailangan ito ng suporta para sa IOMMU (Intel VT-d) - pamamahala ng memorya ng hardware para sa mga virtualized na device.

Lumilikha ito ng ilang system virtual machine:

  • sys-net, kung saan inililipat ang mga device sa network at ginagamit bilang tulay para sa iba pang mga VM, halimbawa, ang mga nagpapatupad ng mga function ng isang firewall o isang VPN client;
  • sys-usb, kung saan inililipat ang USB at iba pang mga peripheral device controllers;
  • sys-firewall, na hindi gumagamit ng mga device, ngunit gumagana bilang isang firewall para sa mga konektadong VM.

Upang gumana sa mga USB device, ginagamit ang mga serbisyo ng proxy, na nagbibigay, bukod sa iba pang mga bagay:

  • para sa klase ng device na HID (human interface device), nagpapadala ng mga command sa dom0;
  • para sa naaalis na media, pag-redirect ng mga volume ng device sa iba pang mga VM (maliban sa dom0);
  • direktang nagre-redirect sa isang USB device (gamit ang USBIP at mga tool sa pagsasama).

Sa ganitong pagsasaayos, ang matagumpay na pag-atake sa pamamagitan ng network stack o mga konektadong device ay maaaring humantong sa kompromiso ng tumatakbong serbisyong VM lamang, at hindi ang buong system sa kabuuan. At pagkatapos i-restart ang serbisyong VM, mailo-load ito sa orihinal nitong estado.

Mga tool sa pagsasama ng VM

Mayroong ilang mga paraan upang makipag-ugnayan sa desktop ng isang virtual machine - pag-install ng mga application sa guest system o pagtulad sa video gamit ang mga virtualization tool. Ang mga application ng panauhin ay maaaring iba't ibang mga universal remote access tool (RDP, VNC, Spice, atbp.) o iniangkop sa isang partikular na hypervisor (karaniwang tinatawag na mga kagamitang pambisita ang mga naturang tool). Magagamit din ang isang halo-halong opsyon, kapag ang hypervisor ay nag-emulate ng I/O para sa guest system, at panlabas na nagbibigay ng kakayahang gumamit ng protocol na pinagsasama ang I/O, halimbawa, tulad ng Spice. Kasabay nito, ang mga tool sa malayuang pag-access ay karaniwang nag-o-optimize ng imahe, dahil kasangkot ang mga ito sa pagtatrabaho sa pamamagitan ng isang network, na walang positibong epekto sa kalidad ng imahe.

Nagbibigay ang Qubes ng sarili nitong mga tool para sa pagsasama ng VM. Una sa lahat, ito ay isang graphics subsystem - ang mga window mula sa iba't ibang mga VM ay ipinapakita sa isang solong desktop na may sariling frame ng kulay. Sa pangkalahatan, ang mga tool sa pagsasama ay batay sa mga kakayahan ng hypervisor - shared memory (Xen grant table), notification tools (Xen event channel), shared storage xenstore at vchan communication protocol. Sa kanilang tulong, ang mga pangunahing sangkap na qrexec at qubes-rpc, at mga serbisyo ng application ay ipinatupad - pag-redirect ng audio o USB, paglilipat ng mga file o nilalaman ng clipboard, pagpapatupad ng mga utos at paglulunsad ng mga application. Posibleng magtakda ng mga patakarang nagbibigay-daan sa iyong limitahan ang mga serbisyong available sa isang VM. Ang figure sa ibaba ay isang halimbawa ng pamamaraan para sa pagsisimula ng pakikipag-ugnayan ng dalawang VM.

Paggamit ng QubesOS upang gumana sa Windows 7

Kaya, ang trabaho sa VM ay isinasagawa nang hindi gumagamit ng network, na nagbibigay-daan sa ganap na paggamit ng mga autonomous na VM upang maiwasan ang pagtagas ng impormasyon. Halimbawa, ito ay kung paano ipinapatupad ang paghihiwalay ng mga cryptographic na operasyon (PGP/SSH), kapag ang mga pribadong key ay ginagamit sa mga nakahiwalay na VM at hindi lumalampas sa mga ito.

Mga template, application at isang beses na VM

Ang lahat ng gawain ng gumagamit sa Qubes ay ginagawa sa mga virtual machine. Ang pangunahing host system ay ginagamit upang kontrolin at mailarawan ang mga ito. Ang OS ay naka-install kasama ang isang pangunahing hanay ng mga template-based virtual machine (TemplateVM). Ang template na ito ay isang Linux VM na nakabatay sa pamamahagi ng Fedora o Debian, na may mga tool sa pagsasama na naka-install at naka-configure, at nakalaang mga partisyon ng system at user. Ang pag-install at pag-update ng software ay isinasagawa ng isang karaniwang manager ng package (dnf o apt) mula sa mga naka-configure na repository na may mandatoryong digital signature verification (GnuPG). Ang layunin ng naturang mga VM ay upang matiyak ang tiwala sa mga application na VM na inilunsad sa kanilang batayan.

Sa pagsisimula, ang isang application na VM (AppVM) ay gumagamit ng snapshot ng system partition ng kaukulang template ng VM, at kapag nakumpleto na, tinatanggal ang snapshot na ito nang hindi nagse-save ng mga pagbabago. Ang data na kailangan ng user ay naka-imbak sa isang partition ng user na natatangi para sa bawat application VM, na naka-mount sa home directory.

Paggamit ng QubesOS upang gumana sa Windows 7

Ang paggamit ng mga disposable VM (disposableVM) ay maaaring maging kapaki-pakinabang mula sa isang punto ng seguridad. Ang nasabing VM ay nilikha batay sa isang template sa oras ng pagsisimula at inilunsad para sa isang layunin - upang magsagawa ng isang application, pagkumpleto ng trabaho pagkatapos itong isara. Maaaring gamitin ang mga disposable VM upang magbukas ng mga kahina-hinalang file na ang mga nilalaman ay maaaring humantong sa pagsasamantala sa mga partikular na kahinaan sa application. Ang kakayahang magpatakbo ng isang beses na VM ay isinama sa file manager (Nautilus) at email client (Thunderbird).

Magagamit din ang Windows VM para gumawa ng template at isang beses na VM sa pamamagitan ng paglipat ng profile ng user sa isang hiwalay na seksyon. Sa aming bersyon, ang ganitong template ay gagamitin ng user para sa mga gawain sa pangangasiwa at pag-install ng application. Batay sa template, maraming application VM ang gagawin - na may limitadong access sa network (karaniwang sys-firewall na kakayahan) at walang access sa network sa lahat (isang virtual network device ay hindi nilikha). Ang lahat ng mga pagbabago at application na naka-install sa template ay magiging available upang gumana sa mga VM na ito, at kahit na ang mga bookmark program ay ipinakilala, hindi sila magkakaroon ng network access para sa kompromiso.

Lumaban para sa Windows

Ang mga tampok na inilarawan sa itaas ay ang batayan ng Qubes at gumagana nang maayos; ang mga paghihirap ay nagsisimula sa Windows. Upang isama ang Windows, dapat kang gumamit ng isang set ng mga guest tool na Qubes Windows Tools (QWT), na kinabibilangan ng mga driver para sa pagtatrabaho sa Xen, isang qvideo driver at isang set ng mga utility para sa pagpapalitan ng impormasyon (paglipat ng file, clipboard). Ang proseso ng pag-install at pagsasaayos ay nakadokumento nang detalyado sa website ng proyekto, kaya ibabahagi namin ang aming karanasan sa aplikasyon.

Ang pangunahing kahirapan ay ang kakulangan ng suporta para sa mga binuo na tool. Lumilitaw na hindi available ang Key Developers (QWT) at ang proyekto sa pagsasama ng Windows ay naghihintay ng lead developer. Samakatuwid, una sa lahat, kinakailangan upang masuri ang pagganap nito at bumuo ng isang pag-unawa sa posibilidad na suportahan ito nang nakapag-iisa, kung kinakailangan. Ang pinakamahirap na i-develop at i-debug ay ang graphics driver, na ginagaya ang video adapter at display para makabuo ng isang imahe sa shared memory, na nagbibigay-daan sa iyong ipakita ang buong desktop o ang application window nang direkta sa host system window. Sa panahon ng pagsusuri ng pagpapatakbo ng driver, inangkop namin ang code para sa pagpupulong sa isang kapaligiran ng Linux at gumawa ng isang scheme ng pag-debug sa pagitan ng dalawang Windows guest system. Sa yugto ng crossbuild, gumawa kami ng ilang mga pagbabago na nagpasimple sa mga bagay para sa amin, pangunahin sa mga tuntunin ng "tahimik" na pag-install ng mga utility, at inalis din ang nakakainis na pagkasira ng pagganap kapag nagtatrabaho sa isang VM sa mahabang panahon. Iniharap namin ang mga resulta ng trabaho sa isang hiwalay mga repositoryo, kaya hindi nagtagal nakakainspire Nangunguna sa Qubes Developer.

Ang pinaka-kritikal na yugto sa mga tuntunin ng katatagan ng sistema ng panauhin ay ang pagsisimula ng Windows, dito makikita mo ang pamilyar na asul na screen (o kahit na hindi ito nakikita). Para sa karamihan ng mga natukoy na error, mayroong iba't ibang mga workaround - inaalis ang mga driver ng Xen block device, hindi pagpapagana ng VM memory balancing, pag-aayos ng mga setting ng network, at pagliit ng bilang ng mga core. Ang aming mga guest tool ay bumubuo ng mga pag-install at tumatakbo sa ganap na na-update na Windows 7 at Windows 10 (maliban sa qvideo).

Kapag lumipat mula sa isang tunay na kapaligiran patungo sa isang virtual, isang problema ang lumitaw sa pag-activate ng Windows kung ang mga paunang naka-install na bersyon ng OEM ay ginagamit. Ang mga naturang system ay gumagamit ng activation batay sa mga lisensyang tinukoy sa UEFI ng device. Upang maiproseso nang tama ang pag-activate, kinakailangang isalin ang isa sa buong seksyon ng ACPI ng host system (SLIC table) sa guest system at bahagyang i-edit ang iba, na inirehistro ang tagagawa. Pinapayagan ka ng Xen na i-customize ang nilalaman ng ACPI ng mga karagdagang talahanayan, ngunit nang hindi binabago ang mga pangunahing. Ang isang patch mula sa isang katulad na proyekto ng OpenXT, na inangkop para sa Qubes, ay nakatulong sa solusyon. Ang mga pag-aayos ay tila kapaki-pakinabang hindi lamang sa amin at isinalin sa pangunahing Qubes repository at sa Libvirt library.

Ang mga halatang kawalan ng mga tool sa pagsasama ng Windows ay kinabibilangan ng kakulangan ng suporta para sa audio, mga USB device, at ang pagiging kumplikado ng pagtatrabaho sa media, dahil walang suporta sa hardware para sa GPU. Ngunit hindi pinipigilan ng nasa itaas ang paggamit ng VM para sa pagtatrabaho sa mga dokumento ng opisina, at hindi rin nito pinipigilan ang paglulunsad ng mga partikular na aplikasyon ng korporasyon.

Ang pangangailangan na lumipat sa operating mode nang walang network o may limitadong network pagkatapos gumawa ng template ng Windows VM ay natupad sa pamamagitan ng paglikha ng naaangkop na mga pagsasaayos ng mga application VM, at ang posibilidad ng piling pagkonekta ng naaalis na media ay nalutas din ng karaniwang mga tool sa OS - kapag nakakonekta , available ang mga ito sa system VM sys-usb, mula sa kung saan maaari silang "ipasa" sa kinakailangang VM. Ang desktop ng user ay ganito ang hitsura.

Paggamit ng QubesOS upang gumana sa Windows 7

Ang huling bersyon ng system ay positibo (hangga't pinapayagan ng komprehensibong solusyon) na tinanggap ng mga user, at ginawang posible ng mga karaniwang tool ng system na palawakin ang application sa mobile workstation ng user na may access sa pamamagitan ng VPN.

Sa halip ng isang konklusyon

Ang virtualization sa pangkalahatan ay nagpapahintulot sa iyo na bawasan ang mga panganib ng paggamit ng mga Windows system na naiwan nang walang suporta - hindi nito pinipilit ang pagiging tugma sa bagong hardware, pinapayagan ka nitong ibukod o kontrolin ang pag-access sa system sa network o sa pamamagitan ng mga konektadong device, at pinapayagan ka nitong magpatupad ng isang beses na kapaligiran sa paglulunsad.

Batay sa ideya ng paghihiwalay sa pamamagitan ng virtualization, tinutulungan ka ng Qubes OS na gamitin ang mga ito at iba pang mga mekanismo para sa seguridad. Mula sa labas, nakikita ng maraming tao ang Qubes pangunahin bilang isang pagnanais na hindi magpakilala, ngunit ito ay isang kapaki-pakinabang na sistema para sa mga inhinyero, na madalas na nagsasalamangka ng mga proyekto, imprastraktura, at mga lihim upang ma-access ang mga ito, at para sa mga mananaliksik ng seguridad. Ang paghihiwalay ng mga aplikasyon, data at pormalisasyon ng kanilang pakikipag-ugnayan ay ang mga unang hakbang ng pagsusuri ng pagbabanta at disenyo ng sistema ng seguridad. Ang paghihiwalay na ito ay nakakatulong sa pagbuo ng impormasyon at bawasan ang posibilidad ng mga pagkakamali dahil sa kadahilanan ng tao - pagmamadali, pagkapagod, atbp.

Sa kasalukuyan, ang pangunahing diin sa pag-unlad ay ang pagpapalawak ng paggana ng mga kapaligiran ng Linux. Inihahanda ang Bersyon 4.1 para sa pagpapalabas, na ibabatay sa Fedora 31 at isasama ang mga kasalukuyang bersyon ng mga pangunahing sangkap na Xen at Libvirt. Kapansin-pansin na ang Qubes ay nilikha ng mga propesyonal sa seguridad ng impormasyon na palaging naglalabas kaagad ng mga update kung may natukoy na mga bagong banta o error.

afterword

Ang isa sa mga pang-eksperimentong kakayahan na aming binuo ay nagbibigay-daan sa aming lumikha ng mga VM na may suporta para sa pag-access ng bisita sa GPU batay sa teknolohiya ng Intel GVT-g, na nagbibigay-daan sa aming gamitin ang mga kakayahan ng graphics adapter at makabuluhang palawakin ang saklaw ng system. Sa oras ng pagsulat, gumagana ang functionality na ito para sa mga pagsubok na build ng Qubes 4.1, at available sa github.

Pinagmulan: www.habr.com

Magdagdag ng komento