Зараженный диск (подмена активного boot-сектора в Disk Partition Table)


кода boot-сектора загрузочного диска (обычно диска С:), либо модифицирует адрес активного boot-сектора в Disk Partition Table, расположенный в MBR винчестера.

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

Существует несколько вариантов размещения на диске первоначального загрузочного сектора и продолжения вируса: в сектора свободных кластеров логического диска; в неиспользуемые или редко используемые системные сектора; в сектора, расположенные за пределами диска.

Если продолжение вируса размещается в секторах, которые принадлежат свободным кластерам диска (при поиске этих секторов вирусу приходится анализировать таблицу размещения файлов — FAT), то, как правило, вирус помечает в FAT эти кластеры как сбойные (так называемые "псевдосбойные" кластеры). Этот способ приемлем в вирусах Brain, Ping-Pong и некоторых других.

В вирусах семейства Stoned задействован другой метод. Эти вирусы размещают первоначальный загрузочный сектор в неиспользуемом или редко используемом секторе — одном из тех (если такие есть), что расположены между MBR и первым boot-сектором, а на дискете соответствующий сектор выбирается из последних секторов корневого каталога.

Некоторые вирусы записывают свой код в последние сектора винчестера, поскольку они используются только тогда, когда винчестер полностью заполнен информацией, что бывает довольно редко, если учесть размеры современных дисков. Однако такие вирусы приводят к порче файловой системы OS/2, которая иногда хранит активный boot-сектор и системные данные как раз в последних секторах винчестера.

Реже используется метод сохранения продолжения вируса за пределами диска. Достигается это двумя способами. Первый сводится к уменьшению размеров логических дисков: вирус вычитает необходимые значения из соответствующих полей ВРВ boot-сектора и Disk Partition Table винчестера (если заражается винчестер), уменьшает таким образом размер логического диска и записывает свой код в "отрезанные" от него сектора.

Второй способ — запись данных за пределами физического разбиения диска. В случае жестких дисков вирусу для этого приходится форматировать на диске дополнительный трек (метод нестандартного форматирования), например, 40-й трек на 360 Кб дискете или 80-й трек на 1,2 Мб и 1,4 Мб дискетах. Имеются вирусы, записывающие свой код за пределами доступного пространства винчестера, если, разумеется, это допускается установленным оборудованием (см., например, вирус Hare).

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

При заражении большинство вирусов копирует в код своего загрузчика системную информацию, хранящуюся в первоначальном загрузчике (для MBR этой информацией является Disk Partition Table, для Boot-сектора дискет — BIOS Parameter Block). В противном случае система окажется неспособной загрузить себя, поскольку дисковые адреса компонентов системы высчитываются на основе этой информации. Такие вирусы довольно легко удаляются переписыванием заново кода системного загрузчика в boot-секторе и MBR. Для этого необходимо пользователю загрузиться с незараженной системной дискеты и использовать команды SYS для обезвреживания дискет и логических дисков винчестера или FDISK/MBR для лечения зараженного MBR-сектора.

Однако некоторые 100%-ные "стелс"-вирусы не сохраняют эту информацию или даже более того — преднамеренно шифруют ее. При обращении системы или других программ к зараженным секторам вирус подставляет их незараженные оригиналы, и загрузка системы происходит без каких-либо сбоев, однако лечение MBR при помощи FDISK/MBR в этом случае приводит к потере информации о разбиении диска (Disk Partition Table). Диск может быть "оживлен" либо переформатированием с потерей всей информации, либо восстановлением Disk Partition Table вручную, что требует определенной квалификации.

Следует также отметить тот факт, что загрузочные вирусы очень редко уживаются вместе на одном диске. Часто они используют одни и те же дисковые сектора для размещения своего кода/данных. В результате код/данные первого вируса оказываются испорченными при заражении вторым вирусом, и система либо зависает при загрузке, либо зацикливается (что также приводит к ее зависанию).

Пользователям новых ОС (Novell, Win95, OS/2) загрузочные вирусы также могут доставить неприятности. Несмотря на то что перечисленные выше системы работают с дисками напрямую (минуя вызовы BIOS), что блокирует вирус и делает невозможным дальнейшее его распространение, код вируса все-таки, хотя и очень редко, получает управление при перезагрузке системы. Поэтому вирус МагсЬб, например, может годами жить в MBR сервера и никак не влиять при этом на его (сервера) работу и производительность. Однако при случайной перезагрузке 6 марта этот вирус полностью уничтожит все данные на диске.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: