« Protected Mode– там, где тепло и сухо…»

Опубликовано в Сокрытие в среде

Почему бы не создать вирус, работающий в защищенном режиме процессора? Действительно, обнаружить такой вирус антивирусной программе будет, мягко говоря, ну очень трудно, если не невозможно.

В качестве горячего примера, реализующего работу в защищенном режиме, уместно привести файловый вирус PM.Wanderer. Это резидентный полиморфный вирус, работающий в защищенном режиме процессоров i386-Pentium. Для своей работы вирус активно использует документированный интерфейс VCPI (Virtual Control Program Interface) драйвера расширенной памяти EMS (EMM386).

Protected Mode

При запуске инфицированной программы вирус пытается «узнать», установлен ли в системе EMS-драйвер. Если вышеуказанного драйвера в системе нет, то вирус отдает управление программе-вирусоносителю, завершая при этом свою активность.

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

В защищенном режиме вирус пытается контролировать INT21 путем установки двух аппаратных контрольных точек на адреса входа в обработчик прерывания INT 21h и перехода на процедуру перезагрузки компьютера. Помимо прочего, вирус так модифицирует дескрипторную таблицу прерываний, чтобы на прерывания INT 1 (особый случай отладки) и INT 9 (клавиатура) установить собственные дескрипторы обработчиков прерываний. Тем самым достигается тотальный контроль всех нажатий клавиш на клавиатуре и попыток мягкой перезагрузки компьютера.

Результатом вышеописанных действий является копирование вируса в память компьютера и переключение процессора обратно в виртуальный режим работы. Затем вирус освобождает ранее выделенную память DOS в верхних адресах и возвращает управление инфицированной программе.

При заражении файлов вирусный код внедряется в начало СОМ или в середину ЕХЕ- файла. Код вируса «весит» 3684 байт, но, как правило, инфицированные им файлы имеют приращение длины более 3940 байт. Код вируса содержит текст «WANDERER».

FLASH BIOS – почему бы и нет! Самая обычная ситуация – это когда код привязан к файловой системе и является резидентным (выполняющимся в оперативной памяти).

Но что если вирусный код работает в BIOS?!

Да-да, именно, а почему бы и нет. Отлов и уничтожение такого «зверя» потребует от антивирусной программы чего-то большего, а именно – возможности трассировать прерывание INT 16h.

ПРИМЕЧАНИЕ
Прерывание (от англ. interrupt) – сигнал, сообщающий процессору о совершении какого-либо события. Прерывание подразумевает приостановку выполнения текущей последовательности команд и передачу управления обработчику прерывания.

Почему все так сложно и как с этим связан антивирусный монитор? Все дело в том, что BIOS (AMI, например) обладает некоторыми особенностями работы в микросхемах Flash-памяти, которые базируются на использовании функции EOh прерывания INT 16h. Внесенный в данную область памяти вирус впоследствии запрещает повторно использовать указанную функцию. Как следствие, это запретит антивирусным программам воспользоваться ею в процессе удаления вируса из BIOS компьютера.

Как же это все работает?

Алгоритм работы вируса, «живущего» в BIOS, выглядит следующим образом:

1. Вирус проверяет систему на наличие Flash BIOS.
2. Далее идет проверка на зараженность Flash BIOS (если BIOS чист – то «ОК», иначе – осуществить выход).
3. Считывается вектор INT 19h из таблицы (прерывание загрузки).
4. Читает первые пять байт от точки входа INT 19h.
5. Проверяет свободное место в микросхеме BIOS (поиск области нулей).
6. Устанавливает память Flash BIOS в режим записи (нормальное ее состояние в режиме чтения).
7. Запись вируса в найденную свободную область.
8. Запись перехода на вирус в точку входа INT 19h.
9. Возврат Flash BIOS в режим «только чтение».

Можно ли вышеописанный или подобный ему код назвать космополитом, встречающимся в «диком виде»? Да, вполне. В качестве яркого примера, иллюстрирующего, насколько умело можно манипулировать с BIOS, уместно привести оригинальное описание знаменитого «Чернобыля» (www.virusList.com).

Virus.Win9x.CIH также известен как «Чернобыль». Это резидентный вирус, работающий исключительно под операционными системами Windows 95/98. Длина вируса около 1 Кбайт. Впервые был обнаружен на Тайване в 1998 году.

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

Возможные варианты защиты (плюс такие классические варианты, как установка последней версии антивирусной программы с новыми базами):

  • настройка BIOS, контроль режима чтение только;
  • контроль критических областей с помощью специализированных утилит типа ADINF32.

Возможные варианты лечения:

  • удаление вируса и его записей с помощью вакцин типа «АнтиЧернобыль» и т. п.;
  • радикальный метод – перепрошивка BIOS/замена микросхем.
0