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

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

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

Неліктен Qubes?

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

  • обеспечить применение полноценной активированной Windows 7 с возможностью установки пользователем обновлений и различных приложений (в том числе через Интернет);
  • шарттарға (автономды жұмыс және трафикті сүзу режимдері) негізделген желілік өзара әрекеттесуді толық немесе таңдамалы алып тастауды жүзеге асыру;
  • алынбалы құрал мен құрылғыларды таңдаулы түрде қосу мүмкіндігін қамтамасыз етеді.

Бұл шектеулер жиынтығы нақты дайындалған пайдаланушыны болжайды, өйткені тәуелсіз басқаруға рұқсат етілген және шектеулер оның ықтимал әрекеттерін блоктауға байланысты емес, мүмкін қателерді немесе бағдарламалық құралдың деструктивті әсерлерін болдырмауға байланысты. Анау. Модельде ішкі құқық бұзушы жоқ.

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

Келесі шешім виртуализацияны қолдану арқылы оқшаулау болды. Жұмыс үстелін виртуализациялауға арналған танымал құралдар (мысалы, виртуалды жәшік сияқты) қауіпсіздік мәселелерін шешуге жарамсыз және аталған шектеулерді пайдаланушы қонақ виртуалды машинасының (бұдан әрі) сипаттарын үнемі ауыстыру немесе реттеу арқылы орындауы керек. VM ретінде), бұл қателер қаупін арттырады.

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

Xen виртуализациясының түрлері

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

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

Xen виртуалдандырудың бірнеше түрін қолдайды (мен Intel архитектурасына мысалдар келтіремін, бірақ Xen басқаларды қолдайды):

  • паравиртуализация (PV) – контейнерлік виртуализацияны еске түсіретін аппараттық қолдауды пайдаланбай виртуалдандыру режимі бейімделген ядросы бар жүйелер үшін пайдаланылуы мүмкін (dom0 осы режимде жұмыс істейді);
  • толық виртуализация (HVM) - бұл режимде процессор ресурстары үшін аппараттық қолдау пайдаланылады, ал қалған барлық жабдықтар QEMU көмегімен эмуляцияланады. Бұл әртүрлі операциялық жүйелерді іске қосудың ең әмбебап тәсілі;
  • паравиртуализация оборудования (PVH — ParaVirtualized Hardware) — режим виртуализации с использованием аппаратной поддержки когда для работы с оборудованием ядро гостевой системы использует драйверы, адаптированные к возможностям гипервизора (например, разделяемой памяти), снимая необходимость в эмуляции QEMU и повышая производительность ввода-вывода. Ядро Linux начиная с 4.11 может работать в таком режиме.

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

Qubes 4.0 нұсқасынан бастап қауіпсіздік мақсатында паравиртуализация режимін пайдаланудан бас тартылды (соның ішінде толық виртуализацияны қолдану арқылы жартылай жеңілдетілген Intel архитектурасындағы белгілі осалдықтарға байланысты); PVH режимі әдепкі бойынша пайдаланылады.

Эмуляцияны (HVM режимін) пайдалану кезінде QEMU stubdomain деп аталатын оқшауланған VM-де іске қосылады, осылайша іске асырудағы ықтимал қателерді пайдалану тәуекелдерін азайтады (QEMU жобасында көптеген кодтар бар, соның ішінде үйлесімділік үшін).
Такой режим в нашем случае следует использовать для Windows.

Виртуалды машиналарға қызмет көрсету

Qubes қауіпсіздік архитектурасында гипервизордың негізгі мүмкіндіктерінің бірі PCI құрылғыларын қонақ ортасына тасымалдау болып табылады. Аппараттық құралдарды алып тастау жүйенің негізгі бөлігін сыртқы шабуылдардан оқшаулауға мүмкіндік береді. Xen мұны PV және HVM режимдері үшін қолдайды, екінші жағдайда ол IOMMU (Intel VT-d) қолдауын қажет етеді - виртуалдандырылған құрылғылар үшін аппараттық жадты басқару.

Бұл бірнеше жүйелік виртуалды машиналарды жасайды:

  • sys-net, оған желілік құрылғылар тасымалданатын және ол басқа VM үшін көпір ретінде пайдаланылады, мысалы, желіаралық қалқан немесе VPN клиентінің функцияларын жүзеге асыратындар;
  • USB және басқа перифериялық құрылғы контроллері тасымалданатын sys-usb;
  • sys-брандмауэр, ол құрылғыларды пайдаланбайды, бірақ қосылған VM үшін брандмауэр ретінде жұмыс істейді.

USB құрылғыларымен жұмыс істеу үшін прокси қызметтері пайдаланылады, олар басқа нәрселермен қатар:

  • HID (адам интерфейсі құрылғысы) құрылғы класы үшін dom0-ге командаларды жіберу;
  • алынбалы тасушы үшін құрылғы көлемдерін басқа VM-ге қайта бағыттау (dom0-дан басқа);
  • тікелей USB құрылғысына қайта бағыттау (USBIP және біріктіру құралдарын пайдалану).

Мұндай конфигурацияда желілік стек немесе қосылған құрылғылар арқылы сәтті шабуыл бүкіл жүйені емес, тек іске қосылған VM сервисінің бұзылуына әкелуі мүмкін. Ал VM қызметін қайта іске қосқаннан кейін ол бастапқы күйінде жүктеледі.

