Энциклопедия компьютерных вирусов

         

загрузочные зашифрованные вирусы. Поражают начальные


Резидентные файлово- загрузочные зашифрованные вирусы. Поражают начальные сектора дискет и файл IO.SYS на диске С. Занимают 1024 байта и состоят из двух частей (секторов). Первая часть содержит инсталлятор вируса и подпрограмму заражения флоппи-дисков, вторая часть содержит код, внедряемый в boot-сектора дискет. Этот код представляет собой процедуру заражения файла IO.SYS (или его эквивалента типа IBMBIO.COM) на винчестере. В boot-секторах вирус зашифрован. При загрузке с зараженного флоппи-диска вирус расшифровывает себя и передает управление подпрограмме заражения файла IO.SYS. Эта подпрограмма считывает первый boot-сектор винчестера (диск C), проверяет размер диска (не заражает диск, если он меньше 26M, т.е. используется 12-битная FAT), подсчитывает адрес корневого каталога, считывает его, проверяет атрибут первой записи корневого каталога и не заражает диск, если первая запись в корневом каталоге имеет атрибут VOLUME. Если этот атрибут - не VOLUME, то вирус копирует в последние сектора диска файл, соответствующий первому входу (стандартно это IO.SYS) и сдвигает вниз на одну позицию все записи в корневом каталоге с 3-го по 77-й (последняя запись будет потеряна, так как она затирается предпоследней). Затем вирус копирует системные данные из первой записи корневого каталога в третью и устанавливает в третьей записи адрес первого кластера файла на только что созданную копию IO.SYS. В результате в системе появляются два файла IO.SYS: на первый указывает первая запись в корневом каталоге, на второй - третья запись. Затем вирус записывает вместо первого IO.SYS свой код и ставит у этой записи атрибут VOLUME.
Корневой каталог до заражения:
size cluster attributes
IO SYS 40470 2 Arc R/O Sys Hid MSDOS SYS 38138 22 Arc R/O Sys Hid COMMAND COM 52928 41 Arc DOS 0 67 DIR AUTOEXECBAT 100 68 Arc CONFIG SYS 150 69 Arc
Зараженный корневой каталог:
size cluster attributes +----- VOLUME attr V IO SYS 40470 2 Arc R/O Sys Hid Vol <- вирус MSDOS SYS 38138 22 Arc R/O Sys Hid IO SYS 40470 16108 Arc <- первоначальный IO.SYS COMMAND COM 52928 41 Arc <- сдвинутые вниз входы DOS 0 67 DIR в корневой каталог AUTOEXECBAT 100 68 Arc CONFIG SYS 150 69 Arc


Все описанные выше манипуляции производятся вирусом через INT 13h, причем довольно тщательно: он проверяет диск на наличие свободных кластеров, аккуратно сохраняет все копии FAT и т.д. Атрибут VOLUME у зараженного IO.SYS играет двоякую роль - идентификатора зараженного диска и "стелс"
-функция вируса. Файл с атрибутом VOLUME не виден стандартными функциями DOS, такими, как FindFirst/Next, Open, Read, Close. Для того чтобы обнаружить этот файл и прочитать его содержимое требуются специальные утилиты чтения дисковых секторов (например, AVPUTIL или DiskEditor). В результате описанной выше процедуры диск C: оказывается зараженным, однако ни MBR, ни boot-сектор не изменились. Изменен единственный объект - файл IO.SYS. При загрузке системы с пораженного винчестера все будет идти, как и на чистой системе (загрузка и выполнение MBR и boot-сектора) до момента запуска IO.SYS. Стандартный загрузчик DOS сравнивает имена первых двух входов в корневой каталог со строками IO.SYS и MSDOS.SYS (или эквивалентными строками). Загрузчик ищет строки, но не проверяет атрибуты обнаруженных входов в каталоге. В результате загрузчик найдет в первом входе строку IO.SYS, загрузит соответствующий файл (вирус) в память и передаст ему управление. При загрузке с зараженного диска процедура инсталляции, получив управление, перехватывает INT 13h и оставляет вирус в памяти стандартным способом, уменьшая размер системной памяти (слово по адресу 0000:0413). При вызове INT 13h вирус обрабатывает обращения к флоппи-дискам и заражает их. Он сохранает свое продолжение и первоначальный boot-сектор в последних секторах корневого каталога дискеты и записывает свой инсталлятор вместо boot-сектора, предварительно зашифровав его при помощи полиморфик
-алгоритма. В августе при загрузке с зараженного диска вирус расшифровывает и выдает сообщение:
B BOOT CEKTOPE - 3APA3A
С формальной точки зрения этот вирус не является стелс-вирусом, однако процедура его обнаружения и лечения на винчестере довольно трудна.Зараженный IO.SYS не виден стандартными функциями DOS и может быть обнаружен только вызовами через INT 13h/25h. Зараженный файл невозможно также ни удалить, ни переименовать. Единственный способ обнаружить вирус из DOS - это команда LABEL, при ее вызове DOS отвечает:
Volume in drive C is IO SYS
На попытку изменения метки диска DOS реагирует сообщением:
Cannot make directory entry
Невозможно также вылечить диск утилитой SYS, поскольку она заменит только вторую копию IO.SYS, не затронув вируса. Более того, диск станет незагружаемым, поскольку вирус считывает зараженный IO.SYS по абсолютным адресам, сохраненным при заражении диска, а при команде SYS этот файл будет (скорее всего) помещен на новое место.

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