Компьютерра
27.06.2011 - 03.07.2011
Статьи
Система строгого режима: Qubes OS
Известная пословица гласит о благих намерениях, которыми облицована дорога в Пекло. Однако мало кто задумывается о философском инвертировании этого изречения. Частенько чрезвычайно адские штучки ложатся в основу идей, работающих во благо.
В мире операционных систем новые архитектурные решения не всегда появляются благодаря белому и пушистому положительному почину: «А давайте-ка сотворим добро — сделаем сверхнадёжную и безопасную систему с нуля». Порой удачные архитектурные решения разработчику нашёптывает парень с рожками и в красном трико, сидящий у него на плече.
И если разработчики Microsoft Singularity, приспосабливая идею управляемого выполнения кода к ядру вновь изобретаемой операционной системы, пеклись именно о благе пользователей, то создатели героини этой статьи — операционной системы Qubes OS поначалу и не помышляли о столь мирных применениях. Они трудились в поте хакерского лица над хитрым механизмом скрытого манипулирования компьютером ничего не ведающего пользователя. Воплотив этот механизм, они сообразили, что он отлично подходит для архитектуры новой надёжной и безопасной системы.
Август 2006 года. Конференция Black Hat в Лас-Вегасе, где разные «тёмные личности» демонстрируют своё мастерство компьютерного взлома и проникновения.
Именно на этом конвенте польский исследователь безопасности из компании Advanced Malware Labs, девушка (!) Джоанна Рутковска (Joanna Rutkowska) выступила с докладом «Свержение ядра Windows Vista потехи ради и для заработка» (Subverting Vista kernel for fun and profit).
В своем напичканном техническими терминами выступлении она продемонстрировала интереснейшую идею создания стопроцентно неуловимого руткита — идею, которая чуть позже и легла в основу её более праведной разработки — операционной системы 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) и не требует дополнительной прослойки в виде какой-либо операционной системы. За счёт прямой работы с