Смекни!
smekni.com

• на незараженном компьютере производится копирование файлов с одной дискеты на другую или иные действия, не связанные с запуском «чужих» (полученных извне) программ, перезагрузкой с «чужих» дискет или редактированием «чужих» документов Word для Windows или электронных таблиц Excel.

Кроме того, вирус заражает лишь программы, и не может заразить оборудование (клавиатуру, монитор и т.д.). Вирус не может заразить или изменить данные, находящиеся на дискетах или съемных дисках с установленной защитой от записи, а также данные, находящиеся на аппаратно защищенных (скажем, установкой перемычки на диске или с помощью комплекса Sheriff) логических дисках.

5. МЕТОДЫ МАСКИРОВКИ ВИРУСОВ

Чтобы предотвратить свое обнаружение, многие вирусы применяют довольно хитрые приемы маскировки. Мы расскажем о некоторых из них.

Многие резидентные вирусы (и файловые, и загрузочные) предотвращают свое обнаружение тем, что перехватывают обращения операционной системы (и тем самым прикладных программ) к зараженным файлам и областям диска и выдают их в исходном (незараженном) виде. Такие вирусы называются невидимыми, или stealth (стелс) вирусами. Разумеется, эффект «невидимости» наблюдается только на зараженном компьютере — на «чистом» компьютере изменения в файлах и загрузочных областях диска можно легко обнаружить.

Некоторые антивирусные программы могут обнаруживать «невидимые» вирусы даже на зараженном компьютере. Для этого они выполняют чтение диска, не пользуясь услугами DOS. Такими программами являются, в частности, ADinf фирмы «Диалог-Наука», NortonAntiVirus и др.

Некоторые антивирусные программы используют для борьбы с вирусами свойство «невидимых» файловых вирусов «вылечивать» зараженные файлы. Они считывают (при работающем вирусе) информацию из зараженных файлов и записывают ее в файл или файлы. Затем, уже после загрузки с «чистой» дискеты, исполнимые файлы восстанавливаются в исходном виде.

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

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

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

В простейших полиморфных вирусах вариации их кода ограничиваются использованием одних регистров компьютера вместо других, добавлением «незначащих» команд и т.д. И программы-детекторы приспособились обнаруживать команды в стартовой части вируса, несмотря на маскирующие изменения в них. Но имеются и вирусы с чрезвычайно сложными механизмами самомодификации. В них каждая значащая инструкция передается одним из сотен тысяч возможных вариантов, при этом используется более половины всех команд процессора.

Тем не менее, имеются антивирусные программы-детекторы, способные обнаруживать даже такие сложные полиморфные вирусы. Как правило, они содержат эмулятор (программный эквивалент) процессора, то есть могут интерпретировать программы без их реального выполнения (на настоящем процессоре). Такие детекторы интерпретируют анализируемые программы, то есть «выполняют» их на программном эквиваленте процессора, и в ходе этого «выполнения» решают, является ли анализируемая программа вирусом или нет. Эта задача очень сложна (точнее, неразрешима), поскольку вирусы не используют каких-то специфических действий, которые не применялись бы другими программами. Однако лучшие детекторы способны отлавливать неизвестные полиморфные вирусы в более чем 80% случаев при очень малом количестве ложных тревог. Примером такой программы является Dr. Web из антивирусного комплекта DSAV фирмы «Диалог-Наука».

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

6. ОСОБЫЕ ВИДЫ ВИРУСОВ

В 1991 г. появились вирусы нового типа — вирусы, меняющие файловую систему на диске. Эти вирусы обычно называются DIR. Такие вирусы прячут свое тело в некоторый участок диска (обычно — в последний кластер диска) и помечают его в таблице размещения файлов (FAT) как конец файла или как дефектный участок. Для всех

.СОМ - и .ЕХЕ - файлов указатели на первый кластер (участок) файла, содержащиеся в соответствующих элементах каталога, заменяются ссылкой на участок диска, содержащий вирус, а правильный указатель в закодированном виде прячется в неиспользуемой части элемента каталога. Поэтому при запуске любой программы в память загружается вирус, после чего он остается в памяти резидентно, подключается к программам DOS для обработки файлов на диске и при всех обращениях к элементам каталога выдает правильные ссылки.

