Использование QubesOS для работы с Windows 7

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

Использование QubesOS для работы с Windows 7

Miért Qubes?

История с окончанием техподдержки Windows 7 и повышающаяся тревожность пользователей привела к необходимости организовать работу этой ОС, учитывая следующие требования:

  • обеспечить применение полноценной активированной Windows 7 с возможностью установки пользователем обновлений и различных приложений (в том числе через Интернет);
  • a hálózati interakciók teljes vagy szelektív kizárása a feltételek alapján (autonóm működés és forgalomszűrési módok);
  • lehetővé teszi a cserélhető adathordozók és eszközök szelektív csatlakoztatását.

Ez a korlátozáskészlet egyértelműen felkészült felhasználót feltételez, hiszen megengedett a független adminisztráció, és a korlátozások nem az esetleges cselekvéseinek blokkolására, hanem az esetleges hibák vagy destruktív szoftverhatások kizárására vonatkoznak. Azok. A modellben nincs belső bűnöző.

В поиске решения мы быстро отказались от идеи реализовывать ограничения встроенными или дополнительными средствами Windows, поскольку достаточно сложно эффективно ограничить пользователя с полномочиями администратора, оставляя ему возможность устанавливать приложения.

A következő megoldás a virtualizáció segítségével történő izolálás volt. A jól ismert asztali virtualizációs eszközök (például a virtualbox) nem alkalmasak biztonsági problémák megoldására, és a felsorolt ​​korlátozásokat a felhasználónak kell végrehajtania a vendég virtuális gép (a továbbiakban: mint VM), ami növeli a hibák kockázatát.

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

A Xen virtualizáció típusai

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

Использование QubesOS для работы с Windows 7

A Xen többféle virtualizációt támogat (Példákat mondok az Intel architektúrára, bár a Xen másokat is támogat):

  • paravirtualizáció (PV) - hardveres támogatást nem igénylő virtualizációs mód, amely a konténervirtualizációra emlékeztet, adaptált kernellel rendelkező rendszerekhez használható (a dom0 ebben a módban működik);
  • teljes virtualizáció (HVM) - ebben a módban a processzorerőforrásokhoz hardveres támogatást használnak, az összes többi berendezést pedig a QEMU segítségével emulálják. Ez a leguniverzálisabb módja a különféle operációs rendszerek futtatásának;
  • паравиртуализация оборудования (PVH — ParaVirtualized Hardware) — режим виртуализации с использованием аппаратной поддержки когда для работы с оборудованием ядро гостевой системы использует драйверы, адаптированные к возможностям гипервизора (например, разделяемой памяти), снимая необходимость в эмуляции QEMU и повышая производительность ввода-вывода. Ядро Linux начиная с 4.11 может работать в таком режиме.

Использование QubesOS для работы с Windows 7

A Qubes 4.0-s verziójától kezdődően biztonsági okokból a paravirtualizációs mód használata megszűnt (többek között az Intel architektúra ismert sérülékenységei miatt, amelyeket részben enyhít a teljes virtualizáció használata); alapértelmezés szerint a PVH mód használatos.

Emuláció (HVM mód) használatakor a QEMU egy izolált virtuális gépben, úgynevezett stubdomainben indul el, ezáltal csökkentve a potenciális hibák kihasználásának kockázatát a megvalósításban (a QEMU projekt sok kódot tartalmaz, beleértve a kompatibilitást is).
Такой режим в нашем случае следует использовать для Windows.

Virtuális gépek kiszolgálása

A Qubes biztonsági architektúrában a hypervisor egyik kulcsfontosságú képessége a PCI-eszközök átvitele a vendégkörnyezetbe. A hardveres kizárás lehetővé teszi a rendszer gazdagép részének elkülönítését a külső támadásoktól. A Xen ezt támogatja a PV és HVM módokhoz, a második esetben az IOMMU (Intel VT-d) támogatása szükséges - hardveres memóriakezelés virtualizált eszközökhöz.

