Сейчас на сайте
Сейчас на сайте 0 пользователей и 0 гостей.

Вынести вредоносный код за пределы «матрицы»

Для этого между операционной системой и оборудованием внедряется дополнительная прослойка, представленная монитором виртуальных машин (VMM). На стадии загрузки машины управление от BIOS переходит не к загрузчику пользовательской операционной системы, а к VMM, который в свою очередь загружает установленную операционную систему. Таким образом, последняя оказывается «виртуальной машиной». Все взаимодействие между программами пользователя и оборудованием происходит через VMM.

Параллельно пользовательской VMM загружает еще одну операционную систему — точно так же, как вы загружаете несколько виртуальных машин в VMWare. В ней могут быть запущены вредоносные программы. Обе операционные системы базируются на общей «шине» — VMM, которая в свою очередь имеет прямой доступ к оборудованию.

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

Для реализации своего PoC на Windows XP исследователям потребовался исходный код Virtual PC, гостевая «вредная» ОС и некоторая модификация драйверов операционной системы пользователя.

Несмотря на кажущуюся опасность данной PoC, поводов для беспокойства мы не видим.

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

Во-вторых, наличие прослойки между оборудованием и операционной системой невозможно скрыть. Дополнительный уровень абстракции имеет побочные эффекты:

  • замедление загрузки системы;

  • изменение тайминга процессора и замедление функционирования системы;

  • уменьшение доступного пространства на диске (у исследователей VMR занял 100-200 МБ);

  • ухудшение работы с графикой — издержки грубой эмуляции видеодрайвера;

  • модификацию системных файлов — ею обеспечивается корректная работа ОС с эмулированным (а не с «настоящим») оборудованием.

В-третьих, обнаружить присутствие виртуализованного руткита довольно просто. Помимо отслеживания вышеперечисленных признаков, самый простой способ обнаружения и детектирования кода руткита — загрузка компьютера с внешнего устройства (USB, CD) и сканирование жесткого диска с него. При этом, если VMR эмулирует перезагрузку, как это заявлено в тезисах у исследователей, и, перехватывая управление таким образом, прячет себя — для обхода этой хитрости достаточно использовать самый холодный ребут. То есть — выдернуть шнур из розетки.

Однако, наряду с описанным выше eEye BootRoot, SubVirt предвещает и приближает наступление эпохи средств защиты уровня оборудования.

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