Вирус-фильтры VSHIELD и VSHIELD1

10.4.1. Вирус-фильтры VSHIELD и VSHIELD1

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

VSHIELD выполняет следующие функции:

1) проверку на наличие вирусов содержимого ОЗУ, MBR, BR системного диска, файлов DOS и самого себя;

2) проверку целостности MBR и BR по контрольным суммам;

3) проверку на наличие вирусов каждого загружаемого на выполнение файла и блокировку его выполнения при обнаружении вируса;

4) предотвращение теплой перезагрузки с дискеты, содержащей вирус в BR, путем ее ска­нирования при перезагрузке;

5) проверку по контрольной сумме целостности загружаемого на выполнение файла и бло­кировку его выполнения при нарушении целостности;

6) предотвращение запуска незарегистрированных исполняемых файлов.

Первые две функции реализуются однократно при запуске вирус-фильтра. Остальные же выполняются VSHIELD постоянно, до перезагрузки DOS или явного его удаления из ОЗУ. Пользователь может выбрать для работы практически любую комбинацию из вышеперечисленных функций, специфицируя соответствующие переключатели в командной строке.

Другой имеющийся в пакете фильтр — VSHIELDl — является функционально ограниченным вариантом фильтра VSHIELD, выполняя только вторую и пятую его функции.

Фильтры способны работать на IBM-совместимой ПЭВМ с объемом памяти не менее 256 Кбайт и версией DOS не младше 2.0. Резидентное ядро VSHIELD занимает 37 Кбайт, a VSHIELD 1 — 6 Кбайт. VSHIELD может выгружать себя временно из памяти, оставляя в ней модуль размером всего 3 Кбайт (что является свопингом).

Исходя из выполняемых функций и возможностей их задания, VSHIELD совместно с VSHIELD1 реализуют следующие уровни фильтрации файлов и компонентов системной области дисков:

1) по целостности (на основе сравнения контрольной суммы с эталонным значением);

2) по наличию вирусов (за счет проверки на присутствие вирусных сигнатур, т.е. специфичных для тех или иных вирусов последовательностей байт);

3) по целостности и наличию вирусов;

4) по допустимости программных файлов (путем использования списка исключений).

Первый уровень фильтрации поддерживается программой VSHIELD1, а остальные — программой VSHIELD.

Фильтрация по целостности требует наименьших накладных расходов по времени и памяти, но и имеет минимальную эффективность. Если ресурсы ПЭВМ позволяют, то целесообразно использовать уровень фильтрации выше первого. Проверка на наличие вируса в файле требует около 4 с, а в системной области диска — около 6 с. Свопинг фильтра при запуске каждой программы на выполнение осуществляется примерно за 0,6 с. Используйте свопинг только тогда, когда для выполнения программ не хватает памяти. При выполнении прикладной программы вирус-фильтр не активизируется и поэтому накладные расходы по времени отсутствуют.

В случае фильтрации по целостности эталоны контрольных; сумм файлов хранятся в них самих, а компонентов системной области — в специально созданном файле Вычисление и запись на диски контрольных сумм, принимаемых за эталонные, может быть осуществлено детектором ViruScan.

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

Запуск фильтра VSHIELD осуществляется командной строкой вида

VSHIELD [/М|/NOMEM] [/NB] [/CV] [/LOCK] [/CERTIFY [file]]

[/CONTACT string] [/SWAP [dirl]] [/F dir2]

или

VSHIELD /REMOVE

Первый вариант используется для установки фильтра, а второй — для прекращения работы и удаления его из памяти (переключатель /REMOVE).

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

В случае обнаружения вируса фильтр выдает сообщение об этом, содержащее спецификацию файла-вирусоносителя (или наименование инфицированной области диска), наименование вируса и идентификатор вируса, который используется дезинфектором Ctean-Up.

Если ни один из переключателей /М и /NOMEM не указан, то при установке фильтра память проверяется только на наличие особо опасных резидентных вирусов, что сокращает время тестирования задание переключателя /М ведет к проверке наличия в памяти всех известных вирусов, a /NOMEM — к отключению тестирования памяти вообще Последний из двух переключателей рекомендуется указывать только в случае, когда Вы уверены в отсутствии вирусов в ОЗУ. Задание /NOMEM значительно сокращает время установки фильтра, а /М — увеличивает его на 10 — 40 с.