VM біріктіру құралдары

Виртуалды машинаның жұмыс үстелімен өзара әрекеттесудің бірнеше жолы бар - қонақ жүйесінде қолданбаларды орнату немесе виртуалдандыру құралдарын пайдаланып бейнені эмуляциялау. Қонақ қолданбалары қашықтан қол жеткізудің әртүрлі әмбебап құралдары болуы мүмкін (RDP, VNC, Spice және т. Гипервизор қонақ жүйесі үшін енгізу/шығаруды эмуляциялағанда және мысалы, Spice сияқты енгізу/шығаруды біріктіретін протоколды пайдалану мүмкіндігін қамтамасыз еткенде аралас опцияны да пайдалануға болады. Сонымен қатар қашықтан қол жеткізу құралдары әдетте кескінді оңтайландырады, өйткені олар желі арқылы жұмыс істеуді қамтиды, бұл кескін сапасына оң әсер етпейді.

Qubes VM интеграциясы үшін өз құралдарын ұсынады. Ең алдымен, бұл графикалық ішкі жүйе - әртүрлі VM-нің терезелері жеке түсті жақтауымен бір жұмыс үстелінде көрсетіледі. Жалпы алғанда, біріктіру құралдары гипервизордың мүмкіндіктеріне негізделген - ортақ жад (Xen грант кестесі), хабарландыру құралдары (Xen оқиға арнасы), ортақ сақтау xenstore және vchan байланыс протоколы. Олардың көмегімен qrexec және qubes-rpc негізгі компоненттері және қолданбалы қызметтер жүзеге асырылады - аудио немесе USB қайта бағыттау, файлдарды немесе алмасу буферінің мазмұнын тасымалдау, пәрмендерді орындау және қолданбаларды іске қосу. VM құрылғысында қолжетімді қызметтерді шектеуге мүмкіндік беретін саясаттарды орнатуға болады. Төмендегі сурет екі VM өзара әрекеттесуін инициализациялау процедурасының мысалы болып табылады.

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

Осылайша, VM-де жұмыс желіні пайдаланбай жүзеге асырылады, бұл ақпараттың ағып кетуін болдырмау үшін автономды VM-ді толық пайдалануға мүмкіндік береді. Мысалы, криптографиялық операцияларды бөлу (PGP/SSH) осылай жүзеге асырылады, жеке кілттер оқшауланған VM-де пайдаланылған және олардан асып кетпесе.

Үлгілер, қолданбалар және бір реттік VM

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

Іске қосу кезінде VM қолданбасы (AppVM) сәйкес VM үлгісінің жүйелік бөлігінің суретін пайдаланады және аяқталғаннан кейін өзгерістерді сақтамай бұл суретті жояды. Пайдаланушы талап ететін деректер үй каталогында орнатылған әрбір VM қолданбасы үшін бірегей пайдаланушы бөлімінде сақталады.

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

Бір рет қолданылатын VM (бір реттік VM) пайдалану қауіпсіздік тұрғысынан пайдалы болуы мүмкін. Мұндай VM іске қосу кезінде шаблон негізінде жасалады және бір мақсат үшін іске қосылады - бір қолданбаны орындау, ол жабылғаннан кейін жұмысты аяқтау. Бір рет қолданылатын виртуалды құрылғыларды мазмұны белгілі бір қолданбаның осалдықтарын пайдалануға әкелуі мүмкін күдікті файлдарды ашу үшін пайдалануға болады. Бір реттік VM іске қосу мүмкіндігі файл менеджеріне (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 OS қауіпсіздіктің осы және басқа механизмдерін пайдалануға көмектеседі. Сырттан қарағанда, көптеген адамдар Qubes-ті ең алдымен анонимділікке ұмтылу ретінде қарастырады, бірақ бұл жобаларды, инфрақұрылымдарды және оларға қол жеткізу үшін құпияларды жиі араластыратын инженерлер үшін де, қауіпсіздік зерттеушілері үшін де пайдалы жүйе. Қолданбаларды, деректерді бөлу және олардың өзара әрекеттесуін ресімдеу қауіптерді талдау мен қауіпсіздік жүйесін жобалаудың бастапқы қадамдары болып табылады. Бұл бөлу ақпаратты құрылымдауға және адам факторына байланысты қателер ықтималдығын азайтуға көмектеседі - асығыстық, шаршау және т.б.

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

Кейінгі сөз

Біз әзірлеп жатқан эксперименттік мүмкіндіктердің бірі бізге графикалық адаптердің мүмкіндіктерін пайдалануға және жүйенің қолдану аясын айтарлықтай кеңейтуге мүмкіндік беретін Intel GVT-g технологиясы негізінде GPU-ға қонақтардың қол жеткізуін қолдаумен VM құруға мүмкіндік береді. Жазу кезінде бұл функция Qubes 4.1 сынақ құрастырулары үшін жұмыс істейді және қол жетімді GitHub.

Ақпарат көзі: www.habr.com

DDoS қорғауы бар сайттар үшін сенімді хостинг, VPS VDS серверлерін сатып алыңыз 🔥 DDoS қорғанысы, VPS VDS серверлері бар сенімді веб-сайт хостингін сатып алыңыз | ProHoster