- Red Pill
-
Red Pill — реализация метода обнаружения формы виртуализации, реализуемой программой Blue Pill. Red Pill основывается на отслеживании обработки вызовов x86-архитектуры. Обе программы (и Blue Pill, и Red Pill) разработаны Йоанной Рутковской.
Название «Red Pill» является отсылкой к сцене в фильме Матрица, в которой главному герою на выбор предлагают красную и синюю пилюли. Выбор красной пилюли позволяет герою осознать виртуальность своего привычного мира и выйти в мир реальный. Аналогично, применение Red Pill позволяет операционной системе обнаружить использование гипервизора, то есть выявить виртуализацию. Это позволяет как системному администратору, так и операционной системе принять соответствующие меры, например, заблокировать гипервизор или взять его под контроль. Именно в этом и проводится параллель с фильмом, причем Blue Pill, в свою очередь, намекает на применение синей пилюли, в результате чего операционная система не понимает, что используется виртуализация и считает, что работа проходит для нее естественным образом.
Содержание
Механизм
В x86-архитектуре используются указатели на выделенную память. Как правило, память организована в виде таблицы адресов памяти с адресами и смещениями, при этом более старые записи обладают меньшим смещением от базового адреса. Поскольку регистр таблицы векторов прерываний (Interrupt Descriptor Table Register, сокр. IDTR) находится под контролем операционной системы, то создается альтернативная таблица, с которой работает гипервизор. Для этой новой таблицы выделяется отдельное место в памяти с более старшим адресом, чем у оригинальной таблицы. В системе без дополнительных гипервызовов будет использоваться лишь один IDTR, в то время как при наличии дополнительных гипервызовов их будет несколько. Red Pill использовала проверку
(m[5]>0xd0) ? 1 : 0
, которая устанавливала флаг, если значение выходило за 0xd0.В принципе, подобный подход вполне срабатывал в однопроцессорных системах, но Рутковская считала, что его можно использовать и для систем с несколькими процессорами или ядрами, для которых необходимы более сложные проверки, за счет проверки соответствующих контекстов.
Недостатки
К сожалению, функционал программы обладал серьёзными ограничениями, поэтому программа являлась в большей степени демонстрацией лежащих в ее основе идей, нежели полноценным ПО. Это стало одной из причин, по которой разработка программы была прекращена.
Значимость
После выхода программы последовала масса критики, причем вполне обоснованной. Но, вместе с тем программа вызвала и интерес специалистов. После прекращения поддержки программы Йоанной, сама идея программы была использована в других проектах, разрабатываемых уже другими исследователями.
Ссылки
Категория:- Виртуализация
Wikimedia Foundation. 2010.