Внедрение вируса в начало файла может происходить тремя способами. Первый способ заключается в том, что вирус переписывает начало заражаемого файла в его конец, а сам копируется в освободившееся место. При заражении файла вторым способом вирус создает в оперативной памяти свою копию, дописывает к ней заражаемый файл и сохраняет полученную конкатенацию на диск. При заражении третьим способом вирус записывает свои коды в начало файла, не сохраняя старого содержимого начала файла, естественно, что при этом файл перестает работать и не восстанавливается.
Внедрение вируса в начало файла применяется в подавляющем большинстве случаев при поражении COM-файлов. EXE-файлы заражаются таким методом либо в результате ошибки вируса, либо при использовании алгоритма вируса "Pascal".
Внедрение вируса в конец файла – наиболее распространенный способ заражения. При этом вирус изменяет начало файла таким образом, что первыми выполняемыми командами программы, содержащейся в файле, являются команды вируса. В COM-файле это достигается изменением его первых трех (или более) байт на коды инструкции JMPLoc_Virus (или в общем случае – на коды программы, передающей управление на тело вируса). EXE-файл либо переводится в формат COM-файла и затем заражается как последний, либо модифицируется заголовок файла (длина, стартовые адреса).
Стандартным способом заражения будем называть способ, при котором вирус дописывается в конец файла и изменяет первые байты у COM-файла и несколько полей заголовка EXE-файла.
Вирус, после передачи ему управления, действует по следующему алгоритму:
- восстанавливает программу (но не файл) в исходном виде;
- если вирус резидентный, то он проверяет оперативную память на наличие своей копии и инфицирует память компьютера, если копия не найдена; если вирус не резидентный, то он ищет незараженные файлы в текущем и корневом каталогах, в каталогах отмеченных в команде PATH, сканирует дерево каталогов логических дисков, а затем заражает обнаруженные файлы;
- выполняет, если они есть, дополнительные функции: деструктивные действия, графические или звуковые эффекты.
- возвращает управление основной программе.
3.4.2.2 Загрузочные вирусы
Загрузочные вирусы заражают загрузочный сектор флоппи-диска и Boot-сектор, или MasterBootRecord винчестера. При инфицировании диска вирус в большинстве случаев переносит оригинальный Boot-сектор в какой-либо другой сектор диска. Если длина вируса больше длины сектора, то в заражаемый сектор перемещается первая часть вируса, остальные размещаются в других секторах. Затем вирус копирует системную информацию, хранящуюся в первоначальном загрузчике, и записывает их в загрузочный сектор (для MBR этой информацией является DiskPartitionTable, для Boot-сектора дискет – BIOS Parameter Block).
Алгоритм работы загрузочного вируса.
Внедрение в память осуществляется при загрузке с инфицированного диска. При этом системный загрузчик считывает содержимое первого сектора диска, с которого производится загрузка, помещает считанную информацию в память и передает на нее (т. е. на вирус) управление. После этого начинают выполняться инструкции вируса, который уменьшает объем свободной памяти; считывает с диска свое продолжение; переносит себя в другую область памяти; устанавливает необходимые векторы прерываний; совершает дополнительные действия; копирует в память оригинальный Boot-сектор и передает на него управление.
В дальнейшем загрузочный вирус ведет себя так же, как резидентный файловый вирус: перехватывает обращения операционной системы к дискам и инициирует их, в зависимости от некоторых условий совершает деструктивные действия или вызывает звуковые или видеоэффекты.
3.4.3 Программы обнаружения и защиты
от компьютерных вирусов
50) Для того чтобы не подвергнуть компьютер заражению вирусами и обеспечить надежное хранение информации на дисках, необходимо соблюдать следующие правила:
1) DrWeb необходимо сочетать с повседневным использованием ревизора диска ADinf;
2) оснастить свой компьютер современными антивирусными программами, например Aidstest или Doctor Web, и постоянно обновлять их версии;
3) перед считыванием с дискет информации, записанной на других компьютерах, всегда проверять эти дискеты на наличие вирусов, запуская антивирусные программы своего компьютера;
4) при переносе на свой компьютер файлов в архивированном виде проверять их сразу же после разархивации на жестком диске, ограничивая область проверки только вновь записанными файлами;
5) периодически проверять на наличие вирусов жесткий диск компьютера, запуская антивирусные программы для тестирования файлов, памяти и системных областей диска с защищенной от записи дискеты, предварительно загрузив операционную систему также с защищенной от записи системной дискеты;
6) всегда защищать свои дискеты от записи при работе на других компьютерах, если на них не будет производиться запись информации;
7) обязательно делать архивные копии на дискетах ценной для вас информации;
8) не оставлять в кармане дисковода A дискеты при включении или перезагрузке операционной системы, чтобы исключить заражение компьютера загрузочными вирусами;
9) использовать антивирусные программы для входного контроля всех исполняемый файлов, получаемых из компьютерных сетей.
51) Для обнаружения, удаления и защиты от компьютерных вирусов разработано несколько видов специальных антивирусных программ.
52) Различают следующие виды антивирусных программ (рис. 3.15):
- программы-детекторы;
- программы-доктора или фаги;
- программы-ревизоры;
- программы-фильтры;
- программы-вакцины или иммунизаторы.
Рис. 3.15. Виды антивирусных программ
53) Программы-детекторы осуществляют поиск характерной для конкретного вируса последовательности байтов (сигнатуры вируса) в оперативной памяти и файлах и при обнаружении выдают соответствующее сообщение. Недостатком таких антивирусных программ является то, что они могут находить только те вирусы, которые известны разработчикам программ.
54) Программы-доктора, или фаги, а также программы-вакцины не только находят зараженные вирусами файлы, но и "лечат" их, т. е. удаляют из файла "тело" программы вируса, возвращая файлы в исходное состояние. В начале своей работы фаги ищут вирусы в оперативной памяти, уничтожают их и только затем переходят к "лечению" файлов.
55) Среди фагов выделяют полифаги, т. е. программы-доктора, предназначенные для поиска и уничтожения большого количества вирусов. Наиболее известными полифагами являются AVP, Doctor Web, Aidstest, Scan и Norton AntiVirus.
56) Программы-детекторы и программы-доктора быстро устаревают и требуют регулярного обновления их версий или антивирусных баз, так как постоянно появляются новые вирусы.
57) Программы-ревизоры относятся к самым надежным средствам защиты от вирусов. Они запоминают исходное состояние программ, каталогов и системных областей диска тогда, когда компьютер не заражен вирусом, а затем периодически или по желанию пользователя сравнивают текущее состояние с исходным. Обнаруженные изменения выводятся на экран видеомонитора. Как правило, сравнение состояний производят сразу после загрузки операционной системы: проверяются длина файла, код циклического контроля (контрольная сумма файла), дата и время модификации, другие параметры.
58) Программы-ревизоры имеют достаточно развитые алгоритмы, обнаруживают стелс-вирусы и могут даже отличить изменения версии проверяемой программы от изменений, внесенных вирусом. К числу программ-ревизоров относится широко распространенная в России программа ADinf фирмы "Диалог – Наука".
59) Программы-фильтры, или "сторожа", представляют собой небольшие резидентные программы, предназначенные для обнаружения подозрительных действий при работе компьютера, характерных для вирусов:
- попыток коррекции файлов с расширениями COM и EXE;
- изменений атрибутов файлов;
- прямой записи на диск по абсолютному адресу;
- записи в загрузочные сектора диска;
- загрузки резидентной программы.
60) При попытке какой-либо программы произвести указанные действия "сторож" посылает пользователю сообщение и предлагает запретить или разрешить соответствующее действие.
61) Программы-фильтры весьма полезны, так как способны обнаружить вирус на самой ранней стадии его существования до размножения. Однако они не "лечат" файлы и диски. Для уничтожения вирусов требуется применить другие программы, например фаги. К недостаткам программ-сторожей можно отнести их "назойливость" (например, они постоянно выдают предупреждение о любой попытке копирования исполняемого файла), а также возможные конфликты с другим программным обеспечением. Примером программы-фильтра является программа Vsafe, входящая в состав пакета утилит операционной системы MS-DOS.
62) Вакцины, или иммунизаторы, – это резидентные программы, предотвращающие заражение файлов. Вакцины применяют, если отсутствуют программы-доктора, "лечащие" этот вирус. Вакцинация возможна только от известных вирусов. Вакцина модифицирует программу или диск таким образом, чтобы это не отражалось на их работе, а вирус будет воспринимать их зараженными и поэтому не внедрится. В настоящее время программы-вакцины имеют ограниченное применение.
63) Своевременное обнаружение зараженных вирусами файлов и дисков, полное уничтожение вирусов на каждом компьютере позволяют избежать распространения вирусной "эпидемии" на другие компьютеры.
64) Антивирусный комплект АО "Диалог – Наука"
Среди обилия современных программных средств борьбы с компьютерными вирусами предпочтение следует отдать антивирусному комплекту АО "Диалог – Наука", в который входят четыре программных продукта: полифаги Aidstest и Doctor Web, ревизор диска ADinf и лечащий блок ADinf Cure Module. Кроме этого можно назвать и такую антивирусную программу, как AVP, которая сейчас нашла самое широкое применение. Эта программа разработана как под операционную систему MS-DOS, так и под операционную систему Windows.