Компьютерра
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) и не требует дополнительной прослойки в виде какой-либо операционной системы. За счёт прямой работы с аппаратурой 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 обращается к домену-хранилищу. В нём содержатся девственно чистый образ пустой виртуальной машины (вдруг пользователю приспичит создать машину нового цвета?) и образы дисков с корневой файловой системой и пользовательскими каталогами для всех уже созданных виртуальных машин. Образы эти принадлежат не физическим, а логически дискам и создаются специальным драйвером, именуемым 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 в мире операционных систем не уникальна. Фактически детище Рутковски реализует давно известный принцип «песочницы» (sandbox) — изолированной пользовательской среды, функционирующей в рамках операционной системы, в которую можно помещать потенциально ненадёжный код.
Хорошим примером песочницы является механизм «тюрем» (jails), реализованный в FreeBSD. Другой показательный пример изолирующих программных сред — Web Sandbox, созданный в компании Microsoft, и песочница Google Chrome Sandbox, реализованная в рамках одноимённого браузера и операционной системы Chrome OS.
Но у Qubes OS в сравнении с другими решениями есть весомое преимущество. Это архитектурная целостность и продуманность работы с несколькими независимыми песочницами одновременно в рамках единой пользовательской среды.
Хотите убедиться в этом? Вперёд! Устанавливайте свежий образ Qubes OS Beta 1 и погружайтесь в радугу её цветных окон — виртуальных машин.
Терралаб
Наборы системной логики для десктопных процессоров AMD
Презентация наборов системной логики 990FX, 990X и 970 состоялась 1 июня 2011 года, а первые системные платы на их основе демонстрировались тогда же, в начале июня, на выставке Computex 2011 на Тайване. Несмотря на то что эти чипсеты официально совместимы практически со всеми современными процессорами AMD, включая Athlon, Athlon II, Phenom и Phenom II, вряд ли стоит ожидать широкого распространения плат на их основе до появления новых флагманских чипов AMD FX (Bulldozer), для которых они, собственно, и разрабатывались. К тому же функционально они ничем не отличаются от «старичков».
Пока же продолжается выпуск «заслуженных» наборов микросхем серии 700 образца 2007 года, а также их модернизированных версий — 800-й серии, разработанной в 2009 году, но фактически производящейся серийно лишь с весны 2010 года.
Единственным альтернативным производителем системной логики для современных процессоров AMD осталась компания NVIDIA — VIA и SiS прекратили разработку микросхем для этой платформы более пяти лет назад. При этом модельный ряд чипсетов у NVIDIA не менялся с 2009 года, когда был представлен набор nForce 980a SLI, по сути представляющий собой перемаркированный nForce 780a SLI. В ассортименте NVIDIA три серии микросхем — nForce 700, nForce 900 и GeForce 8000, отличия между которыми носят скорее маркетинговый, чем технический характер.
Напомним основные возможности и характеристики хорошо известных чипсетов AMD 7xx/8xx и NVIDIA nForce/GeForce и познакомимся с перспективными наборами логики AMD 9xx, которые, скорее всего, в обозримом будущем заменят морально устаревшие модели.
Секрет долголетия этой платформы — в заложенной в ней функциональности, которую и по сей день можно оценить как вполне достаточную для массового настольного ПК. В частности, ещё в 2007 году в ней присутствовали полноскоростные интерфейсы PCI Express 2.0 не только для графики, но и для подключения карт расширения, которых не было в чипсетах Intel «пятидесятой серии» образца 2010 года.
Все наборы логики «семисотой» серии рассчитаны на Socket AM2+/AM3 и обратно совместимы с Socket AM2, с некоторыми ограничениями. Главные отличия между разными моделями заключаются в числе поддерживаемых линий PCI Express 2.0, наличии и типе или отсутствии встроенной графики.
В старшей модели 790FX (см. блок-схему) реализованы 38 линий PCI Express 2.0, 32 из которых выделены под графические ускорители. Видеоадаптеры можно устанавливать в самых различных режимах, в том числе две карты в два полноскоростных слота x16 или четыре карты в четыре физических слота x16 с реальной скоростью x8. Ещё шесть линий идут на периферию — например, на один слот x4 и два слота x1 для установки дополнительных контроллеров или карт расширения.
Наборы логики 790X/GX, 785E, 780E отличаются от 790FX поддержкой одного ускорителя в полноскоростном слоте PCI Express x16 или двух в слотах x8, а чипсеты 785G, 780G/V, 770 способны работать лишь с одной видеокартой x16. Встроенные графические ядра с поддержкой программного интерфейса Microsoft DirectX 10 и технологии ATI Hybrid Graphics используются в моделях 790GX (Radeon HD 3300), 785E/G (Radeon HD 4200), 780G (Radeon HD 3200) и 780V/E (Radeon HD 3100).
В чипсетах применяется системная шина HyperTransport 3.0 (в 790FX — с поддержкой слотов HTX для прямого подключения периферии к процессору), работающая на частоте 2,6 ГГц с пропускной способностью до 10,4 Гбайт/с (ширина 16 бит) в одном направлении. Для связи с «южным мостом» служит фирменная шина A-Link Express, построенная на четырёх линиях PCI Express 1.1.
Наборы микросхем серии 700 обычно работают в паре с «южными мостами» SB700/710/750. Самый распространённый «южный мост» SB750 позволяет подключить до шести устройств PCI, до шести накопителей SATA-II с поддержкой RAID-массивов уровней 0, 1, 5 и 10, звуковой кодек класса HD Audio. Предусмотрена возможность установки до двенадцати портов USB 2.0 и двух дополнительных портов USB 1.1.
Обновление семейства системной логики AMD произошло в марте 2010 года, когда были представлены чипсеты 890FX, 890GX и 880G. Главное отличие новой серии от предшественников — полноскоростная «внутричипсетная» шина A-Link Express III с пропускной способностью до 2 Гбайт/с, позволяющая реализовать все потенциальные возможности устройств, подключаемых к быстрым интерфейсам типа SATA-III. Второе важное отличие заключается как раз в поддержке SATA-III c пропускной способностью до 6 Гбит/с в «южном мосту» чипсета.
Старшая модель 890FX — прямой преемник 790FX: здесь мы снова встречаем 38 линий PCI Express 2.0, обеспечивающих установку двух видеокарт в полноскоростных слотах x16 или четырёх карт в слотах x8, а также периферии в слоте x4 и двух слотах x1. Чипсет 890GX способен работать с одной видеокартой PCI Express 2.0 x16 или двумя x8, а 880G — с одной картой x16. Наборы 890GX и 880G получили новую интегрированную графику Radeon HD 4290/4250 c поддержкой программного интерфейса Microsoft DirectX 10.1. Чипсет 870 представляет собой модификацию 880G без встроенного графического ядра. «Северный мост» подключается к процессору при помощи шины HyperTransport 3.0.
В паре с чипсетами «восьмисотой» серии работают два новых «южных моста»: SB850 и упрощённый SB810, без поддержки SATA-III и RAID-массивов уровня 5. Микросхема SB850 обеспечивает работу 4 устройств PCI, двух полноскоростных устройств PCI Express 2.0 x1, шести накопителей SATA-III (6 Гбит/с) c возможностью организации RAID-массивов уровней 0, 1, 5 и 10, двух накопителей IDE (PATA/133), 14 портов USB 2.0 и двух портов USB 1.1, звукового кодека уровня HD Audio и гигабитного сетевого контроллера.
Наборы системной логики 990FX, 990X и 970 были официально представлены 1 июня 2011 года. Эти чипсеты войдут в состав платформы под кодовым названием Scorpius наряду с четырёх-, шести- и восьмиядерными процессорами FX (кодовое название Zambezi) на основе микроархитектуры Bulldozer и графическими ускорителями семейства Radeon HD 6000.
Новые чипсеты рассчитаны на процессоры для разъёма Socket AM3+, но при этом обратно совместимы со всеми чипами для Socket AM3. Поддерживается технология CrossFire X, позволяющая устанавливать в одну систему два, три или четыре дискретных графических ускорителя Radeon одновременно. Предусмотрена возможность организации RAID-массивов различных уровней из накопителей, подключаемых по скоростному интерфейсу SATA-III. Для подключения к процессору применяется обновлённая шина HyperTransport 3.1. В наборах микросхем также реализована технология разгона через фирменную утилиту AMD OverDrive.
Старшая модель 990FX представляет собой не что иное как перемаркированный 890FX: она состоит из тех же самых микросхем, включая «южный мост» SB850, получивший название SB950. Единственное принципиальное отличие заключается в повышении пропускной способности системной шины HyperTransport 3, которая соединяет «северный мост» с процессором, с 5,2 до 6,4 GT/c (гигатрансфер, то есть миллиардов пересылок в секунду).
Все остальные технические характеристики остались неизменными, за исключением, пожалуй, того факта, что в NVIDIA, наконец, согласились разработать драйверы, позволяющие организовывать на платах AMD системы из нескольких видеокарт GeForce в режиме SLI. По информации NVIDIA, эта возможность будет предусмотрена для всех чипсетов 900-й серии, допускающих конфигурации с несколькими дискретными графическими ускорителями. Несомненно, это приятная новость для тех, кто предпочитает одновременно платформу AMD и графику NVIDIA.
Чипсет AMD 990X отличается от флагмана исключительно тем, что он может работать с двумя дискретными видеокартами лишь в режиме PCI Express x8+x8, а AMD 970 поддерживает всего один дискретный графический ускоритель PCI Express x16.
Поскольку NVIDIA — один из ведущих разработчиков графических ускорителей, все её наборы микросхем оснащены встроенным видеоядром: и так называемый медиакоммуникационный процессор MCP серии nForce, и чипсет с видеоускорителем MGPU GeForce, предназначенный для впаивания в системную плату. Уловить разницу между ними не так просто, тем более что даже встроенные в них видеоядра практически идентичны.
Де-факто nForce отличается от GeForce тем, что в первой из них полноскоростной интерфейс PCI Express 2.0 применяется только для подключения дискретной графики, а для периферии используется шина со вдвое меньшей пропускной способностью PCI Express 1.1 — совсем как в чипсетах Intel «пятидесятой» серии. В GeForce все порты PCI Express версии 2.0 и во всех микросхемах предусмотрена поддержка универсального цифрового интерфейса HDMI. При этом ни в одной модели GeForce нет возможности организовывать многокарточные видеосистемы SLI.
В настоящее время на рынке присутствуют материнские платы на базе чипсетов NVIDIA сразу трёх разных серий: nForce 700, nForce 900 и GeForce 8000.
Семейство GeForce 8000, представленное ещё летом 2008 года, состоит из трёх одночиповых моделей: 8100, 8200 и 8300. Во всех трёх используется графическое ядро C77/C78 с шестнадцатью универсальными шейдерными процессорами и поддержкой программного интерфейса Microsoft DirectX 10. Тактовая частота видеоядра — 500 МГц, частота работы шейдерного блока — 1200 МГц у моделей 8100 и 8200 и 1500 МГц у чипсета 8300. Все микросхемы, кроме 8100, поддерживают аппаратное декодирование видео высокой чёткости PureVideo HD. Предусмотрена также работа в режиме Hybrid SLI, то есть с объединением мощности встроенного ядра и дискретной видеокарты.
Старшая модель 8300 обеспечивает полноскоростное подключение графического ускорителя в PCI Express 2.0 x16, а также другой периферии по 3 линиям PCI Express 2.0, 5 устройств PCI, 6 накопителей SATA-II c возможностью организации RAID-массивов уровней 0, 1, 5 и 10, двух накопителей IDE. Предусмотрены 12 портов USB 2.0, гигабитный сетевой адаптер и звуковой кодек класса HD Audio, видеоинтерфейсы DVI, HDMI и VGA. Чипсет связывается с процессором через шину HyperTransport 3.0.
В серию nForce 700, ровесницу GeForce 8000, входят четыре актуальные модели: 720a, 730a, 750a SLI и 780a SLI, причём три младшие — одночиповые, а в состав старшей входит дополнительная микросхема-мост nForce 200, о которой мы скажем чуть ниже.
Функционально микросхемы nForce 720a и 730a в точности повторяют GeForce 8100 и 8200, в том числе и по частотам графического ядра. Разница, как мы уже упоминали, в том, что три линии x1 работают в режиме PCI Express 1.1 и отсутствует поддержка интерфейса HDMI.
В чипе nForce 750a SLI появляется пара полноскоростных слотов PCI Express 2.0 x16 для подключения двух видеокарт в режиме SLI, а также универсальный интерфейс HDMI, но при этом исчезает одна линия PCI Express 1.1, ограничивая возможности расширения системы двумя портами.
Топовая модель nForce 780a SLI позволяет организовать мощные графические системы в режимах Quad SLI (две двухпроцессорные карты GeForce), 3-way SLI (три однопроцессорные карты) и SLI (две однопроцессорные карты). Интерфейс PCI Express 2.0 для подключения графики выделен в отдельную микросхему-мост nForce 200, которая обеспечивает поддержку трёх физических слотов x16 для установки двух видеокарт в режиме SLI (х16-х16) или трёх видеокарт в режиме 3-way SLI (x8-x8-x8). Чип связывается с основной микросхемой по той же шине PCI Express 2.0 x16. Вновь появилась третья линия PCI Express 1.1, остальные возможности логики — такие же, как у nForce 750a SLI.
Серия nForce 900 представлена единственным двухчиповым набором микросхем 980a SLI — по сути, перемаркированным чипсетом 780a SLI, не отличающимся от предшественника решительно ничем, кроме названия и официальной поддержки оперативной памяти DDR3.
Во второй части этой статьи мы познакомимся с некоторыми актуальными системными платами для современных процессоров AMD.