Осторожно компьютерные вирусы

       

Вирусы в загружаемых драйверах


Драйвер является расширением операционной системы, предназначенным, как правило, для работы с тем или иным периферийным устройством. Обычно в составе любой операционной системы имеется набор драйверов, предназначенных для разных устройств.

Что касается операционной системы MS-DOS, то для нее все драйверы можно разделить на встроенные в ядро и подгружаемые через файл CONFIG.SYS.

Встроенные и подгружаемые драйверы после загрузки объединяются в цепочку, адрес которой можно найти с использованием недокументированных средств, описанных нами в 18 томе “Библиотеки системного программиста”.

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



Смещение, байт

Размер, байт

Описание

0

4

Указатель на заголовок драйвера, следующего в цепочке. Если смещение адреса следующего драйвера равно 0FFFFh, это последний драйвер в цепочке

4

2

Атрибуты драйвера

6

2

Смещение программы стратегии драйвера

8

2

Смещение программы обработки прерывания для драйвера

0Ah

8

Имя устройства для символьных устройств или количество обслуживаемых устройств для блочных устройств

Обратите внимание на поля смещений программы стратегии и обработки прерывания драйвера. Эти поля используются операционной системой MS-DOS для вызова драйвера.

Вызов драйвера представляет собой двухступенчатый процесс.

Вначале операционная система вызывает программу стратегии, пользуясь смещением, полученным из заголовка драйвера (поле со смещением 6). Перед этим она формирует в своей области данных запрос, передавая программе стратегии адрес соответствующего блока данных в регистрах ES:BX. Программа стратегии обычно очень проста, так как ее задача заключается в запоминании адреса блока данных, содержащего запрос, в области памяти, принадлежащей драйверу.

Запрос операционной системы к драйверу содержит заголовок, имеющий фиксированный формат и длину 13 байт, а также структуру переменного размера и формата, которые зависят от выполняемой функции (переменная область запроса).
Формат первой области запроса приведен ниже:

Смещение, байт

Размер, байт

Описание

0

1

Общий размер блока запроса в байтах

1

1

Номер устройства. Используется для блочных устройств; указывает, с каким именно устройством (из числа обслуживаемых данным драйвером) будет работать операционная система

2

1

Код команды, которую требуется выполнить

3

2

Слово состояния устройства. Заполняется драйвером перед возвращением управления операционной системе

5

8

Зарезервировано

На втором этапе операционная система MS-DOS вызывает программу обработки прерывания, взяв ее смещение из заголовка драйвера (поле со смещением 8). Программа обработки прерывания анализирует код команды, расположенный в фиксированной области запроса (поле со смещением 2) и выполняет ее.

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

Dir-II (1,2)

Неопасные резидентные вирусы, встраивающиеся в цепочку дисковых драйверов.

Вирусы записывают свой код в последний кластер диска. Для файлов с расширениями имени COM и EXE устанавливают указатели первого кластера данных на последний кластер диска, содержащий вирусный код

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

ExeHeader.Dragon

Инсталлируется в память и внедряется в цепочку дисковых драйверов.

Содержит в своем теле строку "DRAGON-2 Anti"


Содержание раздела