Выкарыстанне QubesOS для працы з Windows 7

На Хабре не так шмат артыкулаў, прысвечаных аперацыйнай сістэме Qubes, а тыя, што я бачыў мала апісваюць вопыт прымянення. Пад катом спадзяюся гэта выправіць на прыкладзе выкарыстання Qubes у якасці сродку абароны (ад) асяроддзі Windows і, адначасна, ацаніць колькасць рускамоўных карыстачоў сістэмы.

Выкарыстанне QubesOS для працы з Windows 7

Чаму Qubes?

Гісторыя з канчаткам тэхпадтрымкі Windows 7 і якая падвышаецца трывожнасць карыстачоў прывяла да неабходнасці арганізаваць працу гэтай АС, улічваючы наступныя патрабаванні:

  • забяспечыць ужыванне паўнавартаснай актываванай Windows 7 з магчымасцю ўсталёўкі карыстачом абнаўленняў і розных прыкладанняў (у тым ліку праз Інтэрнэт);
  • рэалізаваць поўнае або выбарчае выключэнне сеткавых узаемадзеянняў па ўмове (рэжымы аўтаномнай працы і фільтрацыі трафіку);
  • даць магчымасць выбарчага падключэння здымных носьбітаў і прылад.

Такі набор абмежаванняў мяркуе відавочна падрыхтаванага карыстача, паколькі дазваляецца самастойнае адміністраванне, і абмежаванні злучаны не з блакаваннем яго патэнцыйных дзеянняў, а з выключэннем магчымых памылак або праграмнага дэструктыўнага ўздзеяння. Г.зн. унутранага парушальніка ў мадэлі няма.

У пошуку рашэння мы хутка адмовіліся ад ідэі рэалізоўваць абмежаванні ўбудаванымі ці дадатковымі сродкамі Windows, паколькі досыць складана эфектыўна абмежаваць карыстача з паўнамоцтвамі адміністратара, пакідаючы яму магчымасць усталёўваць прыкладанні.

Наступным варыянтам рашэння была ізаляцыя з дапамогай віртуалізацыі. Шырокавядомыя прылады для настольнай віртуалізацыі (напрыклад, такія як virtualbox) дрэнна прыстасаваны для рашэнняў задач бяспекі і пералічаныя абмежаванні прыйдзецца рабіць карыстачу стала перамыкаючы або наладжваючы ўласцівасці гасцёўні віртуальнай машыны (далей ВМ), што павялічвае рызыкі памылак.

У той жа час у нас быў досвед ужывання Qubes у якасці настольнай сістэмы карыстача, але былі сумневы ў стабільнасці працы з гасцявой Windows. Было вырашана праверыць актуальную версію Qubes, паколькі пастаўленыя абмежаванні вельмі добрае ўкладваюцца ў парадыгму гэтай сістэмы, асабліва рэалізацыя шаблонаў віртуальных машын і візуальная інтэграцыя. Далей паспрабую па магчымасці коратка распавесці аб ідэях і інструментары Qubes, на прыкладзе рашэння пастаўленай задачы.

Тыпы віртуалізацыі Xen

У аснове Qubes ляжыць гіпервізор Xen, які мінімізуе ў сабе функцыі кіравання рэсурсамі працэсара, памяццю і віртуальнымі машынамі. Уся астатняя праца з прыладамі сканцэнтравана ў dom0 на аснове ядра Linux (у Qubes для dom0 выкарыстоўваецца дыстрыбутыў Fedora).

Выкарыстанне QubesOS для працы з Windows 7

