Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #95, НОЯБРЬ 2006 г.

Зверский взлом Windows Vista

Крис Касперски

Хакер, номер #095, стр. 095-068-5


В отличие от AMD, Intel не стала валить все в одну большую кучу и выпустила отдельный документ: ftp://download.intel.com/technology/computing/vptech/C97063-002.pdf. И хотя без руководства по системному программированию при написании собственного Монитора Виртуальных Машин все равно не обойтись, его основные положения большинству хакеров уже известны. Конечно, для тех, кто еще не знаком с защищенным режимом, создание Голубой Пилюли окажется настоящим испытанием, но… это уже их проблемы.

Рассмотрим устройство Голубой Пилюли, заточенной Жанной специально под процессоры AMD x86-64 (на процессорах Intel все будет точно так же, только немного по-другому). «Проглотив» Голубую Пилюлю (CALL bluepill), ядро передает управление главной функции rootkit'а (условно обозначенной PROC bluepill), которая создает виртуальную машину. Затем Пилюля подготавливает все необходимые структуры данных и вызывает машинную команду VMRUM (на Intel процессорах это будет VMXON), устанавливающую гипервизор/VMM, который погружает операционную систему в виртуальный мир и «одевает на ее глаза очки». После этого следует перехват всех каналов взаимодействия последней с «внешним миром»: с портами ввода-вывода, служебными регистрами процессора, физической оперативной памятью и т.д. Гипервизор будет «подсовывать» операционной системе только ту информацию, которую ей позволено видеть, надежно скрывая от ее глаз свое присутствие.

Гипервизор/VMM представляет собой достаточно сложную программу, которую не так-то просто написать и еще сложнее отладить, но ведь нам так хочется реализовать свою собственную Голубую Пилюлю, не правда ли? Сама Жанна, кстати, так и не справилась с этой задачей, о чем открыто признается в своем блоге в заметке «The Blue Pill Hype» («Слухи вокруг Голубой Пилюли») на theinvisiblethings.blogspot.com/2006/07/blue-pill-hype.html. Вот фрагмент из этой заметки в переводе: «Все началось со статьи Нарьяна Рьяна из eWeek. Статья вполне адекватная, за исключением одной маленькой детали, вводящей читателей в заблуждение. В статье утверждается, что я уже реализовала «прототип Голубой Пилюли, создающий на 100% не обнаруживаемую мальварь», что неправда. Если бы это было правдой, я бы не стала называть свою реализацию «прототипом», подразумевающим наличие опытного продукта... Прототип Голубой Пилюли, имеющийся у меня в настоящий момент, еще не полностью реализован, но это неважно, поскольку создание виртуальной машины для запуска операционной системы и реализация всех остальных фич - это всего лишь вопрос следования спецификациям на Pacific'у».

Чтобы приблизить себя к цели на несколько световых лет и не повторять уже сделанное, мы можем «выдрать» ядро из готового эмулятора и слегка доработать его «напильником» для наших хакерских нужд, дописав сравнительно небольшую порцию кода. Естественно, это должен быть эмулятор, распространяющийся в открытых исходных текстах на бесплатной основе. Например, XEN, поддерживающий обе архитектуры (Pacifica и Vanderpool одновременно) и абстрагирующий нас от конкретных аппаратных особенностей, хотя и не избавляющий нас от необходимости реализовывать отдельные версии rootkit'а для x86- и x86-64-платформ. Архив с исходными текстами третьей версии XEN'а (текущей стабильной версии на данный момент) можно слить с http://www.cl.cam.ac.uk/Research/SRG/netos/xen/downloads/xen-3.0-testing-src.tgz, а сам сайт находится по адресу: http://www.cl.cam.ac.uk/Research/SRG/netos/xen.

Назад на стр. 095-068-4  Содержание  Вперед на стр. 095-068-6