Создавая Qubes OS, Рутковски фактически ничего не меняла в архитектуре Xen. Она просто создала виртуальные машины двух классов. Первый - системные виртуальные машины, в которых работают сетевые компоненты Qubes OS, а также домен-хранилище (Storage Domain), содержащий в зашифрованном виде образы остальных виртуальных машин. Главный системный домен Xen (Dom0) содержит специально модифицированную графическую среду X Window, к которой реализован защищённый графический интерфейс пользователя. Работая с Qubes OS, пользователь видит рабочий стол именно домена Dom0.
Второй класс виртуальных машин Qubes OS - прикладные виртуальные машины (AppVM), содержащие образы операционной системы Linux. Именно в их рамках можно устанавливать и запускать любые программы.
Главная идея Qubes OS заключается в том, что разные программы можно запускать в разных виртуальных машинах. Например, все программы, связанные с интернетом, можно вынести в "зелёную" (green) виртуальную машину, программы обработки документов установить в "жёлтой" (yellow) машине, а всё для работы с кредитными картами и прочей важной и секретной информацией вынести в "красную" (red) машину.
Окна разных виртуальных машин в Qubes OS окрашены в разные цвета
Число таких цветных машин может быть любым, всё зависит от фантазии и степени параноидальности пользователя. Пользовательские виртуальные машины работают параллельно и не пересекаются друг с другом. Значит, вредоносные действия программы в одной из них не распространятся на другие машины. Ну а если всё же потребуется обмениваться данными между машинами, в Qubes OS предусмотрен специальный защищённый буфер обмена.
Домены и связи между ними, созданные в Qubes OS, на которой работает сама Джоанна Рутковска
Что произойдёт, если атакованная вирусами прикладная виртуальная машина Qubes OS всё же рухнет? Ничего. Система просто-напросто восстановит её предыдущее состояние из специально сохранённого зашифрованного образа.
Машина времени Qubes OSПользователь Qubes OS не тревожится по поводу того, что после установки нового драйвера или плагина к браузеру система может упасть. Если уж что и упадёт, то только виртуальная машина, в которой эта установка производилась. Для пользователя этот будет выглядеть как закрытие окон одного цвета - окон, принадлежащих рухнувшей машине.
Если такая катастрофа произошла, Qubes OS обращается к домену-хранилищу. В нём содержатся девственно чистый образ пустой виртуальной машины (вдруг пользователю приспичит создать машину нового цвета?) и образы дисков с корневой файловой системой и пользовательскими каталогами для всех уже созданных виртуальных машин. Образы эти принадлежат не физическим, а логически дискам и создаются специальным драйвером, именуемым Device Mapper. Задача Device Mapper - динамическое отображение дисковых разделов с использованием механизма COW (Copy-On-Write).
Для дополнительной безопасности образы COW созданных виртуальных машин шифруются с помощью технологии LUKS. Завершая работу Qubes OS или одной из её виртуальных машин, домен хранилища сохраняет последние изменения в образах COW. Именно поэтому в Qubes OS имеется возможность "откатить" работу любой виртуальной машины к предыдущему безопасному состоянию.
Прикладные программы находятся в безопасности внутри виртуальных машин. Но что если злоумышленник нацелится на сам гипервизор Xen? В Qubes OS на этот случай используются аппаратные возможности, обеспечивающие так называемую доверенную загрузку системы, которая препятствует любой несанкционированной попытке вмешаться в процесс загрузки Xen (а именно в этот момент гипервизор наиболее уязвим). Базируется доверенная загрузка на спецификации TPM (Trusted Platform Module), описывающей реализацию аппаратного криптопроцессора, позволяющего подтвердить подлинность любого "железного" компонента" компьютера.
В настоящее время Qubes OS поддерживает реализацию TPM в процессорах компании Intel, которая именуется Intel Trusted Execution Technology (Intel TXT).
Братья Qubes OSХитрая организация Qubes OS в мире операционных систем не уникальна. Фактически детище Рутковски реализует давно известный принцип "песочницы" (sandbox) - изолированной пользовательской среды, функционирующей в рамках операционной системы, в которую можно помещать потенциально ненадёжный код.
Хорошим примером песочницы является механизм "тюрем" (jails), реализованный в FreeBSD. Другой показательный пример изолирующих программных сред - Web Sandbox, созданный в компании Microsoft, и песочница Google Chrome Sandbox, реализованная в рамках одноимённого браузера и операционной системы Chrome OS.
Но у Qubes OS в сравнении с другими решениями есть весомое преимущество. Это архитектурная целостность и продуманность работы с несколькими независимыми песочницами одновременно в рамках единой пользовательской среды.