Xen падтрымлівае некалькі тыпаў віртуалізацыі (я буду прыводзіць прыклады для Intel архітэктуры, хоць Xen падтрымлівае і іншыя):

  • паравіртуалізацыя (PV) - рэжым віртуалізацыі без выкарыстання апаратнай падтрымкі, нагадвае кантэйнерную віртуалізацыю, можа выкарыстоўвацца для сістэм c адаптаваным ядром (у такім рэжыме функцыянуе dom0);
  • поўная віртуалізацыя (HVM) - у такім рэжыме для рэсурсаў працэсара выкарыстоўваецца апаратная падтрымка, а ўсё астатняе абсталяванне эмулюецца сродкамі QEMU. Гэта найболей універсальны спосаб запуску розных АС;
  • паравіртуалізацыя абсталявання (PVH – ParaVirtualized Hardware) – рэжым віртуалізацыі з выкарыстаннем апаратнай падтрымкі калі для працы з абсталяваннем ядро ​​гасцёўні сістэмы выкарыстоўвае драйверы, адаптаваныя да магчымасцяў гіпервізара (напрыклад, падзялянай памяці), здымаючы неабходнасць у эмуляцыі QEMU і падвышаючы прадукцыйнасць уводу-вы. Ядро Linux пачынальна з 4.11 можа працаваць у такім рэжыме.

Выкарыстанне QubesOS для працы з Windows 7

Пачынальна з версіі Qubes 4.0 па меркаваннях бяспекі ідзе адмову ад выкарыстання рэжыму паравіртуалізацыі (у тым ліку ў сувязі з вядомымі ўразлівасцямі архітэктуры Intel, якія часткова здымаюцца выкарыстаннем паўнавартаснай віртуалізацыі), па змаўчанні выкарыстоўваецца рэжым PVH.

Пры выкарыстанні эмуляцыі (рэжым HVM) запуск QEMU ажыццяўляецца ў ізаляванай ВМ званай stubdomain, тым самым зніжаючы рызыкі эксплуатацыі патэнцыйных памылак у рэалізацыі (праект QEMU змяшчае шмат кода, у тым ліку для сумяшчальнасці).
Такі рэжым у нашым выпадку варта выкарыстоўваць для Windows.

Службовыя віртуальныя машыны

У архітэктуры бяспекі Qubes адной з ключавых магчымасцяў гіпервізара з'яўляецца перадача PCI-прылад у госцевае асяроддзе. Выключэнне абсталявання дазваляе ізаляваць хаставую частку сістэмы ад вонкавых нападаў. Xen падтрымлівае гэта для PV і HVM рэжымаў, у другім выпадку для гэтага патрабуецца падтрымка IOMMU (Intel VT-d) – апаратнага кіраванне памяццю для віртуалізаваных прылад.

Такім чынам ствараюцца некалькі сістэмных віртуальных машын:

  • sys-net, якой перадаюцца сеткавыя прылады і якая выкарыстоўваецца ў якасці маста для іншых ВМ, напрыклад, якія рэалізуюць функцыі міжсеткавага экрана ці кліента сеткі VPN;
  • sys-usb, якой перадаюцца USB і іншыя кантролеры перыферыйных прылад;
  • sys-firewall, якая не выкарыстоўвае прылады, а працуе як міжсеткавы экран для падключаюцца ВМ.

Для працы з USB прыладамі выкарыстоўваюцца проксі-сэрвісы, якія забяспечваюць у тым ліку:

  • для класа прылад HID (human interface device) перадачу каманд у dom0;
  • для здымных носьбітаў перанакіраванне тамоў прылад у іншыя ВМ (за выключэннем dom0);
  • перанакіраванне непасрэдна USB прылады (выкарыстоўваецца USBIP і сродкі інтэграцыі).

У такой канфігурацыі паспяховая атака праз сеткавы стэк або якія падключаюцца прылады можа прыводзіць да кампраметацыі толькі запушчанай службовай ВМ, а не ўсёй сістэмы ў цэлым. А пасля перазапуску службовай ВМ яна будзе загружана ў зыходным стане.

Інструменты інтэграцыі ВМ

