2. Антивирусные
средства
2.1 Способы противодействия
компьютерным вирусам
Способы противодействия компьютерным
вирусам можно разделить на несколько
групп: профилактика вирусного заражения
и уменьшение предполагаемого ущерба
от такого заражения; методика использования
антивирусных программ, в том числе обезвреживание
и удаление известного вируса; способы
обнаружения и удаления неизвестного
вируса.
Наиболее эффективны в борьбе с компьютерными
вирусами антивирусные программы. Однако
сразу хотелось бы отметить, что не существует
антивирусов, гарантирующих стопроцентную
защиту от вирусов, и заявления о существовании
таких систем можно расценить как либо
недобросовестную рекламу, либо непрофессионализм.
Таких систем не существует, поскольку
на любой алгоритм антивируса всегда можно
предложить контр-алгоритм вируса, невидимого
для этого антивируса (обратное, к счастью,
тоже верно: на любой алгоритм вируса всегда
можно создать антивирус).
Следует также обратить внимание на несколько
терминов, применяемых при обсуждении
антивирусных программ:
«Ложное срабатывание»
(False positive) — детектирование вируса в незараженном объекте (файле, секторе или системной памяти). Обратный термин — «False negative», т.е. недетектирование вируса в зараженном объекте.
«Сканирование
по запросу» («on-demand») — поиск вирусов по запросу пользователя.
В этом режиме антивирусная программа
неактивна до тех пор, пока не будет вызвана
пользователем из командной строки, командного
файла или программы-расписания (system scheduler).
«Сканирование на-лету» («real-time», «on-the-fly») — постоянная
проверка на вирусы объектов, к которым
происходит обращение (запуск, открытие,
создание и т.п.). В этом режиме антивирус
постоянно активен, он присутствует в
памяти «резидентно» и проверяет объекты
без запроса пользователя.
2.1.1 Антивирусные программы
Для обнаружения, удаления и защиты от
компьютерных вирусов разработаны специальные
программы, которые позволяют обнаруживать
и уничтожать вирусы. Такие программы
называются антивирусными. Современные
антивирусные программы представляют
собой многофункциональные продукты,
сочетающие в себе как превентивные, профилактические
средства, так и средства лечения вирусов
и восстановления данных.
2.1.1.1 Требования к антивирусным
программам
Количество и разнообразие вирусов велико,
и чтобы их быстро и эффективно обнаружить,
антивирусная программа должна отвечать
некоторым параметрам.
Стабильность и
надежность работы. Этот параметр, без сомнения, является
определяющим — даже самый лучший антивирус
окажется совершенно бесполезным, если
он не сможет нормально функционировать
на вашем компьютере, если в результате
какого-либо сбоя в работе программы процесс
проверки компьютера не пройдет до конца.
Тогда всегда есть вероятность того, что
какие-то зараженные файлы остались незамеченными.
Размеры вирусной
базы программы (количество вирусов, которые правильно
определяются программой). С учетом постоянного
появления новых вирусов база данных должна
регулярно обновляться — что толку от
программы, не видящей половину новых
вирусов и, как следствие, создающей ошибочное
ощущение “чистоты” компьютера. Сюда
же следует отнести и возможность программы
определять разнообразные типы вирусов,
и умение работать с файлами различных
типов (архивы, документы). Немаловажным
также является наличие резидентного
монитора, осуществляющего проверку всех
новых файлов “на лету” (то есть автоматически,
по мере их записи на диск).
Скорость работы
программы, наличие дополнительных возможностей типа алгоритмов
определения даже неизвестных программе
вирусов (эвристическое сканирование).
Сюда же следует отнести возможность восстанавливать
зараженные файлы, не стирая их с жесткого
диска, а только удалив из них вирусы. Немаловажным
является также процент ложных срабатываний
программы (ошибочное определение вируса
в “чистом” файле).
Многоплатформенность (наличие версий
программы под различные операционные
системы). Конечно, если антивирус используется
только дома, на одном компьютере, то этот
параметр не имеет большого значения.
Но вот антивирус для крупной организации
просто обязан поддерживать все распространенные
операционные системы. Кроме того, при
работе в сети немаловажным является наличие
серверных функций, предназначенных для
административной работы, а также возможность
работы с различными видами серверов.
2.1.1.2 Характеристика антивирусных
программ
Антивирусные программы делятся на:
Программы-детекторы обеспечивают
поиск и обнаружение вирусов в оперативной
памяти и на внешних носителях, и при обнаружении
выдают соответствующее сообщение. Различают
детекторы универсальные и специализированные.
Универсальные
детекторы в своей работе используют проверку
неизменности файлов путем подсчета и
сравнения с эталоном контрольной суммы.
Недостаток универсальных детекторов
связан с невозможностью определения
причин искажения файлов.
Специализированные
детекторы выполняют поиск известных вирусов по
их сигнатуре (повторяющемуся участку
кода). Недостаток таких детекторов состоит
в том, что они неспособны обнаруживать
все известные вирусы.
Детектор, позволяющий обнаруживать
несколько вирусов, называют полидетектором.
Недостатком таких антивирусных программ
является то, что они могут находить только
те вирусы, которые известны разработчикам
таких программ.
Программы-доктора (фаги), не только находят зараженные
вирусами файлы, но и "лечат" их, т.е.
удаляют из файла тело программы вируса,
возвращая файлы в исходное состояние.
В начале своей работы фаги ищут вирусы
в оперативной памяти, уничтожая их, и
только затем переходят к "лечению"
файлов. Среди фагов выделяют полифаги, т.е. программы-доктора,
предназначенные для поиска и уничтожения
большого количества вирусов.
Учитывая, что постоянно появляются новые
вирусы, программы-детекторы и программы-доктора
быстро устаревают, и требуется регулярное
обновление их версий.
Программы-ревизоры относятся
к самым надежным средствам защиты от
вирусов. Ревизоры запоминают исходное
состояние программ, каталогов и системных
областей диска тогда, когда компьютер
не заражен вирусом, а затем периодически
или по желанию пользователя сравнивают
текущее состояние с исходным. Обнаруженные
изменения выводятся на экран видеомонитора.
Как правило, сравнение состояний производят
сразу после загрузки операционной системы.
При сравнении проверяются длина файла,
код циклического контроля (контрольная
сумма файла), дата и время модификации,
другие параметры.
Программы-ревизоры имеют достаточно
развитые алгоритмы, обнаруживают стелс-вирусы
и могут даже отличить изменения версии
проверяемой программы от изменений, внесенных
вирусом.
Программы-фильтры (сторожа) представляют
собой небольшие резидентные программы,
предназначенные для обнаружения подозрительных
действий при работе компьютера, характерных
для вирусов. Такими действиями могут
являться:
попытки коррекции
файлов с расширениями СОМ и ЕХЕ;
изменение атрибутов
файлов;
прямая запись
на диск по абсолютному адресу;
запись в загрузочные
сектора диска.
загрузка резидентной
программы.
При попытке какой-либо программы
произвести указанные действия "сторож"
посылает пользователю сообщение и предлагает
запретить или разрешить соответствующее
действие. Программы-фильтры весьма полезны,
так как способны обнаружить вирус на
самой ранней стадии его существования
до размножения. Однако они не "лечат"
файлы и диски. Для уничтожения вирусов
требуется применить другие программы,
например фаги. К недостаткам программ-сторожей
можно отнести их "назойливость"
(например, они постоянно выдают предупреждение
о любой попытке копирования исполняемого
файла), а также возможные конфликты с
другим программным обеспечением.
Вакцины (иммунизаторы)
- это резидентные программы, предотвращающие
заражение файлов. Вакцины применяют,
если отсутствуют программы-доктора, "лечащие"
этот вирус. Вакцинация возможна только
от известных вирусов. Вакцина модифицирует
программу или диск таким образом, чтобы
это не отражалось на их работе, а вирус
будет воспринимать их зараженными и поэтому
не внедрится. В настоящее время программы-вакцины
имеют ограниченное применение.
Существенным недостатком таких программ
является их ограниченные возможности
по предотвращению заражения от большого
числа разнообразных вирусов.
2.1.1.3 Методики антивирусных
программ
Существует несколько основополагающих
методов поиска вирусов, которые применяются
антивирусными программами:
Антивирусные программы могут реализовывать
все перечисленные выше методики, либо
только некоторые из них.
Сканирование
Сканирование является наиболее традиционным
методом поиска вирусов. Оно заключается
в поиске сигнатур, выделенных из ранее
обнаруженных вирусов. Антивирусные программы-сканеры,
способные удалить обнаруженные вирусы,
обычно называются полифагами.
Недостатком простых сканеров является
их неспособность обнаружить полиморфные
вирусы, полностью меняющие свой код. Для
этого необходимо использовать более
сложные алгоритмы поиска, включающие
эвристический анализ проверяемых программ.
Кроме того, сканеры могут обнаружить
только уже известные и предварительно
изученные вирусы, для которых была определена
сигнатура. Поэтому программы-сканеры
не защитят ваш компьютер от проникновения
новых вирусов, которых, кстати, появляется
по несколько штук в день. Как результат,
сканеры устаревают уже в момент выхода
новой версии.
Эвристический
анализ
Эвристический анализ зачастую используется
совместно со сканированием для поиска
шифрующихся и полиморфных вирусов. В
большинстве случаев эвристический анализ
позволяет также обнаруживать и ранее
неизвестные вирусы. В этом случае, скорее
всего их лечение будет невозможно.
Если эвристический анализатор сообщает,
что файл или загрузочный сектор, возможно,
заражен вирусом, вы должны отнестись
к этому с большим вниманием. Необходимо
дополнительно проверить такие файлы
с помощью самых последних версий антивирусных
программ сканеров или передать их для
исследования авторам антивирусных программ.
Обнаружение изменений
Заражая компьютер, вирус делает изменения
на жестком диске: дописывает свой код
в заражаемый файл, изменяет системные
области диска и т. д. На обнаружении таких
изменений основываются работа антивирусных
программ-ревизоров.
Антивирусные программы-ревизоры запоминают
характеристики всех областей диска, которые
могут подвергнутся нападению вируса,
а затем периодически проверяют их. В случае
обнаружения изменений, выдается сообщение
о том, что возможно на компьютер напал
вирус.
Следует учитывать, что не все изменения
вызваны вторжением вирусов. Так, загрузочная
запись может изменится при обновлении
версии операционной системы, а некоторые
программы записывают внутри своего выполнимого
файла данные.
Резидентные мониторы
Антивирусные программы, постоянно находящиеся
в оперативной памяти компьютера и отслеживающие
все подозрительные действия, выполняемые
другими программами, носят название резидентных
мониторов или сторожей. К сожалению, резидентные
мониторы имеют очень много недостатков,
которые делают этот класс программ малопригодными
для использования. Они раздражают пользователей
большим количеством сообщений, по большей
части не имеющим отношения к вирусному
заражению, в результате чего их отключают.
2.1.1.4 Краткий обзор антивирусных
программ
При выборе антивирусной программы необходимо
учитывать не только процент обнаружения
вирусов, но и способность обнаруживать
новые вирусы, количество вирусов в антивирусной
базе, частоту ее обновления, наличие дополнительных
функций.
В настоящее время серьезный антивирус
должен уметь распознавать не менее 25000
вирусов. Это не значит, что все они находятся
"на воле". На самом деле большинство
из них или уже прекратили свое существование
или находятся в лабораториях и не распространяются.
Реально можно встретить 200-300 вирусов,
а опасность представляют только несколько
десятков из них.
Существует множество антивирусных
программ. Рассмотрим наиболее известные
из них.
AVSP
(Anti-Virus Software Protection)
Интересным программным продуктом является
антивирус AVSP. Эта программа сочетает
в себе и детектор, и доктор, и ревизор,
и даже имеет некоторые функции резидентного
фильтра (запрет записи в файлы с атрибутом
READ ONLY). Антивирус может лечить как известные,
так и неизвестные вирусы, причем о способе
лечения последних программе может сообщить
сам пользователь. К тому же AVSP может лечить
самомодифицирующиеся и Stealth-вирусы (невидимки).
При запуске AVSP появляется система окон
с меню и информация о состоянии программы.
Очень удобна контекстная система подсказок,
которая дает пояснения к каждому пункту
меню. Она вызывается классически, клавишей
F1, и меняется при переходе от пункта к
пункту. Так же не маловажным достоинством
в наш век Windows-ов и "Полуосей"(OS/2)
является поддержка мыши. Существенный
недостаток интерфейса AVSP - отсутствие
возможности выбора пунктов меню нажатием
клавиши с соответствующей буквой, хотя
это несколько компенсируется возможностью
выбрать пункт, нажав ALT и цифру, соответствующую
номеру этого пункта.