Ez több rendszer virtuális gépet hoz létre:

  • sys-net, amelyre hálózati eszközöket továbbítanak, és amely hídként szolgál más virtuális gépekhez, például olyanokhoz, amelyek tűzfal vagy VPN-kliens funkcióit valósítják meg;
  • sys-usb, amelyre az USB és más perifériavezérlők átvitele történik;
  • sys-firewall, amely nem használ eszközöket, de tűzfalként működik a csatlakoztatott virtuális gépek számára.

Az USB-eszközökkel való munkavégzéshez proxyszolgáltatásokat használnak, amelyek többek között a következőket nyújtják:

  • a HID (human interface device) eszközosztályhoz parancsok küldése a dom0-nak;
  • cserélhető adathordozók esetén az eszközkötetek átirányítása más virtuális gépekre (a dom0 kivételével);
  • közvetlen átirányítás USB-eszközre (USBIP és integrációs eszközök használatával).

Egy ilyen konfigurációban a sikeres támadás a hálózati veremen vagy a csatlakoztatott eszközökön keresztül csak a futó szolgáltatási virtuális gép kompromittálásához vezethet, nem pedig a teljes rendszer egészéhez. A szolgáltatási virtuális gép újraindítása után pedig az eredeti állapotában töltődik be.

VM integrációs eszközök

Számos módja van a virtuális gép asztalával való interakciónak – alkalmazások telepítése a vendégrendszerbe vagy videó emuláció virtualizációs eszközök segítségével. A vendégalkalmazások lehetnek különféle univerzális távoli elérési eszközök (RDP, VNC, Spice stb.), vagy egy adott hipervizorhoz adaptálhatók (az ilyen eszközöket általában vendég segédprogramoknak nevezik). Vegyes opció is használható, ha a hypervisor emulálja az I/O-t a vendégrendszer számára, és külsőleg lehetőséget biztosít olyan protokoll használatára, amely egyesíti az I/O-t, például, mint a Spice. Ugyanakkor a távelérési eszközök általában optimalizálják a képet, mivel hálózaton keresztüli munkát jelentenek, ami nincs pozitív hatással a kép minőségére.

A Qubes saját eszközöket biztosít a virtuális gépek integrációjához. Először is, ez egy grafikus alrendszer - a különböző virtuális gépekről származó ablakok egyetlen asztalon jelennek meg, saját színkerettel. Az integrációs eszközök általában a hypervisor képességein alapulnak - megosztott memória (Xen engedélyezési tábla), értesítési eszközök (Xen eseménycsatorna), megosztott tárolási xenstore és vchan kommunikációs protokoll. Segítségükkel megvalósulnak a qrexec és qubes-rpc alapkomponensek, valamint az alkalmazásszolgáltatások - audio vagy USB átirányítás, fájlok vagy vágólap tartalmának átvitele, parancsok végrehajtása és alkalmazások indítása. Lehetőség van olyan házirendek beállítására, amelyek lehetővé teszik a virtuális gépeken elérhető szolgáltatások korlátozását. Az alábbi ábra egy példa a két virtuális gép interakciójának inicializálására szolgáló eljárásra.

Использование QubesOS для работы с Windows 7

Így a virtuális gépben végzett munka hálózat használata nélkül történik, ami lehetővé teszi az autonóm virtuális gépek teljes körű használatát az információszivárgás elkerülése érdekében. Például így valósul meg a kriptográfiai műveletek szétválasztása (PGP/SSH), amikor a magánkulcsokat elszigetelt virtuális gépekben használják, és nem lépik túl azokat.

Sablonok, alkalmazások és egyszeri virtuális gépek

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

Indításkor az alkalmazás virtuális gépe (AppVM) a megfelelő virtuálisgép-sablon rendszerpartíciójának pillanatképét használja, és a befejezés után a módosítások mentése nélkül törli ezt a pillanatképet. A felhasználó által igényelt adatokat a rendszer egy felhasználói partíción tárolja, amely minden egyes alkalmazás-VM-hez egyedi, és amely a kezdőkönyvtárba van beillesztve.

Использование QubesOS для работы с Windows 7

