Blue Pill (виртуализация)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 19:09, 17 декабря 2016.

Blue Pill - это кодовое имя для руткита, основанного на x86 виртуализации. Впервые "Голубая пилюля" была представлена разработчиком Йоанной Рутковской на конференции Black Hat Briefings 3 августа 2006 в виде образца реализации для ядра Microsoft Windows Vista. Этот проект хоть и является исследовательским, выполняемым в интересах Хакерского сообщества, он демонстрирует потенциал технологии аппаратной виртуализации, применяемой в совершенно другой сфере, нежели предполагают разработчики. Название "Blue pill" ссылается на одну из таблеток, предлагаемых Морфеусом Нео в фильме "Матрица": "Примешь синюю таблетку — и сказке конец. Ты проснешься в своей постели и поверишь, что это был сон. Примешь красную таблетку — войдешь в страну чудес. Я покажу тебе, глубока ли кроличья нора". Нео (а в нашем случае целевая система для Blue Pill), не подозревает о том, что может быть скомпрометирован.

Концепция

Схема заражения компьютера с помощью руткитов, основанных на технологиях виртуализации

Концепция Blue Pill заключается в захвате запущенного экземпляра операционной системы (захват производится при запуске ОС) «тонким» гипервизором и виртуализацией им остальной части компьютера. Предыдущая операционная система будет все еще поддерживать существующие в ней ссылки на все устройства и файлы, но почти все, включая аппаратные прерывания, запросы данных и даже системное время будут перехватываться гипервизором, который будет отсылать фальшивые ответы.

В 2007 году Джоанна Рутковская и Александр Терешкин опубликовали исходный код Blue Pill, и теперь любой желающий может попробовать свои силы в написании вредоносной системы.

Обзор

Blue Pill использует аппаратную виртуализацию. Изначально реализация Blue Pill основывалась на на виртуализации AMD (AMD-V), впоследствии код "синей таблетки" был адаптирован для технологии (виртуализации) среды Intel VT-х.

Механизм работы руткита выглядит таким образом:

вредоносный код проникает в целевую систему затем происходит незаметная виртуализация хостовой системы, которая превращается в гостевую на данном компьютере, а Blue Pill действует как гипервизор, при этом не требуется перезагрузка операционной системы все необходимые руткиту интерфейсы для взаимодействия с внешней средой «прячутся» за пределами этой системы, а ПО для обнаружения вторжений не может найти руткит, поскольку он расположен вне операционной системы

  1. Вредоносный код проникает в целевую систем
  2. Незаметная виртуализация хостовой системы, которая в свою очередь становится гостевой на данном компьютере.
  3. Blue Pill действует как гипервизор, который перехватывает всё, при этом нет необходимости перезагружать операционную систему.
  4. Интерфейсы взаимодействия со внешней средой для руткита находятся за пределами системы. Программное обеспечение для обнаружения вторжений не находит руткит, потому что он расположен вне операционной системы.

Компания Microsoft совместно с Мичиганским университетом (University of Michigan) в прошлом году также разработала руткит SubVirt, поражающий операционные системы Windows и Linux тем же способом, что и Blue Pill. В отличие от Blue Pill, этот руткит может быть более просто обнаружен, поскольку не может быть установлен «на лету» и вносит некоторые изменения в структуру диска, что делает возможным обнаружение руткита при проверке диска на другом компьютере. Также SubVirt эмулирует аппаратные компоненты, отличающиеся от реального «железа», что позволяет просто обнаружить виртуализацию.

В начале 2007 года вокруг Blue Pill разгорелись ожесточенные споры, в которых одна группа исследователей доказывала, что его обнаружение возможно, а другая говорила о том, что эти техники не всегда точны и требуют специфического подхода вплоть до 50-процентной нагрузки на процессор. На данный момент разработчики Blue Pill говорят о том, что возможно лишь обнаружение используемых на компьютере технологий виртуализации, но не самого руткита. Для обнаружения формы виртуализации, реализуемой программой Blue Pill, Йоанна Рутковская разработала технику Red Pill, которая основывается на отслеживании обработки вызовов x86-архитектур. Однако функционал программы имел большие ограничения, она не являлась полноценным ПО.

Red Pill

Red Pill основывается на отслеживании обработки вызовов x86-архитектуры. В x86-архитектуре используются указатели на выделенную память. Как правило, память организована в виде таблицы адресов памяти с адресами и смещениями, при этом более старые записи обладают меньшим смещением от базового адреса. Поскольку регистр таблицы векторов прерываний (Interrupt Descriptor Table Register, сокр. IDTR) находится под контролем операционной системы, то создается альтернативная таблица, с которой работает гипервизор. Для этой новой таблицы выделяется отдельное место в памяти с более старшим адресом, чем у оригинальной таблицы. В системе без дополнительных гипервызовов будет использоваться лишь один IDTR, в то время как при наличии дополнительных гипервызовов их будет несколько. Red Pill использовала проверку (m[5]>0xd0) ? 1 : 0 , которая устанавливала флаг, если значение выходило за 0xd0.

В принципе, подобный подход вполне срабатывал в однопроцессорных системах, но Рутковская считала, что его можно использовать и для систем с несколькими процессорами или ядрами, для которых необходимы более сложные проверки, за счет проверки соответствующих контекстов.

Заключение

Аппаратная виртуализация значительно упрощает написание программного обеспечения с использованием технологий виртуализации, что значительно увеличит в ближайшее время объем подобного вредоносного ПО. Тем не менее, о реальной опасности говорить еще рано, поскольку трудозатраты на его написание все еще достаточно велики. В прошлом году Microsoft в сотрудничестве с Мичиганским университетом (University of Michigan) разработала руткит SubVirt, который может поражать операционные системы Windows и Linux тем же способом, что и руткит, разработанный Йоанной Рутковской. Компания Microsoft, разработавшая SubVirt, неоднократно заявляла, что затраты на его реализацию сравнимы с затратами на создание операционной системы. Тем не менее, эту опасность стоит иметь в виду, а производители антивирусного ПО в ближайшее время должны включить в свои системы возможности обнаружения руткитов, использующих виртуализацию.

Ссылки