Переключатель /NB отменяет тестирование системной области системного диска (но не системных файлов).

Переключатель /CV служит для включения режима проверки целостности файлов и компонентов системной области по контрольным суммам, если эталонные контрольные суммы вычислены и зафиксированы на дисках. Когда запускаемый на выполнение файл не содержит эталонной суммы, он загружается обычным образом. Если же она имеется, то вычисляется текущая контрольная сумма, которая сравнивается с эталоном. В случае совпадения контрольных сумм загрузка разре­шается; в противном случае выдается соответствующее сообщение, и загрузка файла отвергается.

Указание переключателя /LOCK ведет к тому, что при обнаружении вируса DOS «останав­ливается» и работа без перезагрузки не может быть продолжена. Если /LOCK отсутствует, то лишь отвергаются инфицированные и искаженные файлы, как описано выше.

При указании переключателя /CERTIFY [file] (где file — спецификация файла со списком исключений) устанавливается фильтрация по допустимости программных фай лову Полные условия запуска файла на выполнение определяются как наличием спецификации/йе, так и наличием переключателя /CV.

Если Заданы как переключатель /CERTIFY (но без file), так и переключатель /CV, то разрешается исполнение только тех файлов, для которых имеются эталонные контрольные суммы, причем текущие контрольные суммы совпадают с эталонными.

Когда задан переключатель /CERTIFY с file, а переключатель /CV отсутствует, то могут быть выполнены только файлы, указанные в списке исключений.

Если указан переключатель /CERTIFY с file и переключатель /CV, то условия возможности запуска файлов объединяются' по «И»: разрешается выполнение только файлов с корректными контрольными суммами, зарегистрированных в списке исключений. В случае отсутствия эталонной контрольной суммы первое условие считается выполненным.

Когда задан только переключатель /CERTIFY без file, будет запрещено выполнение любого, файла, а восприниматься будут лишь внутренние команды DOS.

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

Задание переключателя /CONTACT string ведет к выдаче на экран при каждом обнаружении вируса сообщения string. Строка string может содержать до 50 произвольных символов. Однако если string начинается, с символа / или —, то ее нужно поместить в кавычки (").

Переключатель /SWAP [dirl] включает режим свопинга. Выгрузка будет осуществляться в каталог dirl или в каталог, из которого запущен фильтр, если спецификация dirl не задана.

Переключатель /F dir2 используется только с DOS версии 2.0, если указан переключатель /SWAP. Здесь dir2 специфицирует каталог, из которого загружен фильтр.

Переключатель /REMOVE обеспечивает завершение работы фильтра VSHIELD с освобож­дением места в ОЗУ, им занимаемого.

Фильтр VSHIELD1 устанавливается командной строкой вида

VSHIELD 1 [/NB]

или

VSHIELD 1 /REMOVE

Переключатели имеют тот же смысл.

Приведем несколько типичных примеров:

VSHIELD 1 — установить фильтрацию по целостности;

VSHIELD 7- установить фильтрацию по наличию вирусов;

VSHIELD /CV — установить фильтрацию по целостности и наличию вирусов;

VSHIELD /CV /CERTIFY EXCPTN.LST — установить фильтрацию по допустимости программных файлов с проверкой их целостность и наличия вирусов в них;

VSHIELD /CERTIFY EXCPTN.LST — установить фильтрацию по допустимости- программных файлов с проверкой наличия вирусов в них.

Обычно фильтр VSHIELD или VSHIELD 1 запускается в конце файла AUTOEXEC.BAT, но перед вызовом оболочки, если Вы ее используете. В любом случае VSHIELD должен быть загружен после установки сетевых драйверов.

Переключатель /SWAP может конфликтовать с программами, некорректно использующими дисковое пространство.

VSHIELD генерирует следующие коды возврата перед тем, как установить резидентный модуль:

— ни одного вируса не обнаружено;

— найден по крайней мере один вирус;

— ненормальное завершение (программная ошибка), в результате чего резидентный модуль не устанавливается.