Ёсць некалькі спосабаў узаемадзеяння з працоўным сталом віртуальнай машыны - усталёўка прыкладанняў у гасцёўню сістэму або эмуляцыя відэа сродкамі віртуалізацыі. У якасці гасцявых прыкладанняў могуць выступаць розныя ўніверсальныя сродкі выдаленага доступу (RDP, VNC, Spice і да т.п.) або адаптаваныя да канкрэтнага гіпервізара (такі інструментацый звычайна называюць гасцявымі ўтылітамі). Можа прымяняцца і змяшаны варыянт, калі гіпервізар эмулюе ўвод-вывад для гасцёўні сістэмы, а звонку дае магчымасць выкарыстоўваць пратакол, які камбінуе ўвод-вывад, напрыклад, як у Spice. Пры гэтым сродкі выдаленага доступу звычайна аптымізуюць малюнак, паколькі мяркуюць працу праз сетку, што не ў лепшы бок уплывае на якасць карцінкі.

Qubes дае ўласныя сродкі для інтэграцыі ВМ. У першую чаргу гэта графічная падсістэма - вокны з розных ВМ адлюстроўваюцца на адзіным працоўным стале з уласным каляровым апраўленнем. У цэлым сродкі інтэграцыі заснаваныя на магчымасцях гіпервізара – падзялянай памяці (Xen grant table), сродках апавяшчэння (Xen event channel), які падзяляецца сховішча xenstore і пратаколе камунікацыі vchan. З іх дапамогай рэалізуюцца базавыя кампаненты qrexec і qubes-rpc, і прыкладныя сэрвісы - перанакіраванне гуку або USB, перадача файлаў або змесціва буфера абмену, выкананне каманд і запуск прыкладанняў. Ёсць магчымасць усталёўваць палітыкі, якая дазваляе абмежаваць даступныя на ВМ сэрвісы. На малюнку ніжэй прыклад працэдуры ініцыялізацыі ўзаемадзеяння дзвюх ВМ.

Выкарыстанне QubesOS для працы з Windows 7

Такім чынам праца ў ВМ робіцца без выкарыстання сеткі, што дазваляе паўнавартасна выкарыстоўваць аўтаномныя ВМ для пазбягання ўцечкі інфармацыі. Напрыклад, так рэалізуецца падзел крыптаграфічных аперацый (PGP/SSH), калі зачыненыя ключы выкарыстоўваюцца ў ізаляваных ВМ і не выходзяць за іх межы.

Шаблоны, прыкладныя і аднаразовыя ВМ

Уся праца карыстача ў Qubes вырабляецца ў віртуальных машынах. Асноўная хаставая сістэма выкарыстоўваецца для кіравання іх працай і візуалізацыі. АС усталёўваецца разам з базавым наборам віртуальных машын на аснове шаблонаў (TemplateVM). Такі шаблон уяўляе сабой Linux ВМ на аснове дыстрыбутыва Fedora або Debian, з усталяванымі і настроенымі сродкамі інтэграцыі, вылучанымі сістэмнымі і карыстацкімі часткамі. Усталёўка і абнаўленне праграмнага забеспячэння вырабляецца штатным мэнэджэрам пакетаў (dnf ці apt) з настроеных рэпазітароў з абавязковай праверкай лічбавага подпісу (GnuPG). Прызначэнне такіх ВМ гэта забеспячэнне даверу да прыкладных ВМ, якія запускаюцца на іх аснове.

Прыкладная ВМ (AppVM) пры старце выкарыстоўвае здымак сістэмнай часткі адпаведнага шаблону ВМ, а пасля завяршэння выдаляе гэты здымак без захавання змен. Неабходныя карыстачу дадзеныя захоўваюцца ва ўнікальным для кожнай прыкладнай ВМ карыстацкай частцы, які мантуецца ў хатні каталог.

Выкарыстанне QubesOS для працы з Windows 7

Карысным з пункту гледжання бяспекі можа быць выкарыстанне аднаразовых ВМ (disposibleVM). Такая ВМ ствараецца на аснове шаблону ў момант старту і запускаецца з адной мэтай - выкананні аднаго прыкладання, завяршаючы працу пасля яго зачынення. Аднаразовыя ВМ могуць выкарыстоўвацца для адкрыцця падазроных файлаў, змесціва якіх можа прыводзіць да эксплуатацыі ўразлівасцяў пэўных прыкладанняў. Магчымасць запуску аднаразовай ВМ інтэграваная ў файлавы мэнэджар (Nautilus) і паштовы кліент (Thunderbird).