Таким образом, при работающем вирусе файловая система на диске кажется совершенно нормальной. При поверхностном просмотре зараженного диска на «чистом» компьютере также ничего странного не наблюдается. Разве лишь при попытке прочесть или скопировать с зараженной дискеты программные файлы из них будут прочтены или скопированы только 512 или 1024 байта, даже если файл гораздо длиннее. А при запуске любой исполнимой программы с зараженного таким вирусом диска этот диск, как по волшебству, начинает казаться исправным (неудивительно, ведь компьютер при этом становится зараженным).

При анализе на «чистом» компьютере с помощью программ ChkDsk, ScanDisk или NDD файловая система зараженного DIR-вирусом диска кажется совершенно испорченной. Так, программа ChkDsk выдает кучу сообщений о пересечениях файлов («...crosslinkedoncluster...») и о цепочках потерянных кластеров («...lostclustersfoundin ... chains»).

Особая опасность вирусов семейства DIR состоит в том, что повреждения файловой структуры, сделанные этими вирусами, на следует исправлять программами типа ScanDisk или NDD — при этом диск окажется безнадежно испорченным. Для исправления надо применять только антивирусные программы.

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

Еще один необычный тип вирусов — это вирусы, заражающие системный файл IO.SYS. Семейство этих вирусов обычно называется ЗАРАЗА, поскольку первый такой вирус выводил сообщение «В BOOT СЕКТОРЕ — ЗАРАЗА!».

Данные вирусы являются файлово-загрузочными и используют рассогласование между механизмом начальной загрузки DOS и обычным механизмом работы с файлами. При начальной загрузке MSDOS проверяется, что имена двух первых элементов в корневом каталоге загрузочного диска — IO.SYS и MSDOS.SYS, но атрибуты этих элементов не проверяются. Если имена совпадают, то программа начальной загрузки считывает в память первый кластер элемента с именем IO.SYS и передает ему управление.

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

• копирует содержимое файла IO.SYS в конец логического диска;

• сдвигает элементы корневого каталога, начиная с третьего, на один элемент к концу каталога;

• копирует первый элемент корневого каталога (соответствующий файлу IO.SYS) в) освободившийся третий элемент корневого каталога и устанавливает в нем номер начального кластера, указывающий на место, куда было скопировано содержимое файла IO.SYS;

• записывает свое тело в место, где находился файл IO.SYS (как правило, в начало области данных логического диска);

• у первого элемента корневого каталога диска устанавливает признак «метка тома».

Таким образом, начало оглавления корневого каталога после заражения будет выглядеть примерно так (при просмотре программой DiskEdit):

Name .Ext Size Date Time Cluster Arc R/0 Sys Hid Dir Vol Sector ...
I0 SYS 40744 31.05.94 6:22 2 R/0 Sys Hid Vol
MSDOS SYS 38138 14.07.95 23:44 5 R/0 Sys Hid
I01 SYS 40744 31.05.94 6:22 63616 R/0 Sys Hid

Здесь в столбце «Cluster» у первого элемента стоит 2 — номер кластера диска, куда вирус записал свое тело (и где раньше располагался файл IO.SYS), а у третьего элемента в этом столбце указан номер того кластера, начиная с которого вирус поместил копию файла IO.SYS.

Иначе говоря, в корневом каталоге появляются два элемента с именем IO.SYS, один из которых помечен атрибутом «метка тома». Однако при начальной загрузке это не вызывает сбоев — программа начальной загрузки, проверив, что первые два элемента каталога имеют имена IO.SYS и MSDOS.SYS, загрузит кластер, указанный в первом элементе оглавления (на обычном диске — это начало файла IO.SYS, а на зараженном код вируса), и передаст ему управление. Вирус загрузит себя в оперативную память, после чего загрузит начало исходного файла IO.SYS и передаст ему управление. Далее начальная загрузка идет, как обычно.

А что же при обычной работе в DOS? Неужели в корневом каталоге не будут видны два элемента с именем IO.SYS? Оказывается, нет. DOS и все программы (кроме программы. начальной загрузки) будут считать первый элемент каталога, раз он помечен признаком «метка тома», описанием метки диска С:. А метки игнорируются при обработке файлов и каталогов, поэтому первый элемент с именем IO.SYS не будет виден при просмотре корневого каталога. Разве лишь метка тома для диска С:, выводимая при вводе команды VOL С:, станет «IO SYS» (некоторые программы будут показывать ее как IOSYS). Однако мало кто из пользователей обращает внимание на метки дисков!