Az eldobható virtuális gépek (disposableVM) használata biztonsági szempontból hasznos lehet. Az ilyen virtuális gépet az indításkor sablon alapján hozzák létre, és egyetlen célból indítják el - egy alkalmazás végrehajtására, a munka befejezésére a bezárás után. Az eldobható virtuális gépek olyan gyanús fájlok megnyitására használhatók, amelyek tartalma bizonyos alkalmazási sebezhetőségek kihasználásához vezethet. Az egyszeri virtuális gép futtatásának képessége be van építve a fájlkezelőbe (Nautilus) és az e-mail kliensbe (Thunderbird).

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

Борьба за Windows

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

Основную сложность составляет по сути отсутствие поддержки разработанного инструментария. Ключевые разработчики (QWT), по всей видимости, недоступны и проект интеграции с Windows находится в ожидании ведущего разработчика. Поэтому в первую очередь необходимо было оценить работоспособность и составить понимание о возможности его поддержки при необходимости самостоятельно. Наиболее сложным для разработки и отладки является графический драйвер, который эмулирует видеоадаптер и дисплей для формирования изображения в разделяемой памяти, позволяя отображать весь рабочий стол или непосредственно окно приложения в окне хостовой системы. В ходе анализа работы драйвера мы адаптировали код для сборки в окружении Linux и отработали схему отладки между двумя гостевыми Windows системами. На этапе кроссбилда провели несколько упрощающих для нас изменений в основном в части "тихой" установки утилит, а также устранили назойливую деградацию производительности при длительной работе в ВМ. Результаты работы мы оформили в отдельном adattárak, tehát nem sokáig inspiráló Vezető Qubes fejlesztő.

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

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

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

Требование переключения в режим работы без сети или с ограниченной сетью после создания шаблона Windows ВМ выполнялось созданием соответствующих конфигураций прикладных ВМ, а возможность избирательного подключения съемных носителей также решалась штатными средствами ОС — при подключении они доступны в системной ВМ sys-usb, откуда могут быть "проброшены" к необходимой ВМ. Рабочий стол пользователя выглядит приблизительно так.

Использование QubesOS для работы с Windows 7

A rendszer végleges verzióját pozitívan fogadták (amennyire ezt az átfogó megoldás lehetővé teszi) a felhasználók, és a rendszer standard eszközei lehetővé tették az alkalmazás kiterjesztését a felhasználó mobil munkaállomására VPN-en keresztül.

Ahelyett, hogy egy következtetés

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

A virtualizáción keresztüli elkülönítés ötlete alapján a Qubes OS segít ezeknek és más biztonsági mechanizmusoknak a kihasználásában. Kívülről sokan elsősorban az anonimitás vágyának tekintik a Qubest, de hasznos rendszer mind a mérnököknek, akik gyakran projektekkel, infrastruktúrákkal, titkokkal zsonglőrködnek, hogy hozzáférjenek azokhoz, mind pedig a biztonsági kutatóknak. Az alkalmazások, adatok szétválasztása és interakciójuk formalizálása a fenyegetéselemzés és a biztonsági rendszer tervezésének kezdeti lépései. Ez a szétválasztás segít strukturálni az információkat, és csökkenti az emberi tényező – kapkodás, fáradtság stb. – miatti hibák valószínűségét.

В настоящее время основной упор в разработке идет на расширение функциональности Linux сред. Готовится к релизу версия 4.1, которая будет основана на Fedora 31 и включать актуальные версии ключевых компонент Xen и Libvirt. Стоит отметить, что Qubes создается профессионалами в области информационной безопасности, которые всегда оперативно выпускают обновления в случае выявления новых угроз или ошибок.

utószó

Az egyik fejlesztés alatt álló kísérleti lehetőség lehetővé teszi, hogy az Intel GVT-g technológián alapuló GPU-hoz vendég hozzáférést támogató virtuális gépeket készítsünk, ami lehetővé teszi a grafikus adapter képességeinek kihasználását és a rendszer hatókörének jelentős bővítését. A cikk írásakor ez a funkció a Qubes 4.1 tesztverzióihoz működik, és a következőn érhető el GitHub.

Forrás: will.com

Vásároljon megbízható tárhelyet DDoS védelemmel, VPS VDS szerverekkel rendelkező webhelyekhez 🔥 Vásároljon megbízható weboldal tárhelyet DDoS védelemmel, VPS VDS szerverekkel | ProHoster