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

किन Qubes?
История с окончанием техподдержки Windows 7 и повышающаяся тревожность пользователей привела к необходимости организовать работу этой ОС, учитывая следующие требования:
- обеспечить применение полноценной активированной Windows 7 с возможностью установки пользователем обновлений и различных приложений (в том числе через Интернет);
- सर्तहरू (स्वायत्त सञ्चालन र ट्राफिक फिल्टरिङ मोडहरू) मा आधारित नेटवर्क अन्तरक्रियाहरूको पूर्ण वा चयनात्मक बहिष्कार लागू गर्नुहोस्;
- हटाउन सकिने मिडिया र यन्त्रहरूलाई चयन रूपमा जडान गर्ने क्षमता प्रदान गर्नुहोस्।
प्रतिबन्धहरूको यो सेटले स्पष्ट रूपमा तयार प्रयोगकर्तालाई मान्दछ, किनकि स्वतन्त्र प्रशासनलाई अनुमति दिइएको छ, र प्रतिबन्धहरू उसको सम्भावित कार्यहरू अवरुद्ध गर्नसँग सम्बन्धित छैनन्, तर सम्भावित त्रुटिहरू वा विनाशकारी सफ्टवेयर प्रभावहरूको बहिष्कारसँग सम्बन्धित छन्। ती। मोडेलमा कुनै आन्तरिक अपराधी छैन।
В поиске решения мы быстро отказались от идеи реализовывать ограничения встроенными или дополнительными средствами Windows, поскольку достаточно сложно эффективно ограничить пользователя с полномочиями администратора, оставляя ему возможность устанавливать приложения.
अर्को समाधान भर्चुअलाइजेशन प्रयोग गरेर अलगाव थियो। डेस्कटप भर्चुअलाइजेशनका लागि प्रख्यात उपकरणहरू (उदाहरणका लागि, भर्चुअलबक्स जस्ता) सुरक्षा समस्याहरू समाधान गर्नका लागि कमजोर उपयुक्त छन् र सूचीबद्ध प्रतिबन्धहरू प्रयोगकर्ताले अतिथि भर्चुअल मेसिनको गुणहरू निरन्तर स्विच वा समायोजन गरेर गर्नुपर्दछ (यसपछि उल्लेख गरिएको छ। VM को रूपमा), जसले त्रुटिहरूको जोखिम बढाउँछ।
В то же время у нас был опыт применения Qubes в качестве настольной системы пользователя, но были сомнения в стабильности работы с гостевой Windows. Было решено проверить актуальную версию Qubes, поскольку поставленные ограничения очень хорошо укладываются в парадигму этой системы, особенно реализация шаблонов виртуальных машин и визуальная интеграция. Далее попробую по возможности кратко рассказать об идеях и инструментарии Qubes, на примере решения поставленной задачи.
Xen भर्चुअलाइजेशन को प्रकार
В основе Qubes лежит гипервизор Xen, который, минимизирует в себе функции управления ресурсами процессора, памятью и виртуальными машинами. Вся остальная работа с устройствами сосредоточена в dom0 на основе ядра Linux (в Qubes для dom0 используется дистрибутив Fedora).

Xen ले धेरै प्रकारको भर्चुअलाइजेशनलाई समर्थन गर्दछ (म इंटेल आर्किटेक्चरको लागि उदाहरण दिनेछु, यद्यपि Xen ले अरूलाई समर्थन गर्दछ):
- paravirtualization (PV) - हार्डवेयर समर्थन को प्रयोग बिना एक भर्चुअलाइजेशन मोड, कन्टेनर भर्चुअलाइजेशन को सम्झना दिलाउने, एक अनुकूलित कर्नेल संग प्रणाली को लागी प्रयोग गर्न सकिन्छ (dom0 यो मोड मा काम गर्दछ);
- पूर्ण भर्चुअलाइजेशन (HVM) - यस मोडमा, प्रोसेसर स्रोतहरूको लागि हार्डवेयर समर्थन प्रयोग गरिन्छ, र अन्य सबै उपकरणहरू QEMU प्रयोग गरेर अनुकरण गरिन्छ। यो विभिन्न अपरेटिङ सिस्टमहरू चलाउनको लागि सबैभन्दा विश्वव्यापी तरिका हो;
- паравиртуализация оборудования (PVH — ParaVirtualized Hardware) — режим виртуализации с использованием аппаратной поддержки когда для работы с оборудованием ядро гостевой системы использует драйверы, адаптированные к возможностям гипервизора (например, разделяемой памяти), снимая необходимость в эмуляции QEMU и повышая производительность ввода-вывода. Ядро Linux начиная с 4.11 может работать в таком режиме.

