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 генерирует следующие коды возврата перед тем, как установить резидентный модуль:
— ни одного вируса не обнаружено;
— найден по крайней мере один вирус;
— ненормальное завершение (программная ошибка), в результате чего
резидентный модуль не устанавливается.