Windows ВМ таксама можа быць скарыстана для стварэння шаблону і аднаразовай ВМ, для гэтага профіль карыстача пераносіцца ў асобную частку. У нашым варыянце такі шаблон будзе выкарыстоўвацца карыстачом для задач адміністравання і ўсталёўкі прыкладанняў. На аснове шаблону будуць створаны некалькі прыкладных ВМ - з абмежаваным доступам да сеткі (штатныя магчымасці sys-firewall) і без доступу да сеткі наогул (не ствараецца віртуальная сеткавая прылада). Для працы ў гэтых ВМ будуць даступныя ўсе змены і прыкладанні, якія ўсталёўваюцца ў шаблоне і нават у выпадку ўкаранення праграм-закладак, ім будзе недаступны сеткавы доступ для кампраметацыі.

Барацьба за Windows

Апісаныя вышэй магчымасці з'яўляюцца асновай Qubes і працуюць суцэль стабільна, складанасці пачынаюцца з Windows. Для інтэграцыі Windows неабходна выкарыстоўваць набор гасцявых прылад Qubes Windows Tools (QWT), улучальны ў сябе драйверы для працы з Xen, драйвер qvideo і набор утыліт для інфармацыйнага абмену (файлавы прыём-перадача, буфер абмену). Працэс усталёўкі і налады падрабязна дакументаваны на сайце праекту, таму падзелімся нашым досведам ужывання.

Асноўную складанасць складае ў сутнасці адсутнасць падтрымкі распрацаванага інструментара. Ключавыя распрацоўнікі (QWT), па ўсёй бачнасці, недаступныя і праект інтэграцыі з Windows знаходзіцца ў чаканні кіроўнага распрацоўніка. Таму ў першую чаргу неабходна было ацаніць працаздольнасць і скласці разуменне магчымасці яго падтрымкі пры неабходнасці самастойна. Найболей складаным для распрацоўкі і адладкі з'яўляецца графічны драйвер, які эмулюе відэаадптар і дысплей для фармавання малюнка ў падзялянай памяці, дазваляючы адлюстроўваць увесь працоўны стол ці непасрэдна акно прыкладання ў акне хаставой сістэмы. Падчас аналізу працы драйвера мы адаптавалі код для зборкі ў асяроддзі Linux і адпрацавалі схему адладкі паміж дзвюма гасцёўнямі Windows сістэмамі. На этапе кроссбилда правялі некалькі якія спрашчаюць для нас змен у асноўным у частцы "ціхай" усталёўкі ўтыліт, а таксама ўхілі назойлівую дэградацыю прадукцыйнасці пры працяглай працы ў ВМ. Вынікі працы мы аформілі ў асобным рэпазітары, тым самым ненадоўга натхніўшы вядучага распрацоўніка Qubes.

Найбольш крытычным этапам у плане стабільнасці гасцёўні сістэмы з'яўляецца запуск Windows, тут можна ўбачыць знаёмы сіні экран (ці нават не ўбачыць). Для большасці выяўленых памылак знаходзіліся розныя варыянты абыходу - адмова ад Xen драйвераў блокавых прылад, выключэнне балансавання памяці ВМ, фіксацыя сеткавых налад і мінімізацыя колькасці ядраў. Наша зборка гасцявых сродкаў усталёўваецца і працуе на цалкам абноўленай Windows 7 і Windows 10 (за выключэннем qvideo).

Пры пераходзе з рэальнага асяроддзя ў віртуальную ўзнікае праблема з актывацыяй Windows у выпадку выкарыстання прадусталяваных OEM версій. Такія сістэмы выкарыстоўваюць актывацыю на аснове ліцэнзій, прапісаных у UEFI прылады. Для карэктнай адпрацоўкі актывацыі неабходна трансляваць у гасцёўню сістэму адзін з раздзелаў ACPI хаставой сістэмы цалкам (SLIC table) і крыху правіць іншыя, прапісваючы вытворцы. Xen дазваляе наладжваць змесціва ACPI дадатковых табліц, але без мадыфікацыі асноўных. З рашэннем дапамог патч ад падобнага праекту OpenXT, які быў адаптаваны для Qubes. Выпраўленні здаліся карыснымі не толькі нам і былі трансляваныя ў асноўны рэпазітар Qubes і бібліятэку Libvirt.