Qubes 4.0 बाट सुरु गर्दै, सुरक्षा कारणहरूका लागि, प्याराभर्चुअलाइजेसन मोडको प्रयोग त्यागिएको छ (इन्टेल वास्तुकलामा ज्ञात कमजोरीहरू सहित, जुन पूर्ण भर्चुअलाइजेसनको प्रयोगद्वारा आंशिक रूपमा कम हुन्छ); PVH मोड पूर्वनिर्धारित रूपमा प्रयोग गरिन्छ।
इमुलेशन (HVM मोड) प्रयोग गर्दा, QEMU लाई स्टबडोमेन भनिने पृथक VM मा लन्च गरिन्छ, जसले गर्दा कार्यान्वयनमा सम्भावित त्रुटिहरूको शोषण गर्ने जोखिमहरू कम हुन्छ (QEMU परियोजनाले अनुकूलता सहित धेरै कोड समावेश गर्दछ)।
Такой режим в нашем случае следует использовать для Windows.
भर्चुअल मेसिनहरू सेवा
Qubes सुरक्षा वास्तुकलामा, हाइपरभाइजरको प्रमुख क्षमताहरू मध्ये एक PCI यन्त्रहरूलाई अतिथि वातावरणमा स्थानान्तरण गर्नु हो। हार्डवेयर बहिष्कारले तपाईंलाई प्रणालीको होस्ट भागलाई बाह्य आक्रमणहरूबाट अलग गर्न अनुमति दिन्छ। Xen ले यसलाई PV र HVM मोडहरूको लागि समर्थन गर्दछ, दोस्रो अवस्थामा यसलाई IOMMU (Intel VT-d) - भर्चुअलाइज्ड उपकरणहरूको लागि हार्डवेयर मेमोरी व्यवस्थापनको लागि समर्थन चाहिन्छ।
यसले धेरै प्रणाली भर्चुअल मेसिनहरू सिर्जना गर्दछ:
- sys-net, जसमा नेटवर्क उपकरणहरू स्थानान्तरण गरिन्छ र जुन अन्य VM हरूका लागि पुलको रूपमा प्रयोग गरिन्छ, उदाहरणका लागि, फायरवाल वा VPN क्लाइन्टको कार्यहरू लागू गर्ने;
- sys-usb, जसमा USB र अन्य परिधीय उपकरण नियन्त्रकहरू स्थानान्तरण गरिन्छ;
- sys-firewall, जसले यन्त्रहरू प्रयोग गर्दैन, तर जडान गरिएका VM हरूका लागि फायरवालको रूपमा काम गर्दछ।
USB उपकरणहरूसँग काम गर्न, प्रोक्सी सेवाहरू प्रयोग गरिन्छ, जसले अन्य चीजहरू बीच प्रदान गर्दछ:
- HID (मानव इन्टरफेस उपकरण) उपकरण वर्गको लागि, dom0 मा आदेशहरू पठाउँदै;
- हटाउन सकिने मिडियाका लागि, अन्य VM मा यन्त्र भोल्युमको पुन:निर्देशन (dom0 बाहेक);
- USB यन्त्रमा सिधै पुन: निर्देशित गर्दै (USBIP र एकीकरण उपकरणहरू प्रयोग गरेर)।
यस्तो कन्फिगरेसनमा, नेटवर्क स्ट्याक वा जडान गरिएका उपकरणहरू मार्फत सफल आक्रमणले मात्र चलिरहेको सेवा VM को सम्झौता गर्न सक्छ, र सम्पूर्ण प्रणालीको रूपमा होइन। र सेवा VM पुन: सुरु गरेपछि, यो यसको मूल अवस्थामा लोड हुनेछ।
VM एकीकरण उपकरण
भर्चुअल मेसिनको डेस्कटपसँग अन्तर्क्रिया गर्ने धेरै तरिकाहरू छन् - अतिथि प्रणालीमा अनुप्रयोगहरू स्थापना गर्ने वा भर्चुअलाइजेशन उपकरणहरू प्रयोग गरेर भिडियो अनुकरण गर्ने। अतिथि अनुप्रयोगहरू विभिन्न सार्वभौमिक रिमोट पहुँच उपकरणहरू (RDP, VNC, स्पाइस, आदि) हुन सक्छन् वा विशिष्ट हाइपरभाइजरमा अनुकूलित हुन्छन् (यस्ता उपकरणहरूलाई सामान्यतया अतिथि उपयोगिताहरू भनिन्छ)। एक मिश्रित विकल्प पनि प्रयोग गर्न सकिन्छ, जब हाइपरभाइजरले अतिथि प्रणालीको लागि I/O अनुकरण गर्दछ, र बाह्य रूपमा I/O संयोजन गर्ने प्रोटोकल प्रयोग गर्ने क्षमता प्रदान गर्दछ, उदाहरणका लागि, स्पाइस जस्तै। एकै समयमा, रिमोट पहुँच उपकरणहरूले सामान्यतया छविलाई अनुकूलन गर्दछ, किनकि तिनीहरू नेटवर्क मार्फत काम गर्ने समावेश गर्दछ, जसले छविको गुणस्तरमा सकारात्मक प्रभाव पार्दैन।
Qubes ले VM एकीकरणको लागि आफ्नै उपकरणहरू प्रदान गर्दछ। सबैभन्दा पहिले, यो एक ग्राफिक्स उपप्रणाली हो - विभिन्न VM बाट विन्डोजहरू एकल डेस्कटपमा तिनीहरूको आफ्नै रङ फ्रेमको साथ प्रदर्शित हुन्छन्। सामान्यतया, एकीकरण उपकरणहरू हाइपरभाइजरको क्षमताहरूमा आधारित हुन्छन् - साझा मेमोरी (Xen अनुदान तालिका), सूचना उपकरणहरू (Xen घटना च्यानल), साझा भण्डारण xenstore र vchan संचार प्रोटोकल। तिनीहरूको सहयोगमा, आधारभूत कम्पोनेन्टहरू qrexec र qubes-rpc, र अनुप्रयोग सेवाहरू लागू हुन्छन् - अडियो वा USB पुनर्निर्देशन, फाइलहरू वा क्लिपबोर्ड सामग्रीहरू स्थानान्तरण गर्ने, आदेशहरू कार्यान्वयन गर्ने र अनुप्रयोगहरू सुरू गर्ने। VM मा उपलब्ध सेवाहरूलाई सीमित गर्न अनुमति दिने नीतिहरू सेट गर्न सम्भव छ। तलको चित्र दुई VM को अन्तरक्रिया सुरु गर्ने प्रक्रियाको उदाहरण हो।

