Файловые вирусы. Окончание

В данной части бюллетеня использована информация Лаборатории Касперского (http:// www.avp.ru) - самой известной и популярной российской компании, выпускающей антивирусное программное обеспечение.

(c) Компьютерная газета


Файловые вирусы

(окончание)

Алгоритм работы файлового вируса

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

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

2) Возвращает управление основной программе (если она есть). Паразитические вирусы при этом либо a) лечат файл, выполняют его, а затем снова заражают, либо б) восстанавливают программу (но не файл) в исходном виде (например, у COM-программы восстанавливается несколько первых байт, у EXE-программы вычисляется истинный стартовый адрес, у драйвера восстанавливаются значения адресов программ стратегии и прерывания). Компаньон-вирусы запускают на выполнение своего "хозяина", вирусы-черви и overwriting-вирусы возвращают управление DOS.

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

Внедрение вируса в DOS COM- и EXE-файлы

Выполняемые двоичные файлы DOS имеют форматы COM или EXE, различающиеся заголовком и способом запуска программ на выполнение. Расширение имени файла (".COM" или ".EXE") не всегда соответствует действительному формату файла, что, правда, никак не влияет на работу программы. Файлы COM и EXE заражаются по-разному, следовательно вирус должен отличать файлы одного формата от другого. Вирусы решают эту задачу двумя способами: одни анализируют расширение имени файла (".COM", ".EXE"), другие - заголовок файла. Первый способ далее будет называться заражением.COM- (или.EXE-) файлов, второй - заражением COM- (или EXE-) файлов.

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

Один из наиболее часто встречающиеся примеров некорректного заражения файла - COMMAND.COM от Windows95. Этот файл по сути является EXE-файлом, более того имеет размер более 90Kб, что невозможно для COM-файла. Поэтому вирусы, которые различают COM/EXE файлы по расширению имени и не проверяют длины заражаемых COM-файлов (например, "Junkie"), портят такой COMMAND.COM, и он становится неработоспособным.

Примитивная маскировка

При инфицировании файла вирус может производить ряд действий, маскирующих и ускоряющих его распространение. К подобным действиям можно отнести обработку атрибута read-only, снятие его перед заражением и восстановление после. Многие файловые вирусы считывают дату последней модификации файла и восстанавливают ее после заражения. Для маскировки своего распространения некоторые вирусы перехватывают прерывание DOS, возникающее при обращении к защищенному от записи диску (INT 24h), и самостоятельно обрабатывают его.

Скорость распространения

Говоря про файловые вирусы, необходимо отметить такую их черту, как скорость распространения. Чем быстрее распространяется вирус, тем вероятнее возникновение эпидемии этого вируса. Чем медленнее распространяется вирус, тем сложнее его обнаружить (если, конечно же, этот вирус пока неизвестен антивирусным программам). Понятия "быстрого" и "медленного" вируса (Fast infector, Slow infector) являются достаточно относительными и используются только как характеристика вируса при его описании.

Нерезидентные вирусы часто являются "медленными" - большинство из них при запуске заражает один или два-три файла и не успевает заполонить компьютер до запуска антивирусной программы (или появления новой версии антивируса, настроенной на данный вирус). Существуют, конечно же, нерезидентные "быстрые" вирусы, которые при запуске ищут и заражают все выполняемые файлы, однако такие вирусы очень заметны: при запуске каждого зараженного файла компьютер некоторое (иногда достаточно долгое) время активно работает с винчестером, что демаскирует вирус.

"Скорость" резидентных вирусов обычно выше, чем у нерезидентных - они заражают файлы при каких-либо обращениях к ним. В результате на диске оказываются зараженными все или почти все файлы, которые постоянно используются в работе.

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

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

Таким образом, при запуске подобного вируса первым будет заражен файл COMMAND.COM.

Подготовил Константин Лозинский


Компьютерная газета. Статья была опубликована в номере 36 за 1999 год в рубрике безопасность :: разное

©1997-2024 Компьютерная газета