Джоанна Рутковска только с виду хрупкая девушка. В виртуальном мире она легко заткнёт за пояс любую Тринити
В своем напичканном техническими терминами выступлении она продемонстрировала интереснейшую идею создания стопроцентно неуловимого руткита - идею, которая чуть позже и легла в основу её более праведной разработки - операционной системы Qubes OS.
Деструктивное творение Рутковски и товарищей называлось Blue Pill. Пилюлей свой руткит исследователи безопасности назвали неспроста. Согласно их задумке, вредоносный код работал на базе безопасной виртуальной машины (Secure Virtual Mashine) под названием Pacifica - одного из первых решений поддержки аппаратной виртуализации от компании AMD и 'на лету' помещал код операционной системы атакованного компьютера внутрь виртуальной машины. Перемещённая операционная система (в то время это была Windows Vista) продолжала работать, думая, что трудится непосредственно на компьютере. На самом же деле ей, упрятанной внутри виртуальной машины, скармливалась ложная информация, в то время как за пределами 'Матрицы' можно безнаказанно творить всякие безобразия. Допустим, организовать центр управления ботнетом.
Схема работы руткита Blue Pill предельно проста: запихнуть атакуемую систему в виртуальную машину, где 'всё всегда хорошо', а снаружи делать что угодно
Соответственно и пользователь, работающий на заражённом Blue Pill компьютере, не подозревал, что на экране монитора его родная система работает в виртуальном мире.
В принципе идея Рутковски была неоригинальна. Параллельно с ней к подобному решению пришла команда разработчиков из (ну надо же!) того же Microsoft Research, представив в 2006 году совместно с исследователями из мичиганского университета на симпозиуме по приватности и безопасности IEEE руткит- технологию SubVirt.
Руткиты класса Blue Pill и SubVirt, использующие идею аппаратно реализованной скрытой виртуальной машины, отнесли к новому классу, названному Hypervisor level rootkits. Так благая идея аппаратной поддержки виртуализации, предложенная разработчиками процессоров, была использована для далеко не благих целей.
К слову сказать, майкрософтовская разработка SubVirt имела сугубо исследовательский характер. Её целью была демонстрация возможностей руткитов hypervisor level. В отличие от неё, Blue Pill Рутковски был крепко сбит и вполне приспособлен для повседневного использования.
Только применять его в зловредных целях Джоанна не планировала. Вместо этого она создала консалтинговую компанию по безопасности компьютерных систем с красноречивым названием The Invisible Things Lab и в рамках одного из проектов приступила к разработке операционной системы на основе решений Blue Pill.
Новое творение Рутковски было названо Qubes OS. Так же как сертифицированные системы и системы на основе управляемого выполнения кода, Qubes OS относится к классу доверенных операционных систем (trusted OS). Это означает, что её пользователь может трудиться, не волнуясь о проблемах с криво написанными драйверами, плагинами браузеров, прячущими вредоносный код, и уязвимостями в ядре операционной системы.
Только в отличие от систем первых двух типов, дотошно исследующих на легитимность работающий в их рамках код, Qubes OS допускает использование любого, даже потенциально опасного кода. Почему? Потому, что так же, как и в Blue Pill, этот код будет выполняться внутри виртуальной машины. И если уж он навредит, то только ей. Ну а перезапустить с обнулёнными параметрами рухнувшую виртуальную машину проще простого.
Формально проект Qubes OS относится к решениям с открытыми исходниками и базируется на Linux. Это означает, что в рамках Qubes OS можно запускать массу написанных для Linux программ и использовать большинство совместимых с Linux драйверов устройств.
Архитектура Qubes OS базируется на гипервизоре виртуальных машин Xen - свободном проекте компании Citrix System, которая приобрела его у разработчика - кембриджского профессора Йена Пратта. Гипервизор Xen относится к системам виртуализации 'на железе' (bare-metal) и не требует дополнительной прослойки в виде какой-либо операционной системы. За счёт прямой работы с аппаратурой Xen является весьма нетребовательным к ресурсам, что даёт возможность создавать множество высокопроизводительных виртуальных машин. Множество хостингов, облачных сервисов и виртуальных приватных серверов, которыми мы пользуемся, работают на базе виртуализации Xen.
Гипервизор Xen устроен очень просто. Базируясь на спецификации IOMMU, обеспечивающей прямое подключение шин ввода- вывода к оперативной памяти, реализованных в процессорах разных производителей, Xen устанавливается на компьютер вместо операционной системы. Его задача - управление работой виртуальных машин и их обращениями к 'железу'. Поверх Xen работает множество виртуальных машин, которые в его терминах именуются доменами (domain). Один из доменов (Domain0 или Dom0) считается привилегированным и предназначен для контролируемого прямого доступа к аппаратуре и управления запросами операционных систем, работающих в других виртуальных машинах. Остальные домены называются пользовательскими (DomainU), и именно в них размещаются гостевые операционные системы.
Архитектура Qubes проста: гипервизор Xen и куча цветных виртуальных машин
Создавая 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 не тревожится по поводу того, что после установки нового драйвера или плагина к браузеру система может упасть. Если уж что и упадёт, то только виртуальная машина, в которой эта установка производилась. Для пользователя этот будет выглядеть как закрытие окон одного цвета - окон, принадлежащих рухнувшей машине.