Відавочнымі недахопамі сродкаў інтэграцыі Windows варта назваць адсутнасць падтрымкі гуку, USB-прылад і складанасць працы з медыя, паколькі няма апаратнай падтрымкі GPU. Але пералічанае не мяшае выкарыстанню ВМ для працы з офіснымі дакументамі, не перашкаджае запуску спецыфічных карпаратыўных прыкладанняў.

Патрабаванне пераключэння ў рэжым працы без сеткі або з абмежаванай сеткай пасля стварэння шаблону Windows ВМ выконвалася стварэннем адпаведных канфігурацый прыкладных ВМ, а магчымасць выбарчага падлучэння здымных носьбітаў таксама вырашалася штатнымі сродкамі АС — пры падлучэнні яны даступныя ў сістэмнай ВМ sys-usb, адкуль могуць быць. пракінутыя" да неабходнай ВМ. Працоўны стол карыстальніка выглядае прыблізна так.

Выкарыстанне QubesOS для працы з Windows 7

Выніковы варыянт сістэмы дадатна (наколькі дазваляе гэтак комплекснае рашэнне) прыняты карыстачамі, а штатныя сродкі сістэмы дазволілі пашырыць ужыванне да мабільнага працоўнага месца карыстача з доступам праз VPN.

замест заключэння

Віртуалізацыя ў цэлым дазваляе зніжаць рызыкі выкарыстання Windows сістэм, пакінутых без падтрымкі - не прымушае да забеспячэння сумяшчальнасці з новымі апаратнымі сродкамі, дазваляе выключаць або кантраляваць доступ да сістэмы па сетцы або з дапамогай падключаюцца прылад, дазваляе рэалізаваць асяроддзе для аднаразовага запуску.

АС Qubes, заснаваная на ідэі ізаляцыі праз віртуалізацыю, дапамагае выкарыстоўваць гэтыя і іншыя механізмы для забеспячэння бяспекі. З боку шматлікія бачаць у Qubes у першую чаргу імкненне да ананімнасці, але гэта карысная сістэма як для інжынераў, часта якія сумяшчаюць праекты, інфраструктуры і сакрэты доступу да іх, так і для даследнікаў бяспекі. Падзел прыкладанняў, даных і фармалізацыя іх узаемадзеяння гэта пачатковыя крокі аналізу пагроз і праектавання сістэмы абароны. Такі падзел дапамагае структураваць інфармацыю і знізіць верагоднасць памылкі з-за чалавечага фактару - паспеху, стомленасці і да т.п.

У наш час асноўны ўпор у распрацоўцы ідзе на пашырэнне функцыянальнасці Linux асяроддзяў. Рыхтуецца да рэлізу версія 4.1, якая будзе заснавана на Fedora 31 і ўключаць актуальныя версіі ключавых кампанентаў Xen і Libvirt. Варта адзначыць, што Qubes ствараецца прафесіяналамі ў вобласці інфармацыйнай бяспекі, якія заўсёды аператыўна выпускаюць абнаўленні ў выпадку выяўлення новых пагроз ці памылак.

пасляслоўе

Адна з якія развіваюцца намі эксперыментальных магчымасцяў дазваляе ствараць ВМ з падтрымкай гасцявога доступу да GPU на аснове тэхналогіі Intel GVT-g, што дазваляе выкарыстоўваць магчымасці графічнага адаптара і значна пашырыць вобласць ужывання сістэмы. На момант напісання артыкула гэты функцыянал працуе для тэставых зборак Qubes 4.1, і даступны на GitHub.

Крыніца: habr.com

Дадаць каментар