{"id":41811,"date":"2020-02-16T20:45:57","date_gmt":"2020-02-16T17:45:57","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/ispolzovanie-qubesos-dlya-raboty-s-windows-7"},"modified":"2020-02-16T20:45:57","modified_gmt":"2020-02-16T17:45:57","slug":"ispolzovanie-qubesos-dlya-raboty-s-windows-7","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/ispolzovanie-qubesos-dlya-raboty-s-windows-7","title":{"rendered":"U\u017cycie QubesOS do pracy z Windows 7","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Na Habrze nie ma zbyt wielu artyku\u0142\u00f3w po\u015bwi\u0119conych systemowi operacyjnemu Qubes, a te, kt\u00f3re widzia\u0142em, s\u0142abo opisuj\u0105 do\u015bwiadczenia z jego u\u017cytkowaniem. W dalszej cz\u0119\u015bci mam nadziej\u0119 to naprawi\u0107 na przyk\u0142adzie u\u017cycia Qubes jako \u015brodka ochrony \u015brodowiska Windows i jednocze\u015bnie oceni\u0107 liczb\u0119 u\u017cytkownik\u00f3w systemu pos\u0142uguj\u0105cych si\u0119 j\u0119zykiem rosyjskim.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"U\u017cycie QubesOS do pracy z Windows 7\" src=\"\/wp-content\/uploads\/2020\/02\/9625f1a9464dc610d1f3266571cf8929.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Dlaczego Qubes?<\/h2>\n<p><\/p>\n<p>Historia z zako\u0144czeniem wsparcia technicznego dla Windows 7 oraz rosn\u0105ca niepewno\u015b\u0107 u\u017cytkownik\u00f3w doprowadzi\u0142a do potrzeby zorganizowania pracy tego systemu operacyjnego, uwzgl\u0119dniaj\u0105c nast\u0119puj\u0105ce wymagania:<\/p>\n<p><\/p>\n<ul>\n<li>zapewni\u0107 mo\u017cliwo\u015b\u0107 korzystania z pe\u0142noprawnej zaktualizowanej Windows 7, z opcj\u0105 instalacji aktualizacji i r\u00f3\u017cnych aplikacji przez u\u017cytkownika (w tym przez Internet);<\/li>\n<li>zrealizowa\u0107 ca\u0142kowite lub selektywne wy\u0142\u0105czenie interakcji sieciowych na podstawie warunk\u00f3w (tryby pracy offline i filtracji ruchu);<\/li>\n<li>dostarczy\u0107 mo\u017cliwo\u015b\u0107 selektywnego pod\u0142\u0105czania no\u015bnik\u00f3w wymiennych i urz\u0105dze\u0144.<\/li>\n<\/ul>\n<p><\/p>\n<p>Taki zestaw ogranicze\u0144 wymaga wyra\u017anie przygotowanego u\u017cytkownika, poniewa\u017c dozwolone jest samodzielne administrowanie, a ograniczenia nie wynikaj\u0105 z blokowania jego potencjalnych dzia\u0142a\u0144, ale z wykluczenia mo\u017cliwych b\u0142\u0119d\u00f3w lub destrukcyjnego dzia\u0142ania oprogramowania. Tzn. wewn\u0119trznego naruszyciela w modelu nie ma.<\/p>\n<p><\/p>\n<p>W poszukiwaniu rozwi\u0105zania szybko porzucili\u015bmy pomys\u0142 realizacji ogranicze\u0144 za pomoc\u0105 wbudowanych lub dodatkowych narz\u0119dzi Windows, poniewa\u017c wystarczaj\u0105co trudno jest skutecznie ograniczy\u0107 u\u017cytkownika z uprawnieniami administratora, pozostawiaj\u0105c mu mo\u017cliwo\u015b\u0107 instalacji aplikacji.<\/p>\n<p><\/p>\n<p>Nast\u0119pn\u0105 opcj\u0105 rozwi\u0105zania by\u0142a izolacja za pomoc\u0105 wirtualizacji. Powszechnie znane narz\u0119dzia do wirtualizacji na komputerze (jak na przyk\u0142ad virtualbox) s\u0105 s\u0142abo przystosowane do rozwi\u0105zywania zada\u0144 zwi\u0105zanych z bezpiecze\u0144stwem, a wymienione ograniczenia u\u017cytkownik b\u0119dzie musia\u0142 ustawia\u0107 ci\u0105gle, prze\u0142\u0105czaj\u0105c lub konfigurowa\u0107 w\u0142a\u015bciwo\u015bci go\u015bcinnej maszyny wirtualnej (dalej VM), co zwi\u0119ksza ryzyko b\u0142\u0119d\u00f3w.<\/p>\n<p><\/p>\n<p>Jednocze\u015bnie mieli\u015bmy do\u015bwiadczenie w stosowaniu Qubes jako systemu operacyjnego dla u\u017cytkownika, ale pojawi\u0142y si\u0119 w\u0105tpliwo\u015bci co do stabilno\u015bci dzia\u0142ania z go\u015bcinnym systemem Windows. Postanowiono sprawdzi\u0107 aktualn\u0105 wersj\u0119 Qubes, poniewa\u017c na\u0142o\u017cone ograniczenia doskonale wpisuj\u0105 si\u0119 w paradygmat tego systemu, a szczeg\u00f3lnie w implementacj\u0119 szablon\u00f3w maszyn wirtualnych i wizualn\u0105 integracj\u0119. Poni\u017cej postaram si\u0119 w miar\u0119 mo\u017cliwo\u015bci kr\u00f3tko opisa\u0107 idee i narz\u0119dzia Qubes, na przyk\u0142adzie rozwi\u0105zania postawionego zadania.<\/p>\n<p><\/p>\n<h2>Typy wirtualizacji Xen<\/h2>\n<p><\/p>\n<p>Qubes bazuje na hipernadzorze Xen, kt\u00f3ry minimalizuje w sobie funkcje zarz\u0105dzania zasobami procesora, pami\u0119ci\u0105 i maszynami wirtualnymi. Ca\u0142a pozosta\u0142a praca z urz\u0105dzeniami koncentruje si\u0119 w dom0 opartym na j\u0105drze Linux (w Qubes dla dom0 u\u017cywa si\u0119 dystrybucji Fedora).<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"U\u017cycie QubesOS do pracy z Windows 7\" src=\"\/wp-content\/uploads\/2020\/02\/d8bfeb6cc8daef0370c9d567486c0356.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Xen obs\u0142uguje kilka typ\u00f3w wirtualizacji (b\u0119d\u0119 podawa\u0142 przyk\u0142ady dla architektury Intel, chocia\u017c Xen obs\u0142uguje tak\u017ce inne):<\/p>\n<p><\/p>\n<ul>\n<li>p\u00f3\u0142wirtualizacja (PV) \u2014 tryb wirtualizacji bez u\u017cycia wsparcia sprz\u0119towego, przypominaj\u0105cy wirtualizacj\u0119 kontenerow\u0105, mo\u017ce by\u0107 u\u017cywany dla system\u00f3w z dostosowanym j\u0105drem (w takim trybie dzia\u0142a dom0);<\/li>\n<li>pe\u0142na wirtualizacja (HVM) \u2014 w tym trybie dla zasob\u00f3w procesora wykorzystuje si\u0119 wsparcie sprz\u0119towe, a ca\u0142y inny sprz\u0119t jest emulowany za pomoc\u0105 QEMU. To najbardziej uniwersalny spos\u00f3b uruchamiania r\u00f3\u017cnych system\u00f3w operacyjnych;<\/li>\n<li>p\u00f3\u0142wirtualizacja sprz\u0119tu (PVH \u2014 ParaVirtualized Hardware) \u2014 tryb wirtualizacji z u\u017cyciem wsparcia sprz\u0119towego, w kt\u00f3rym do pracy ze sprz\u0119tem j\u0105dro go\u015bcinnego systemu korzysta z driver\u00f3w dostosowanych do mo\u017cliwo\u015bci hipernadzorcy (na przyk\u0142ad pami\u0119ci wsp\u00f3\u0142dzielonej), eliminuj\u0105c potrzeb\u0119 emulacji przez QEMU i zwi\u0119kszaj\u0105c wydajno\u015b\u0107 operacji wej\u015bcia-wyj\u015bcia. J\u0105dro Linux od wersji 4.11 mo\u017ce dzia\u0142a\u0107 w takim trybie.<\/li>\n<\/ul>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"U\u017cycie QubesOS do pracy z Windows 7\" src=\"\/wp-content\/uploads\/2020\/02\/ffafc6a75aa9248659848c4bf08956e1.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Od wersji Qubes 4.0 z powod\u00f3w bezpiecze\u0144stwa rezygnuje si\u0119 z u\u017cywania trybu p\u00f3\u0142wirtualizacji (w tym z powodu znanych luk w architekturze Intel, kt\u00f3re s\u0105 cz\u0119\u015bciowo eliminowane dzi\u0119ki wykorzystaniu pe\u0142nej wirtualizacji), domy\u015blnie u\u017cywany jest tryb PVH.<\/p>\n<p><\/p>\n<p>W trybie emulacji (HVM) uruchomienie QEMU odbywa si\u0119 w izolowanej maszynie wirtualnej zwanej stubdomain, co zmniejsza ryzyko wykorzystania potencjalnych b\u0142\u0119d\u00f3w w implementacji (projekt QEMU zawiera wiele kodu, w tym dla zgodno\u015bci).<br \/>\nTaki tryb w naszym przypadku nale\u017cy stosowa\u0107 dla systemu Windows.<\/p>\n<p><\/p>\n<h2>Maszyny wirtualne pomocnicze<\/h2>\n<p><\/p>\n<p>W architekturze bezpiecze\u0144stwa Qubes jedn\u0105 z kluczowych funkcji hypervisora jest przekazywanie urz\u0105dze\u0144 PCI do \u015brodowiska go\u015bcia. Wyj\u0105tkowe u\u017cycie sprz\u0119tu pozwala na izolacj\u0119 cz\u0119\u015bci hosta od zewn\u0119trznych atak\u00f3w. Xen obs\u0142uguje to w trybach PV i HVM, w drugim przypadku wymagana jest obs\u0142uga IOMMU (Intel VT-d) \u2014 sprz\u0119towe zarz\u0105dzanie pami\u0119ci\u0105 dla wirtualizowanych urz\u0105dze\u0144.<\/p>\n<p><\/p>\n<p>W ten spos\u00f3b tworzone s\u0105 r\u00f3\u017cne systemowe maszyny wirtualne:<\/p>\n<p><\/p>\n<ul>\n<li>sys-net, kt\u00f3rej przekazywane s\u0105 urz\u0105dzenia sieciowe i kt\u00f3ra s\u0142u\u017cy jako most dla innych VM, na przyk\u0142ad realizuj\u0105cych funkcje zapory lub klienta sieci VPN;<\/li>\n<li>sys-usb, kt\u00f3rej przekazywane s\u0105 kontrolery USB i inne kontrolery urz\u0105dze\u0144 peryferyjnych;<\/li>\n<li>sys-firewall, kt\u00f3ra nie u\u017cywa urz\u0105dze\u0144, a dzia\u0142a jako zapora dla pod\u0142\u0105czonych VM.<\/li>\n<\/ul>\n<p><\/p>\n<p>Do obs\u0142ugi urz\u0105dze\u0144 USB u\u017cywane s\u0105 us\u0142ugi proxy, kt\u00f3re zapewniaj\u0105 m.in.:<\/p>\n<p><\/p>\n<ul>\n<li>dla klasy urz\u0105dze\u0144 HID (urz\u0105dzenie wej\u015bciowe) przekazywanie polece\u0144 do dom0;<\/li>\n<li>dla wymiennych no\u015bnik\u00f3w przekazywanie wolumen\u00f3w urz\u0105dze\u0144 do innych VM (z wyj\u0105tkiem dom0);<\/li>\n<li>przekazywanie bezpo\u015brednio urz\u0105dzenia USB (u\u017cywa USBIP i narz\u0119dzi integracyjnych).<\/li>\n<\/ul>\n<p><\/p>\n<p>W takiej konfiguracji udany atak przez stos sieciowy lub pod\u0142\u0105czone urz\u0105dzenia mo\u017ce prowadzi\u0107 do kompromitacji tylko uruchomionej maszyny wirtualnej pomocniczej, a nie ca\u0142ego systemu. A po ponownym uruchomieniu maszyny wirtualnej pomocniczej b\u0119dzie ona \u0142adowana w pierwotnym stanie.<\/p>\n<p><\/p>\n<h2>Narz\u0119dzia integracji VM<\/h2>\n<p><\/p>\n<p>Istnieje kilka sposob\u00f3w interakcji z pulpitami wirtualnej maszyny \u2014 instalacja aplikacji w systemie go\u015bcia lub emulacja wideo za pomoc\u0105 technologii wirtualizacji. Jako aplikacje go\u015bcia mog\u0105 wyst\u0119powa\u0107 r\u00f3\u017cne uniwersalne narz\u0119dzia zdalnego dost\u0119pu (RDP, VNC, Spice itp.) lub dostosowane do konkretnego hipernadzorcy (te narz\u0119dzia zwykle nazywane s\u0105 narz\u0119dziami go\u015bci). Mo\u017cliwa jest r\u00f3wnie\u017c mieszana opcja, w kt\u00f3rej hipernadzorca emuluje wej\u015bcie-wyj\u015bcie dla systemu go\u015bcia, a na zewn\u0105trz umo\u017cliwia korzystanie z protoko\u0142u, kt\u00f3ry \u0142\u0105czy wej\u015bcie-wyj\u015bcie, jak w przypadku Spice. Przy tym, narz\u0119dzia zdalnego dost\u0119pu zazwyczaj optymalizuj\u0105 obraz, poniewa\u017c zak\u0142adaj\u0105 prac\u0119 przez sie\u0107, co negatywnie wp\u0142ywa na jako\u015b\u0107 obrazu.<\/p>\n<p><\/p>\n<p>Qubes oferuje w\u0142asne \u015brodki do integracji WMs. Przede wszystkim to graficzny system \u2014 okna z r\u00f3\u017cnych WMs s\u0105 wy\u015bwietlane na jednej pulpicie z unikalnym kolorowym obramowaniem. Og\u00f3lnie, narz\u0119dzia integracyjne opieraj\u0105 si\u0119 na mo\u017cliwo\u015bciach hipernadzorcy \u2014 pami\u0119ci dzielonej (Xen grant table), metodach powiadomie\u0144 (Xen event channel), dzielonym magazynie xenstore i protokole komunikacyjnym vchan. Dzi\u0119ki nim realizowane s\u0105 podstawowe komponenty qrexec i qubes-rpc, oraz aplikacyjne us\u0142ugi \u2014 przekierowywanie d\u017awi\u0119ku lub USB, transfer plik\u00f3w lub zawarto\u015bci schowka, wykonywanie polece\u0144 i uruchamianie aplikacji. Istnieje mo\u017cliwo\u015b\u0107 ustalania polityk ograniczaj\u0105cych dost\u0119pne us\u0142ugi na WMs. Na poni\u017cszym rysunku przyk\u0142ad procedury inicjalizacji interakcji dw\u00f3ch WMs.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"U\u017cycie QubesOS do pracy z Windows 7\" src=\"\/wp-content\/uploads\/2020\/02\/eb0706697196168d2d50a90e25090497.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>W ten spos\u00f3b praca w WMs odbywa si\u0119 bez korzystania z sieci, co pozwala na pe\u0142ne wykorzystanie autonomicznych WMs w celu unikni\u0119cia wyciek\u00f3w informacji. Na przyk\u0142ad, w ten spos\u00f3b realizowane jest rozdzielenie operacji kryptograficznych (PGP\/SSH), gdzie klucze prywatne s\u0105 u\u017cywane w izolowanych WMs i nie opuszczaj\u0105 ich granic.<\/p>\n<p><\/p>\n<h2>Szablony, aplikacyjne i jednorazowe WMs<\/h2>\n<p><\/p>\n<p>Wszystkie operacje u\u017cytkownika w Qubes odbywaj\u0105 si\u0119 w maszynach wirtualnych. G\u0142\u00f3wna systemowa maszyna s\u0142u\u017cy do zarz\u0105dzania ich prac\u0105 oraz wizualizacji. System operacyjny jest instalowany z podstawowym zestawem maszyn wirtualnych opartych na szablonach (TemplateVM). Taki szablon jest maszyn\u0105 wirtualn\u0105 Linux opart\u0105 na dystrybucji Fedora lub Debian, z zainstalowanymi i skonfigurowanymi narz\u0119dziami integracyjnymi oraz wyodr\u0119bnionymi systemowymi i u\u017cytkownik\u00f3w cz\u0119\u015bciami dysku. Instalacja i aktualizacja oprogramowania odbywa si\u0119 za pomoc\u0105 wbudowanego mened\u017cera pakiet\u00f3w (dnf lub apt) z skonfigurowanych repozytori\u00f3w z obowi\u0105zkowym sprawdzeniem podpisu cyfrowego (GnuPG). Celem tych maszyn wirtualnych jest zapewnienie zaufania do aplikacyjnych maszyn wirtualnych uruchamianych na ich podstawie.<\/p>\n<p><\/p>\n<p>Maszyna wirtualna aplikacji (AppVM) przy uruchomieniu u\u017cywa migawki systemowej odpowiedniego szablonu maszyny wirtualnej, a po zako\u0144czeniu dzia\u0142ania usuwa t\u0119 migawk\u0119 bez zachowywania zmian. Niezb\u0119dne dane u\u017cytkownika s\u0105 przechowywane w unikalnej cz\u0119\u015bci u\u017cytkownika dla ka\u017cdej maszyny wirtualnej aplikacji, kt\u00f3ra jest montowana w katalogu domowym.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"U\u017cycie QubesOS do pracy z Windows 7\" src=\"\/wp-content\/uploads\/2020\/02\/604c4f94fdb9644b589f87104364dc20.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>U\u017cywanie jednorazowych maszyn wirtualnych (disposableVM) mo\u017ce by\u0107 korzystne z punktu widzenia bezpiecze\u0144stwa. Taka maszyna wirtualna jest tworzona na podstawie szablonu w momencie uruchomienia i dzia\u0142a z jedynym celem \u2013 wykonania jednego zastosowania, ko\u0144cz\u0105c swoje dzia\u0142anie po jego zamkni\u0119ciu. Jednorazowe maszyny wirtualne mog\u0105 by\u0107 u\u017cywane do otwierania podejrzanych plik\u00f3w, kt\u00f3rych zawarto\u015b\u0107 mo\u017ce prowadzi\u0107 do wykorzystania podatno\u015bci w konkretnych aplikacjach. Mo\u017cliwo\u015b\u0107 uruchomienia jednorazowej maszyny wirtualnej jest zintegrowana z mened\u017cerem plik\u00f3w (Nautilus) oraz klientem poczty (Thunderbird). <\/p>\n<p><\/p>\n<p>Maszyna wirtualna Windows mo\u017ce by\u0107 r\u00f3wnie\u017c u\u017cywana do tworzenia szablon\u00f3w i jednorazowych maszyn wirtualnych, w tym celu profil u\u017cytkownika jest przenoszony do osobnej cz\u0119\u015bci. W naszej konfiguracji taki szablon b\u0119dzie wykorzystywany przez u\u017cytkownika do zada\u0144 administracyjnych i instalacji aplikacji. Na podstawie szablonu zostanie utworzonych kilka maszyn wirtualnych aplikacji \u2014 z ograniczonym dost\u0119pem do sieci (standardowe mo\u017cliwo\u015bci sys-firewall) oraz bez dost\u0119pu do sieci w og\u00f3le (nie jest tworzone wirtualne urz\u0105dzenie sieciowe). W tych maszynach wirtualnych b\u0119d\u0105 dost\u0119pne wszystkie zmiany i aplikacje instalowane w szablonie, a nawet w przypadku wprowadzenia z\u0142o\u015bliwego oprogramowania, nie b\u0119dzie mia\u0142 on dost\u0119pu do sieci, co uniemo\u017cliwi kompromitacj\u0119.<\/p>\n<p><\/p>\n<h2>Walcz\u0105c o Windows<\/h2>\n<p><\/p>\n<p>Opisane powy\u017cej funkcje s\u0105 podstaw\u0105 Qubes i dzia\u0142aj\u0105 do\u015b\u0107 stabilnie, trudno\u015bci zaczynaj\u0105 si\u0119 z systemem Windows. Aby zintegrowa\u0107 Windows, nale\u017cy u\u017cy\u0107 zestawu narz\u0119dzi go\u015bcia Qubes Windows Tools (QWT), kt\u00f3ry obejmuje sterowniki do pracy z Xen, sterownik qvideo oraz zestaw narz\u0119dzi do wymiany informacji (przesy\u0142anie plik\u00f3w, schowek). Proces instalacji i konfiguracji jest dok\u0142adnie udokumentowany na stronie projektu, dlatego podzielimy si\u0119 naszym do\u015bwiadczeniem z jego zastosowaniem.<\/p>\n<p><\/p>\n<p>G\u0142\u00f3wnym problemem jest w\u0142a\u015bciwie brak wsparcia dla opracowanego narz\u0119dzia. Kluczowi deweloperzy (QWT) s\u0105 najwyra\u017aniej niedost\u0119pni, a projekt integracji z Windows czeka na wiod\u0105cego programist\u0119. Dlatego najpierw nale\u017ca\u0142o oceni\u0107 jego funkcjonalno\u015b\u0107 i zrozumie\u0107 mo\u017cliwo\u015b\u0107 samodzielnego wsparcia w razie potrzeby. Najbardziej skomplikowanym do opracowania i debugowania jest sterownik graficzny, kt\u00f3ry emuluje kart\u0119 wideo i wy\u015bwietlacz, aby tworzy\u0107 obraz w pami\u0119ci wsp\u00f3\u0142dzielonej, pozwalaj\u0105c na wy\u015bwietlenie ca\u0142ego pulpitu lub bezpo\u015brednio okna aplikacji w oknie systemu gospodarza. W trakcie analizy pracy sterownika dostosowali\u015bmy kod do kompilacji w \u015brodowisku Linux i opracowali\u015bmy schemat debugowania mi\u0119dzy dwoma go\u015bcinnymi systemami Windows. Na etapie cross-build wprowadzili\u015bmy kilka uproszcze\u0144 g\u0142\u00f3wnie w zakresie \u201ecichej\u201d instalacji narz\u0119dzi, a tak\u017ce wyeliminowali\u015bmy irytuj\u0105c\u0105 degradacj\u0119 wydajno\u015bci podczas d\u0142ugotrwa\u0142ej pracy w VM. Wyniki naszej pracy zebrali\u015bmy w oddzielnym <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/tabit-pro\/qwt-crossbuild\">repozytorium<\/a><\/noindex>, tym samym na chwil\u0119 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/QubesOS\/qubes-issues\/issues\/5065\">inspiruj\u0105c<\/a><\/noindex> g\u0142\u00f3wnego dewelopera Qubes.<\/p>\n<p><\/p>\n<p>Najbardziej krytycznym etapem pod wzgl\u0119dem stabilno\u015bci systemu go\u015bcia jest uruchamianie Windows, tutaj mo\u017cna zobaczy\u0107 znany niebieski ekran (lub nawet go nie zobaczy\u0107). Dla wi\u0119kszo\u015bci wykrytych b\u0142\u0119d\u00f3w znaleziono r\u00f3\u017cne sposoby obej\u015bcia \u2014 rezygnacja ze sterownik\u00f3w Xen urz\u0105dze\u0144 blokowych, wy\u0142\u0105czenie r\u00f3wnowa\u017cenia pami\u0119ci VM, ustalenie ustawie\u0144 sieciowych i minimalizacja liczby rdzeni. Nasza kompilacja narz\u0119dzi go\u015bci instaluje si\u0119 i dzia\u0142a na w pe\u0142ni zaktualizowanym Windows 7 i Windows 10 (z wyj\u0105tkiem qvideo).<\/p>\n<p><\/p>\n<p>Przy przej\u015bciu z rzeczywistego \u015brodowiska do wirtualnego pojawia si\u0119 problem z aktywacj\u0105 systemu Windows w przypadku korzystania z preinstalowanych wersji OEM. Takie systemy korzystaj\u0105 z aktywacji opartej na licencjach zapisanych w UEFI urz\u0105dzenia. Aby aktywacja mog\u0142a przebiega\u0107 prawid\u0142owo, nale\u017cy przes\u0142a\u0107 do systemu go\u015bcia jedn\u0105 z tabel ACPI z systemu gospodarza w ca\u0142o\u015bci (tabela SLIC) oraz nieco zmodyfikowa\u0107 inne, wpisuj\u0105c producenta. Xen pozwala na konfiguracj\u0119 zawarto\u015bci dodatkowych tabel ACPI, ale bez modyfikacji podstawowych. Z pomoc\u0105 przyszed\u0142 patch z podobnego projektu OpenXT, kt\u00f3ry zosta\u0142 dostosowany do Qubes. Poprawki okaza\u0142y si\u0119 przydatne nie tylko dla nas i zosta\u0142y przeniesione do g\u0142\u00f3wnego repozytorium Qubes oraz biblioteki Libvirt.<\/p>\n<p><\/p>\n<p>Oczywistymi wadami narz\u0119dzi integracji Windows nale\u017cy wymieni\u0107 brak wsparcia dla d\u017awi\u0119ku, urz\u0105dze\u0144 USB oraz trudno\u015bci w pracy z mediami, poniewa\u017c brak jest sprz\u0119towego wsparcia GPU. Jednak to nie przeszkadza w u\u017cywaniu VM do pracy z dokumentami biurowymi ani nie uniemo\u017cliwia uruchamiania specyficznych aplikacji korporacyjnych.<\/p>\n<p><\/p>\n<p>Wymaganie prze\u0142\u0105czenia w tryb pracy offline lub z ograniczon\u0105 sieci\u0105 po utworzeniu szablonu Windows VM realizowano poprzez stworzenie odpowiednich konfiguracji aplikacyjnych VM, a mo\u017cliwo\u015b\u0107 selektywnego pod\u0142\u0105czania no\u015bnik\u00f3w wymiennych r\u00f3wnie\u017c by\u0142a rozwi\u0105zana standardowymi \u015brodkami systemu operacyjnego \u2014 po pod\u0142\u0105czeniu s\u0105 one dost\u0119pne w systemowej VM sys-usb, sk\u0105d mog\u0105 by\u0107 \u201eprzekazywane\u201d do wymaganej VM. Pulpit u\u017cytkownika wygl\u0105da mniej wi\u0119cej tak.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"U\u017cycie QubesOS do pracy z Windows 7\" src=\"\/wp-content\/uploads\/2020\/02\/ed003174a07a412071095cda51f7c2cb.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Finalna wersja systemu zosta\u0142a pozytywnie przyj\u0119ta przez u\u017cytkownik\u00f3w (na ile pozwala na to tak kompleksowe rozwi\u0105zanie), a standardowe narz\u0119dzia systemu umo\u017cliwi\u0142y rozszerzenie zastosowania do mobilnego miejsca pracy u\u017cytkownika z dost\u0119pem przez VPN.<\/p>\n<p><\/p>\n<h2>Zamiast zako\u0144czenia<\/h2>\n<p><\/p>\n<p>Wirtualizacja w og\u00f3le pozwala na zmniejszenie ryzyka korzystania z system\u00f3w Windows, kt\u00f3re zosta\u0142y pozostawione bez wsparcia \u2014 nie zmusza do zapewnienia zgodno\u015bci z nowym sprz\u0119tem, pozwala na wykluczanie lub kontrolowanie dost\u0119pu do systemu przez sie\u0107 lub za po\u015brednictwem pod\u0142\u0105czanych urz\u0105dze\u0144, oraz pozwala na realizacj\u0119 \u015brodowiska do jednorazowego uruchomienia.<\/p>\n<p><\/p>\n<p>System Qubes, based on the idea of isolation through virtualization, helps harness these and other mechanisms to ensure security. From the outside, many see Qubes primarily as a pursuit of anonymity, but it is a useful system for engineers who often juggle projects, infrastructures, and access secrets, as well as for security researchers. Separating applications, data, and formalizing their interactions are initial steps in threat analysis and system design. This separation helps structure information and reduce the likelihood of errors due to human factors like haste, fatigue, etc.<\/p>\n<p><\/p>\n<p>Currently, the main focus of development is on expanding the functionality of Linux environments. Version 4.1 is being prepared for release, which will be based on Fedora 31 and include up-to-date versions of key components Xen and Libvirt. It is worth noting that Qubes is created by professionals in the field of information security, who promptly release updates in case new threats or bugs are identified.<\/p>\n<p><\/p>\n<h2>Epilog<\/h2>\n<p><\/p>\n<p>One of the experimental features we are developing allows the creation of VMs with guest access to GPUs based on Intel GVT-g technology, enabling the use of graphics adapter capabilities and significantly expanding the system's range of applications. At the time of writing this article, this functionality works for test builds of Qubes 4.1 and is available at <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/tabit-pro\/tabit-qubes-repo\">github<\/a><\/noindex>.<\/p>\n<p>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/488234\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u0430 \u0425\u0430\u0431\u0440\u0435 \u043d\u0435 \u0442\u0430\u043a \u043c\u043d\u043e\u0433\u043e \u0441\u0442\u0430\u0442\u0435\u0439, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 Qubes, \u0430 \u0442\u0435, \u0447\u0442\u043e \u044f \u0432\u0438\u0434\u0435\u043b \u043c\u0430\u043b\u043e \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442 \u043e\u043f\u044b\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f. \u041f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c \u043d\u0430\u0434\u0435\u044e\u0441\u044c \u044d\u0442\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f Qubes \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0437\u0430\u0449\u0438\u0442\u044b (\u043e\u0442) \u0441\u0440\u0435\u0434\u044b Windows \u0438, \u043f\u043e\u043f\u0443\u0442\u043d\u043e, \u043e\u0446\u0435\u043d\u0438\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0440\u0443\u0441\u0441\u043a\u043e\u0433\u043e\u0432\u043e\u0440\u044f\u0449\u0438\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u041f\u043e\u0447\u0435\u043c\u0443 Qubes? \u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0441 \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u0435\u043c \u0442\u0435\u0445\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 Windows 7 \u0438 \u043f\u043e\u0432\u044b\u0448\u0430\u044e\u0449\u0430\u044f\u0441\u044f \u0442\u0440\u0435\u0432\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043f\u0440\u0438\u0432\u0435\u043b\u0430 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":41812,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-41811","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041d\u0430 \u0425\u0430\u0431\u0440\u0435 \u043d\u0435 \u0442\u0430\u043a \u043c\u043d\u043e\u0433\u043e \u0441\u0442\u0430\u0442\u0435\u0439, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 Qubes, \u0430 \u0442\u0435, \u0447\u0442\u043e \u044f \u0432\u0438\u0434\u0435\u043b \u043c\u0430\u043b\u043e \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442 \u043e\u043f\u044b\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/ispolzovanie-qubesos-dlya-raboty-s-windows-7\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 QubesOS \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Windows 7 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041d\u0430 \u0425\u0430\u0431\u0440\u0435 \u043d\u0435 \u0442\u0430\u043a \u043c\u043d\u043e\u0433\u043e \u0441\u0442\u0430\u0442\u0435\u0439, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 Qubes, \u0430 \u0442\u0435, \u0447\u0442\u043e \u044f \u0432\u0438\u0434\u0435\u043b \u043c\u0430\u043b\u043e \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442 \u043e\u043f\u044b\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/ispolzovanie-qubesos-dlya-raboty-s-windows-7\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-02-16T17:45:57+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-16T17:45:57+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Using QubesOS for working with Windows 7 | ProHoster","description":"There aren't many articles on Habr dedicated to the Qubes operating system, and those I've seen provide little insight into practical applications.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/ispolzovanie-qubesos-dlya-raboty-s-windows-7","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 QubesOS \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 Windows 7 | ProHoster","og:description":"\u041d\u0430 \u0425\u0430\u0431\u0440\u0435 \u043d\u0435 \u0442\u0430\u043a \u043c\u043d\u043e\u0433\u043e \u0441\u0442\u0430\u0442\u0435\u0439, \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 Qubes, \u0430 \u0442\u0435, \u0447\u0442\u043e \u044f \u0432\u0438\u0434\u0435\u043b \u043c\u0430\u043b\u043e \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442 \u043e\u043f\u044b\u0442 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f.","og:url":"https:\/\/prohoster.info\/pl\/blog\/ispolzovanie-qubesos-dlya-raboty-s-windows-7","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-02-16T17:45:57+00:00","article:modified_time":"2020-02-16T17:45:57+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"41811","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 00:10:22","updated":"2022-10-05 20:31:01","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/41811","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=41811"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/41811\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/41812"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=41811"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=41811"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=41811"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}