Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #48, НОЯБРЬ 2004 г.

Инструментарий хакера

Крис Касперски аkа мыщъх

Спецвыпуск: Хакер, номер #048, стр. 048-080-1


Сравнительный анализ эмуляторов

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

Любая операционная система имеет свои особенности. Поведение программы, запущенной под Windows 9x, может существенным образом отличаться от ее поведения под Windows NT. Зоопарк *nix-систем и генетически мутированных клонов лучше вообще не вспоминать :). Тому, кто занимается сетевой безопасностью, необходимо иметь, по меньшей мере, три системы: Windows NT, Linux и FreeBSD, хотя и другие флагманы рынка не помешают. Многие уязвимости (в частности, ошибки переполнения) проявляются только на строго определенных версиях оси и отсутствуют на всех остальных. А раз так, написанием и отладкой эксплоита абы на чем не займешься. Но постоянно переставлять свою рабочую ОС – чудовищная потеря времени и риск потери данных! К тому же, crash-тесты на переполнение, заканчивающиеся сбросом дампа ядра, – хороший способ превратить файловую систему в мешанину. Конечно, потерянные данные можно полностью или частично восстановить, но нужно иметь за плечами гигантский опыт борьбы с разрушениями. Вот и приходится заблаговременно подключать отдельный винчестер и зверски над ним издеваться :), погружая файловую систему в небытие и возвращая ее к жизни. Эксперименты с вирусами и эксплоитами также следует проводить на отдельной, полностью изолированной от внешнего мира машине, поскольку система разграничения доступа, встроенная в Windows NT и *nix-системы, далеко не безупречна и малейшая небрежность, допущенная исследователем, может обернуться тотальным разрушением.

Традиционно эти задачи решались путем приобретения нескольких компьютеров или, на худой конец, множества жестких дисков, попеременно подключаемых к одной машине. Но это дорого, неудобно и неэстетично. К тому же, жесткие диски довольно скептически относятся к перспективе кочевой жизни, покрываясь "бэдами" при каждом ударе :).

Спасение - в эмуляторах

Теперь этот кошмар мало-помалу отходит в прошлое. Мощь современных процессоров позволяет эмулировать персональный компьютер целиком, выполняя на нем программы в реальном времени и с приемлемой скоростью. Эмуляторы плодятся, как ежики после дождя. VMWare, Virtual PC, Bochs и DOS-Box… Какой выбрать? Большинство публикаций, посвященных эмуляторам, ориентировано на геймеров и системных администраторов. Первым важна скорость и качественный звук, вторым – наличие механизмов взаимодействия между виртуальными машинами. Хакерам же до этого всего дела нет. Главное, чтобы работал Айс и встроенный (build-in, internal, integrated) отладчик.

Минимальные требования

Большинство эмуляторов предъявляют весьма умеренные требования к аппаратуре. Для комфортной работы с Windows 2000 и FreeBSD 4.5 процессора Pentium-III 733 MHz будет вполне достаточно (в частности, VMWare превращает его в Pentium III 336 MHz, а Virtual PC - в Pentium III 187 MHz).

Требования к памяти более жесткие. Необходимо иметь минимум 128 Мбайт для основной операционной системы (называемой "хозяйкой", от «host») и по 128–256 Мбайт для каждой из одновременно запущенных виртуальных машин ("гостей"). Естественно, количество потребляемой памяти определяется типом эмулируемой операционной системы. Так, если это простушка MS-DOS, то для нее и 4 Мбайт вполне хватит. На 256 Мбайт уже можно сносно эмулировать Windows 2000/XP/2003, запущенной поверх Win2k или аналогичной операционной системы.

Содержание  Вперед на стр. 048-080-2