यसैले, VM मा काम नेटवर्क प्रयोग नगरी गरिन्छ, जसले सूचना चुहावटबाट बच्न स्वायत्त VM को पूर्ण प्रयोगलाई अनुमति दिन्छ। उदाहरणका लागि, यसरी क्रिप्टोग्राफिक अपरेसनहरू (PGP/SSH) को पृथकीकरण लागू गरिन्छ, जब निजी कुञ्जीहरू पृथक VM मा प्रयोग गरिन्छ र तिनीहरूभन्दा बाहिर जाँदैनन्।
टेम्प्लेट, एप्लिकेसन र एक पटकको VMs
Вся работа пользователя в Qubes производится в виртуальных машинах. Основная хостовая система используется для управления их работой и визуализации. ОС устанавливается вместе с базовым набором виртуальных машин на основе шаблонов (TemplateVM). Такой шаблон представляет собой Linux ВМ на основе дистрибутива Fedora или Debian, с установленными и настроенными средствами интеграции, выделенными системными и пользовательскими разделами. Установка и обновление программного обеспечения производится штатным менеджером пакетов (dnf или apt) из настроенных репозиториев с обязательной проверкой цифровой подписи (GnuPG). Назначение таких ВМ это обеспечение доверия к прикладным ВМ, запускаемым на их основе.
स्टार्टअपमा, एप्लिकेसन VM (AppVM) ले सम्बन्धित VM टेम्प्लेटको प्रणाली विभाजनको स्न्यापसट प्रयोग गर्दछ, र पूरा भएपछि परिवर्तनहरू बचत नगरी यो स्न्यापसट मेटाउँछ। प्रयोगकर्तालाई आवश्यक डेटा प्रत्येक अनुप्रयोग VM को लागि अद्वितीय प्रयोगकर्ता विभाजनमा भण्डारण गरिएको छ, जुन गृह डाइरेक्टरीमा माउन्ट गरिएको छ।

