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

Прощай, тормоза!

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

Хакер, номер #095, стр. 095-038-7


Но даже единственный выход из этого положения — создание копии таблиц дескрипторов для каждой ОС и оперативное переключение между ними — не решает всех проблем. И вот почему. Инструкции SGDT/SLDT и SIDT, считывающие значения внутренних регистров процессора, не являются привилегированными, в результате чего гостевая ось читает таблицу дескрипторов основной оси вместо своей собственной! Это относится и к инструкции SMSW, считывающей значение командного слова процессора. В это значение, в частности, попадают биты из регистра CR0, который гостевая ось не должна видеть.

Инструкции POPF/POPFD сохраняют содержимое регистра EFLAGS в памяти без генерации исключения, и хотя попытка модификации привилегированных полей EFLAGS'а приводит к исключению, это не спасает ситуацию. Допустим, гостевая ось заносит в EFLAGS значение X, затрагивающее одно или несколько привилегированных полей. Процессор генерирует исключение, эмулятор перехватывает его и имитирует запись, подсовывая гостевой системе «виртуальный» EFLAGS. Однако чтение EFLAGS, не являясь привилегированной инструкцией, возвращает его немодифицированное содержимое, и вместо ожидаемого X ось видит Y.

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

Вот неполный перечень причин, делающих платформу x86 непригодной для эффективной виртуализации (подробнее об этом можно прочитать в статье «Proceedings of the 9th USENIX Security Symposium», лежащей на http://www.usenix.org/events/sec2000/robin.html)

INFO

Виртуальные выделенные серверы (VDS) – модная ныне технология. Подробнее о том, что это такое и как это организовать, ты можешь прочесть на сайте http://en.wikipedia.org/wiki/Virtual_dedicated_server.

DVD

На DVD ты найдешь полную подборку программ для организации виртуальных машин, в том числе поддерживающих аппаратную эмуляцию: XEN, WMware, Virtual Server, Parallels Workstation.

INFO

В линейке продуктов WMware существует специальное приложение, которое помогает переместить реально установленную операционную систему в виртуальное окружение. Ее имя VMware P2V Assistant.

Назад на стр. 095-038-6  Содержание