डिस्पोजेबल VMs (डिस्पोजेबलVM) को प्रयोग सुरक्षा दृष्टिकोणबाट उपयोगी हुन सक्छ। यस्तो VM स्टार्टअपको समयमा टेम्प्लेटमा आधारित बनाइन्छ र एक उद्देश्यको लागि सुरू गरिएको छ - एक अनुप्रयोग कार्यान्वयन गर्न, यो बन्द भएपछि काम पूरा गर्न। डिस्पोजेबल VM हरू संदिग्ध फाइलहरू खोल्न प्रयोग गर्न सकिन्छ जसको सामग्रीले विशेष अनुप्रयोग कमजोरीहरूको शोषण गर्न सक्छ। एक पटकको VM चलाउने क्षमतालाई फाइल प्रबन्धक (नटिलस) र इमेल क्लाइन्ट (थन्डरबर्ड) मा एकीकृत गरिएको छ।
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, откуда могут быть "проброшены" к необходимой ВМ. Рабочий стол пользователя выглядит приблизительно так.

प्रणालीको अन्तिम संस्करण सकारात्मक थियो (जहाँसम्म यस्तो व्यापक समाधानले अनुमति दिन्छ) प्रयोगकर्ताहरूद्वारा स्वीकार गरियो, र प्रणालीको मानक उपकरणहरूले VPN मार्फत पहुँचको साथ प्रयोगकर्ताको मोबाइल कार्यस्थानमा अनुप्रयोग विस्तार गर्न सम्भव बनायो।
बरु एक निष्कर्षमा को
Виртуализация в целом позволяет снижать риски использования Windows систем, оставленных без поддержки — не принуждает к обеспечению совместимости с новыми аппаратными средствами, позволяет исключать или контролировать доступ к системе по сети или посредством подключаемых устройств, позволяет реализовать среду для одноразового запуска.
भर्चुअलाइजेशन मार्फत अलगावको विचारमा आधारित, Qubes OS ले तपाईंलाई सुरक्षाको लागि यी र अन्य संयन्त्रहरूको लाभ उठाउन मद्दत गर्दछ। बाहिरबाट, धेरै मानिसहरूले मुख्यतया गुमनामको इच्छाको रूपमा Qubes लाई देख्छन्, तर यो इन्जिनियरहरूका लागि उपयोगी प्रणाली हो, जसले प्रायः परियोजनाहरू, पूर्वाधारहरू, र तिनीहरूमा पहुँच गर्न गोप्य कुराहरू जुगल गर्छन्, र सुरक्षा अनुसन्धानकर्ताहरूका लागि। अनुप्रयोगहरू, डाटा र तिनीहरूको अन्तरक्रियाको औपचारिकताको विभाजन खतरा विश्लेषण र सुरक्षा प्रणाली डिजाइनको प्रारम्भिक चरणहरू हुन्। यो पृथक्करणले मानव कारक - हतार, थकान, इत्यादिको कारणले जानकारीको संरचना र त्रुटिहरूको सम्भावना कम गर्न मद्दत गर्दछ।
В настоящее время основной упор в разработке идет на расширение функциональности Linux сред. Готовится к релизу версия 4.1, которая будет основана на Fedora 31 и включать актуальные версии ключевых компонент Xen и Libvirt. Стоит отметить, что Qubes создается профессионалами в области информационной безопасности, которые всегда оперативно выпускают обновления в случае выявления новых угроз или ошибок.
पछिशब्द
हामीले विकास गरिरहेका प्रयोगात्मक क्षमताहरू मध्ये एउटाले हामीलाई Intel GVT-g प्रविधिमा आधारित GPU मा अतिथि पहुँचको लागि समर्थन सहित VM हरू सिर्जना गर्न अनुमति दिन्छ, जसले हामीलाई ग्राफिक्स एडाप्टरको क्षमताहरू प्रयोग गर्न र प्रणालीको दायरालाई उल्लेखनीय रूपमा विस्तार गर्न अनुमति दिन्छ। लेखन को समयमा, यो कार्यक्षमता Qubes 4.1 को परीक्षण निर्माण को लागी काम गर्दछ, र मा उपलब्ध छ .
स्रोत: www.habr.com
