ПРОГРАММЫ ОБНАРУЖЕНИЯ И ЗАЩИТЫ ОТ ВИРУСОВ
Для обнаружения, удаления и защиты от компьютерных вирусов разработано несколько видов специальных программ, которые позволяют обнаруживать и уничтожать вирусы. Такие программы называются антивирусными.
Различают следующие виды антивирусных программ (рис. 11.11):
§ программы-детекторы;
§ программы-доктора или фаги;
§ программы-ревизоры;
§ программы-фильтры;
§ программы-вакцины или иммунизаторы.
Рис. 11.11. Виды антивирусных программ
Программы-детекторы осуществляют поиск характерной для конкретного вируса последовательности байтов (сигнатуры вируса) в оперативной памяти и в файлах и при обнаружении выдают соответствующее сообщение. Недостатком таких антивирусных программ является то, что они могут находить только те вирусы, которые известны разработчикам таких программ.
Программы-доктора или фаги, а также программы-вакцины не только находят зараженные вирусами файлы, но и "лечат" их, т.е. удаляют из файла тело программы вируса, возвращая файлы в исходное состояние. В начале своей работы фаги ищут вирусы в оперативной памяти, уничтожая их, и только затем переходят к "лечению" файлов. Среди фагов выделяют полифаги, т.е. программы-доктора, предназначенные для поиска и уничтожения большого количества вирусов. Наиболее известными полифагами являются программы Aidstest, Scan, Norton AntiVirus и Doctor Web.
Учитывая, что постоянно появляются новые вирусы, программы-детекторы и программы-доктора быстро устаревают, и требуется регулярное обновление их версий.
Программы-ревизоры относятся к самым надежным средствам защиты от вирусов. Ревизоры запоминают исходное состояние программ, каталогов и системных областей диска тогда, когда компьютер не заражен вирусом, а затем периодически или по желанию пользователя сравнивают текущее состояние с исходным. Обнаруженные изменения выводятся на экран видеомонитора. Как правило, сравнение состояний производят сразу после загрузки операционной системы. При сравнении проверяются длина файла, код циклического контроля (контрольная сумма файла), дата и время модификации, другие параметры. Программы-ревизоры имеют достаточно развитые алгоритмы, обнаруживают стелс-вирусы и могут даже отличить изменения версии проверяемой программы от изменений, внесенных вирусом. К числу программ-ревизоров относится широко распространенная в России программа ADinf фирмы "Диалог-Наука".
Программы-фильтры или "сторожа" представляют собой небольшие резидентные программы, предназначенные для обнаружения подозрительных действий при работе компьютера, характерных для вирусов. Такими действиями могут являться:
§ попытки коррекции файлов с расширениями СОМ и ЕХЕ;
§ изменение атрибутов файлов;
§ прямая запись на диск по абсолютному адресу;
§ запись в загрузочные сектора диска;
При попытке какой-либо программы произвести указанные действия "сторож" посылает пользователю сообщение и предлагает запретить или разрешить соответствующее действие. Программы-фильтры весьма полезны, так как способны обнаружить вирус на самой ранней стадии его существования до размножения. Однако они не "лечат" файлы и диски. Для уничтожения вирусов требуется применить другие программы, например фаги. К недостаткам программ-сторожей можно отнести их "назойливость" (например, они постоянно выдают предупреждение о любой попытке копирования исполняемого файла), а также возможные конфликты с другим программным обеспечением. Примером программы-фильтра является программа Vsafe, входящая в состав пакета утилит операционной системы MS DOS.
Вакцины или иммунизаторы - это резидентные программы, предотвращающие заражение файлов. Вакцины применяют, если отсутствуют программы-доктора, "лечащие" этот вирус. Вакцинация возможна только от известных вирусов. Вакцина модифицирует программу или диск таким образом, чтобы это не отражалось на их работе, а вирус будет воспринимать их зараженными и поэтому не внедрится. В настоящее время программы-вакцины имеют ограниченное применение.
Своевременное обнаружение зараженных вирусами файлов и дисков, полное уничтожение обнаруженных вирусов на каждом компьютере позволяют избежать распространения вирусной эпидемии на другие компьютеры.
Антивирусный комплект АО "Диалог-Наука"
Среди обилия современных программных средств борьбы с компьютерными вирусами предпочтение следует отдать антивирусному комплекту АО "Диалог-Наука", в который входят четыре программных продукта: полифаги Aidstest и Doctor Web (сокращенно Dr.Web), ревизор диска ADinf и лечащий блок ADinf Cure Module. Рассмотрим кратко, как и когда надо применять эти антивирусные программы.
Программа-полифаг Aidstest. Aidstest – это программа, которая умеет обнаруживать и уничтожать более 1300 компьютерных вирусов, получивших наиболее широкое распространение в России. Версии Aidstest регулярно обновляются и пополняются информацией о новых вирусах.
Для вызова Aidstest следует ввести команду:
AIDSTEST
где path - имя диска, полное имя или спецификация файла, маска группы файлов:
* – все разделы жесткого диска,
** – все диски, включая сетевые и диски CD ROM;
options - любая комбинация следующих ключей:
/F - исправлять зараженные программы и стирать испорченные;
/G – проверять все файлы подряд (не только СОМ, ЕХЕ и SYS);
/S – медленная работа для поиска испорченных вирусов;
/X – стирать все файлы с нарушениями в структуре вируса;
/Q – спрашивать разрешение на удаление испорченных файлов;
/В – не предлагать обработку следующей дискеты.
Пример 11.27. Aidstest для проверки и "лечения" диска В:. Обнаруженные зараженные программы будут исправлены. Проверке подлежат все файлы диска. Если файл исправить не удастся, то программа будет просить разрешение на его удаление:
aidstest b: /f /g /q
Программа-полифаг Doctor Web. Эта программа предназначена прежде всего для борьбы с полиморфными вирусами, которые сравнительно недавно появились в компьютерном мире. Использование Dr. Web для проверки дисков и удаления обнаруженных вирусов в целом подобно программе Aidstest. При этом дублирования проверки практически не происходит, так как Aidstest и Dr. Web работают на разных наборах вирусов.
Программа Dr. Web может эффективно бороться со сложными вирусами-мутантами, которые оказываются не под силу программе Aidstest. В отличие от Aidstest программа Dr. Web способна обнаруживать изменения в собственном программном коде, эффективно определять файлы, зараженные новыми, неизвестными вирусами, проникая в зашифрованные и упакованные файлы, а также преодолевая "вакцинное прикрытие". Это достигается благодаря наличию достаточно мощного эвристического анализатора.
В режиме эвристического анализа программа Dr.Web исследует файлы и системные области дисков, пытаясь обнаружить новые или неизвестные ей вирусы по характерным для вирусов кодовым последовательностям. Если таковые будут найдены, то выводится предупреждение о том, что объект, возможно, инфицирован неизвестным вирусом.
Предусмотрены три уровня эвристического анализа. В режиме эвристического анализа возможны ложные срабатывания, т.е. детектирование файлов, не являющихся зараженными. Уровень "эвристики" подразумевает собой уровень анализа кода без наличия ложных срабатываний. Чем выше уровень "эвристики", тем выше процент наличия ошибок или ложных срабатываний. Рекомендуются первые два уровня работы эвристического анализатора.
Третий уровень эвристического анализа предусматривает дополнительную проверку файлов на "подозрительное" время их создания. Некоторые вирусы при заражении файлов устанавливают некорректное время создания, как признак зараженности данных файлов. Например, для зараженных файлов секунды могут иметь значение 62, а год создания может быть увеличен на 100 лет.
В комплект поставки антивирусной программы Dr. Web могут входить также файлы-дополнения к основной вирусной базе программы, расширяющие ее возможности.
Работать с программой Dr. Web можно в двух режимах:
§ в режиме полноэкранного интерфейса с использованием меню и диалоговых окон;
§ в режиме управления через командную строку.
Для разового нерегулярного применения более удобен первый режим, но для регулярного применения с целью систематического входного контроля дискет лучше применять второй режим. При использовании второго режима соответствующая команда запуска Dr. Web должна быть включена либо в меню пользователя операционной оболочки Norton Commander, либо в специальный командный файл.
Командная строка для запуска Dr. Web выглядит следующим образом:
DrWeb [диск: [путь] ] [ключи]
где диск:
X: - логическое устройство жесткого диска или физическое устройство гибкого диска, например F: или А:,
* - все логические устройства на жестком диске,
путь - это путь или маска требуемых файлов.
Наиболее важные ключи:
/AL - диагностика всех файлов на заданном устройстве;
/CU[P] - "лечение" дисков и файлов, удаление найденных вирусов;
Р - удаление вирусов с подтверждением пользователя;
/DL - удаление файлов, корректное лечение которых невозможно;
/НА[уровень] - эвристический анализ файлов и поиск в них неизвестных вирусов, где уровень
может принимать значения 0, 1, 2;
/RР[имя файла] – запись протокола работы в файл (по умолчанию в файл REPORT.WEB);
/CL - запуск программы в режиме командной строки, при тестировании файлов и
системных областей не используется полноэкранный интерфейс;
/QU - выход в DOS сразу после тестирования;
/? – вывод на экран краткой справки.
Если в командной строке Dr.Web не указано ни одного ключа, то вся информация для текущего запуска будет считываться из файла конфигурации DRWEB.INI, расположенного в том же каталоге, что и файл DRWEB.EXE. Файл конфигурации создается в процессе работы с программой Dr. Web с помощью команды сохранения параметров, необходимых для тестирования.
Пример 11.28. Запуск антивирусной программы Dr.Web для проверки и лечения диска В:. Обнаруженные зараженные файлы будут "вылечены". Проверке подлежат все файлы диска. Если файл "вылечить" не удастся, то программа будет просить разрешение на его удаление. Для поиска вирусов должен использоваться эвристический уровень анализа 1. Программа должна выполняться только в режиме командной строки с выходом в DOS после завершения тестирования:
DrWeb В: /AL /CUP /HA1 /QU / CL
Методы защиты.
Определение антивирусных программ и их классификация.
Каким бы ни был вирус, пользователю необходимо знать основные методы защиты от компьютерных вирусов.
Для защиты от вирусов можно использовать:
Общие средства защиты информации, которые полезны также как и страховка от физической порчи дисков, неправильно работающих программ или ошибочных действий пользователя;
Профилактические меры, позволяющие уменьшитьвероятность заражения вирусом;
Специализированные программы для защиты от вирусов. Имеются две основные разновидности общих средств защиты информации, обеспечивающие:
Копирование информации - создание копий файлов и системных областей дисков;
Разграничение доступа, которое предотвращает несанкционированное использование информации, в частности защиту от изменений программ и данных вирусами, неправильно работающими программами и ошибочными действиями пользователей.
Для обнаружения, удаления и защиты от компьютерных вирусов разработано несколько видов специальных программ, которые позволяют обнаруживать и уничтожать вирусы. Такие программы называются антивирусными. Различают следующие виды антивирусных программ:
Программы-детекторы;
Программы-доктора или фаги;
Программы-ревизоры;
Программы-фильтры;
Программы-вакцины или иммунизаторы.
Программы-детекторы осуществляют поиск характерного для конкретного вируса кода (сигнатуры) в оперативной памяти и в файлах и при обнаружении выдают соответствующее сообщение. Недостатком таких антивирусных программ является то, что они могут находить только те вирусы, которые известны разработчикам таких программ.
Программы-доктора или фаги, а также программы-вакцины не только находят зараженные вирусами файлы, но и «лечат» их, т. е. удаляют из файла тело программы-вируса, возвращая файлы в исходное состояние. В начале своей работы фаги ищут вирусы в оперативной памяти, уничтожая их, и только затем переходят к «лечению» файлов. Среди фагов выделяют полифаги, т. е. программы-доктора, предназначенные для поиска и уничтожения большого количества вирусов. Наиболее известные из них: Aidstest, Scan, Norton AntiVirus, Doctor Web.
Учитывая, что постоянно появляются новые вирусы, программы-детекторы и программы-доктора быстро устаревают, и требуется регулярное обновление версий.
Антивирусы-полифаги - наиболее распространенные средства по борьбе с вредоносными программами. Исторически они появились первыми и до сих пор удерживают несомненное лидерство в этой области.
В основе работы полифагов стоит простой принцип - поиск в программах и документах знакомых участков вирусного кода (так называемых сигнатур вирусов). В общем случае сигнатура - это такая запись о вирусе, которая позволяет однозначно идентифицировать присутствие вирусного кода в программе или документе. Чаще всего сигнатура - это непосредственно участок вирусногокода или его контрольная сумма (дайджест).
Первоначально антивирусы-полифаги работали по очень простому принципу - осуществляли последовательный просмотр файлов на предмет нахождения в них вирусных программ. Если сигнатура вируса была обнаружена, то производилась процедура удаления вирусного кода из тела программы или документа. Прежде чем начать проверку файлов, программа-фаг всегда проверяет оперативную память. Если в оперативной памяти оказывается вирус, то происходит его деактивация. Это вызвано тем, что зачастую вирусные программы производят заражение тех программ, которые запускаются или открываются в тот момент, когда вирус находится в активной стадии (это связано со стремлением экономить на усилиях по поиску объектов заражения). Таким образом, если вирус останется активным в памяти, то тотальная проверка всех исполняемых файлов приведет к тотальному заражению системы.
В настоящее время вирусные программы значительно усложнились. Например, появились так называемые «stealth-вирусы». В основе их работы лежит тот факт, что операционная система при обращении к периферийным устройствам (в том числе и к жестким дискам) использует механизм прерываний. Здесь необходимо сделать небольшое отступление на тему «Как работает механизм прерываний». При возникновении прерывания управление передается специальной программе - «Обработчику прерываний». Эта программа отвечает за ввод и вывод информации в/из периферийного устройства. Кроме того, прерывания делятся на уровни взаимодействия с периферией (в нашем случае - с жесткими и гибкими дисками). Есть уровень операционной системы (в среде MS DOS - прерывание 25h), есть уровень базовой системы ввода/вывода (уровень BIOS - прерывание 13h). Опытные системные программисты могут работать и напрямую, обращаясь к портам ввода/вывода устройств. Но это довольно серьезная и трудная задача. Столь многоуровневая система сделана, прежде всего, с целью сохранения переносимости приложений. Именно благодаря такой системе, скажем, оказалось возможным осуществлять запуск DOS-приложений в многозадачных средах типа MS Windows или IBM OS/2.
Но в такой системе изначально скрыта и уязвимость: управляя обработчиком прерываний, можно управлять потоком информации от периферийного устройства к пользователю. Stealth-вирусы, в частности, используют механизм перехвата управления при возникновении прерывания. Заменяя, оригинальный обработчик прерывания своим кодом, stealth-вирусы контролируют чтение данных с диска.
В случае, если с диска читается зараженная программа, вирус «выкусывает» собственный код (обычно код не буквально «выкусывается», а происходит подмена номера читаемого сектора диска). В итоге пользователь получает для чтения «чистый» код. Таким образом, до тех пор, пока вектор обработчика прерываний изменен вирусным кодом, сам вирус активен в памяти компьютера, обнаружить его простым чтением диска средствами операционной системы невозможно. Схожий механизм маскировки используется и загрузочными вирусами, о которых будет сказано дальше. В целях борьбы со stealth-вирусами ранее рекомендовалось (и, в принципе, рекомендуется и сейчас) осуществлять альтернативную загрузку системы с гибкого диска и только после этого проводить поиск и удаление вирусных программ. В настоящее время загрузка с гибкого диска может оказаться проблематичной (для случая с Win32 - антивирусными приложениями запустить их не удастся). Ввиду всего вышесказанного, антивирусы-полифаги оказываются максимально эффективными только при борьбе с уже известными вирусами, то есть с такими, чьи сигнатуры и методы поведения знакомы разработчикам.
Только в этом случае вирус со 100%-ной точностью будет обнаружен и удален из памяти компьютера, а потом - и из всех проверяемых файлов. Если же вирус неизвестен, то он может достаточно успешно противостоять попыткам его обнаружения и лечения. Поэтому главное при пользовании любым полифагом - как можно чаще обновлять версии программы и вирусные базы.
Особняком тут стоят так называемые эвристические анализаторы. Дело в том, что существует большое количество вирусов, алгоритм которых практически скопирован с алгоритма других вирусов.
Как правило, такие вариации создают непрофессиональные программисты, которые по каким-то причинам решили написать вирус. Для борьбы с такими «копиями» и были придуманы эвристические анализаторы. С их помощью антивирус способен находить подобные аналоги известных вирусов, сообщая пользователю, что у него, похоже, завелся вирус. Естественно, надежность эвристического анализатора не 100 %, но все же его коэффициент полезного действия больше 50 %. Вирусы, которые не распознаются антивирусными детекторами, способны написать только наиболее опытные и квалифицированные программисты.
Эвристическим анализатором кода называется набор подпрограмм, анализирующих код исполняемых файлов, памяти или загрузочных секторов для обнаружения в нем разных типов компьютерных вирусов. Основной частью эвристического анализатора является эмулятор кода. Эмулятор кода работает в режиме просмотра, то есть его основная задача - не выполнять код, а выявлять в нем всевозможные события, т. е. совокупность кода или вызов определенной функции операционной системы, направленные на преобразование системных данных, работу с файлами, или обнаруживать часто используемые вирусные конструкции. Грубо говоря, эмулятор просматривает код программы и выявляет те действия, которые эта программа совершает. Если действия этой программы укладываются в какую-то определенную схему, то делается вывод о наличии в программе вирусного кода.
Конечно, вероятность, как пропуска, так и ложного срабатывания весьма высока. Однако, правильно используя механизм эвристики, пользователь может самостоятельно прийти к верным выводам. Например, если антивирус выдает сообщение о подозрении на вирус для единичного файла, то вероятность ложного срабатывания весьма высока. Если же такое повторяется на многих файлах (а до этого антивирус ничего подозрительного в этих файлах не обнаруживал), то можно говорить о заражении системы вирусом с вероятностью, близкой к 100 %. Наиболее мощным эвристическим анализатором в настоящее время обладает антивирус Dr.Web.
Использование эвристического анализатора, помимо всего вышеперечисленного, позволяет также бороться с вирус-генераторами и полиморфными вирусами.
Классический метод определения вирусов по сигнатуре в этом "случае вообще оказывается неэффективен. Вирус-генераторы - это специализированный набор библиотек, который позволяет пользователю легко сконструировать свой собственный вирус, даже имея слабые познания в программировании. К написанной программе, подключаются библиотеки генератора, вставляются в нужных местах вызовы внешних процедур - и вот элементарный вирус превратился в достаточно сложный продукт. Самое печальное, что в этом случае сигнатура вируса будет каждый раз другая, поэтому отследить вирус оказывается возможным только по характерным вызовам внешних процедур - а это уже работа эвристического анализатора. Полиморфный вирус имеет еще более сложную структуру. Само тело вируса видоизменяется от заражения к заражению, при этом сохраняя свое функциональное наполнение.
В простейшем случае - если разбросать в теле вируса случайным образом ничего не исполняющие, пустые операторы (типа «mov ax, ax» или «пор»), то тело вирусного кода претерпит значительные изменения, а алгоритм останется прежним. В этом случае на помощь также приходит эвристический анализатор.
Вакцины или иммунизаторы - это резидентные программы, не допускающие заражение файлов. Вакцины используют в том случае, если отсутствуют программы-доктора, «лечащие» этот вирус. Вакцинация может быть использована только от известных вирусов. Суть данного метода в том, что вакцина видоизменяет программу или диск таким образом, чтобы это не выражалось в их работе, а вирус будет считать их зараженными, и, следовательно, не внедрится. В настоящее время программы-вакцины ограничены в применении.
Иммунизаторы выделяются двух видов: иммунизаторы, оповещающие о заражении, и иммунизаторы, не допускающие заражение каким-либо вирусом. Первые чаще всего записываются в конце файлов и каждый раз при запуске файла проверяют его на изменение. Второй тип иммунизации охраняет систему от поражения вирусом какого-то определенного вида.
Программы-фильтры
Программы-фильтры, которые тоже называются резидентными сторожами и мониторами, всегда находятся в оперативной памяти и перехватывают заданные прерывания для того, чтобы проверить их на подозрительные действия. Также они способны блокировать «опасные» действия или выдавать запрос пользователю.
Действия, подлежащие контролю, могут быть следующими: модификация главной загрузочной записи (MBR) и загрузочных записей логических дисков и ГМД, запись по абсолютному адресу, низкоуровневое форматирование диска, оставление в оперативной памяти резидентного модуля и др. Так же как и ревизоры, фильтры часто являются «навязчивыми» и создают определенные неудобства в работе пользователя.
Все виды антивирусных программ направлены, прежде всего, на защиту компьютера от посягательства вирусов.
Каждый человек, устанавливая антивирусную программу, стремиться достичь определённых результатов. Для одних главной задачей является предотвращение утечки информации. Другие уделяют внимание целостности информации. Для третьих на первом месте стоит безотказная работа информационных систем. Были случаи, когда вирусы блокировали работу организаций и предприятий. Более того, несколько лет назад был зафиксирован случай, когда компьютерный вирус стал причиной гибели человека - в одном из госпиталей Нидерландов пациенту была введена летальная доза морфия по той причине, что компьютер был заражен вирусом и выдавал неверную информацию.
Для обнаружения, удаления и защиты от компьютерных вирусов существует несколько разновидностей программ. Такие программы называются антивирусными. Различают следующие виды антивирусных программ:
1. вакцины;
2. детекторы;
3. ревизоры;
4. сторожа;
5. мониторы;
6. полифаги;
7. эвристические анализаторы.
В последнее время, разработчики антивирусных программ, предлагают пользователям комплексные решения, которые включают в себя большую часть или даже все вышеуказанные программы.
Вакцины – это программы, предназначенные для предотвращения заражения файлов от какого-либо одного, конкретного вируса. Вакцины применяются, если отсутствуют программы, могущие обезвредить данный вирус. Вакцинация возможна только от известных вирусов, которые можно обнаружить, но по какой-либо причине невозможно обезвредить. Программа-вакцина модифицирует защищаемую программу или диск таким образом, чтобы это не отражалось на их работе, но при этом настоящий вирус считал защищаемую программу зараженной и поэтому не внедрялся в ее исполняемый код.
Действия программ-вакцин основано на одном из базовых свойств компьютерных вирусов, – не заражать повторно уже инфицированную программу. Для этих целей, при заражении программ, вирусы используют так называемую «черную метку», которая бы позволяла отличать уже инфицированные программы от неинфицированных. Это может быть, например, установка времени создания файла в 24 часа 1 минуту и 62 секунды. Т.к. нормальные программы не могут иметь подобного времени создания, то, обнаружив, что файл создан в это время, вирус считает, что он заражен и не пытается инфицировать его повторно.
Таким образом, программа вакцина просто создает «черную метку» конкретного вируса на защищаемой программе, не изменяя её исполняемого кода, а вирус, обнаруживая такую метку, уже не пытается заразить данный файл.
«Детекторы» или «сканеры» - это программы, которые осуществляют поиск характерной для конкретного вируса сигнатуры, в оперативной памяти компьютера или в файлах на жестком диске, и при обнаружении, выдают соответствующее сообщение. Недостатком этого класса антивирусных программ является то, что они могут находить только те вирусы, которые известны разработчикам.
«Ревизоры» - это программы, которые относятся к самым надёжным средствам защиты от вирусов.
Заражая компьютер, вирус делает изменения на жестком диске: дописывает свой код в заражаемый файл, изменяет системные области диска и т.д. На обнаружении таких изменений основывается работа антивирусных программ, называемых «ревизорами».
Они построены на принципе, обратном принципу построения сканеров. Ревизоры не знают в лицо конкретные вирусы, но они запоминают информацию о каждом конкретном логическом диске и по изменению этой информации, позволяют надежно обнаруживать как известные, так и новые, неизвестные вирусы.
В случае обнаружения изменения сведений об имеющихся на диске данных, вся соответствующая информация об измененном объекте предоставляется пользователю. А тот уже сам должен принять решение: стоит ли, например, проверять данный файл на вирус (если это исполняемый файл) или проигнорировать сообщение, если файл изменялся самим пользователем.
Как правило, сравнение состояний производится сразу после загрузки операционной системы. При сравнении проверяются длина файла, его контрольная сумма, дата и время модификации, и некоторые другие параметры. Программы-ревизоры имеют достаточно развитые алгоритмы, позволяющие обнаруживать даже вирусы таких классов как «стелс» - вирусы и «полиморфные» вирусы, а некоторые даже могут восстановить исходную версию проверяемой программы, удалив изменения, внесенные вирусом.
Преимуществом ревизоров являются – высочайшая скорость проверки дисков (во много десятков раз превышающая скорость работы сканеров) и высокая надежность обнаружения даже неизвестных вирусов.
«Сторожа» - это небольшие резидентные программы, предназначенные для обнаружения подозрительных действий, возникающих при работе пользователя на компьютере, и характерных для вирусов. К числу таких действий могут относиться:
1. попытки коррекции файлов с расширениями COM, EXE, DLL и т.д., обычно неизменяемых;
2. изменение атрибутов файла;
4. запись в загрузочные сектора диска;
При попытке какой-либо программы произвести указанные действия «сторож» посылает пользователю сообщение и предлагает запретить или разрешить соответствующее действие.
Одним из самых крупных недостатков программ этого класса является то, что при неправильной (а иногда даже и при правильной) настройке, они буквально «засыпают» пользователя предупреждениями, в результате чего их обычно отключают.
«Мониторы» (или программы-фильтры) – это антивирусные программы, основанные по принципу полифага, и использующие для обнаружения вирусов базу данных их сигнатур. Антивирусный монитор располагается резидентно в памяти компьютера, и проверяет на наличие вирусов только те программы, над которыми производит какие-либо манипуляции пользователь, или операционная система.
Обычно антивирусные мониторы проверяют все файлы, над которыми производятся следующие манипуляции:
1. запуск программы на выполнение;
2. изменение атрибутов файла;
3. открытие документ (Microsoft Office);
4. копирование или перемещение файла;
5. редактирование файла;
Программы-фильтры являются полезными с той точки зрения, что помогают пользователю обнаружить вирус на самой ранней стадии его существования, еще до того момента, когда распространение вируса примет характер эпидемии.
«Полифаги» - это программы, которые способны благополучно удалить вирус и восстановить работоспособность испорченных программ.
Для каждого вируса, путем анализа его кода, способов заражения файлов и т.д. выделяется некоторая, характерная только для него, последовательность байт. Эта последовательность называется сигнатурой данного вируса. Поиск вирусов, в простейшем случае, сводится к поиску их сигнатур. После обнаружения вируса в теле программы (или загрузочного сектора, который тоже, впрочем, содержит программу начальной загрузки), полифаг обезвреживает его. Для этого разработчики антивирусных средств тщательно изучают работу каждого конкретного вируса: что он портит, как он портит, где он прячет то, что испортит и т.д.
Сканирование является наиболее традиционным методом поиска вирусов. Оно заключается в поиске сигнатур, выделенных из ранее обнаруженных вирусов. Вирусные базы современных сканеров содержат более 40000 масок вирусов.
Недостатком простых сканеров является их неспособность обнаруживать «полиморфные» вирусы, полностью меняющие свой код. Современные полифаги используют другие методы поиска вирусов. Для этого они используют более сложные алгоритмы поиска, включающие эвристический анализ проверяемых программ. Учитывая, что постоянно появляются новые вирусы, программы-детекторы и программы-полифаги быстро устаревают, и требуется регулярное обновление версий баз данных, содержащих сигнатуры вновь появившихся вирусов. Как результат, сканеры устаревают уже в момент выхода новой версии.
Эвристические анализаторы – программы, выполняющие под своим контролем, проверяемые программы и обнаруживающие действия, характерные для вирусов. Благодаря этому эвристические анализаторы способны находить «полиморфные» вирусы также легко, как и обычные вирусы, не использующие механизма маскировки, кроме того, они могут обнаруживать вирусы, ранее неизвестные авторам антивирусной программы.
Для выявления указанных маскирующихся вирусов используются специальные методы. К ним можно отнести метод эмуляции процессора. Метод заключается в имитации выполнения процессором программы и подсовывания вирусу фиктивных управляющих ресурсов. Обманутый таким образом вирус, находящийся под контролем антивирусной программы, расшифровывает свой код. После этого, сканер сравнивает расшифрованный код с кодами из своей базы данных сканирования.
Антивирусные программы делятся на: программы-детекторы, программы-доктора, программы-ревизоры, программы-фильтры, программы-вакцины.
· Программы-детекторы. Их назначение – лишь обнаружить вирус. Детекторы вирусов могут обнаружить загрузочные вирусы в загрузочных секторах дискет, выполнять сканирование файлов на магнитных дисках, а также поступающие по электронной почте сообщения (файлы) с целью обнаружения сигнатур известных вирусов. После выявления вируса детектор предлагает перейти к полному сканированию дисков и «лечению» зараженных файлов. Такие программы в чистом виде в настоящее время редки, но функция детектирования вирусов в фоновом режиме имеется практически во всех комплексных антивирусных программах.
Различают детекторы универсальные и специализированные.
· Универсальные детекторы в своей работе используют проверку неизменности файлов путем подсчета и сравнения с эталоном контрольной суммы. Недостаток универсальных детекторов связан с невозможностью определения причин искажения файлов.
· Специализированные детекторы выполняют поиск известных вирусов по их сигнатуре (повторяющемуся участку кода). Недостаток таких детекторов состоит в том, что они неспособны обнаруживать все известные вирусы.
Детектор, позволяющий обнаруживать несколько вирусов, называют полидетектором .
Недостатком таких антивирусных программ является то, что они могут находить только те вирусы, которые известны разработчикам таких программ.
· Программы-доктора (фаги). Фаг – это программа, которая способна не только обнаружить, но и уничтожить вирус, т.е. удалить его код из зараженных файлов и восстановить их работоспособность.
Очень мощными и эффективными антивирусными средствами являются фаги Doctor Web (созданный И. Даниловым) и KAV (автор Е. Касперский).
Детекторы этих фагов не просто сканируют файлы в поисках одной из известных вирусных сигнатур, но и реализуют эвристический метод поиска вирусов, могут находить и обезвреживать так называемые полиморфные вирусы, проверять файлы, находящиеся в архивах. Среди фагов выделяют полифаги, т.е. программы-доктора, предназначенные для поиска и уничтожения большого количества вирусов.
Учитывая, что постоянно появляются новые вирусы, программы-детекторы и программы-доктора быстро устаревают, и требуется регулярное обновление их версий.
· Программы-ревизоры. Программа-ревизор контролирует возможные пути распространения программ-вирусов и заражения компьютеров. Программы-ревизоры относятся к самым надежным средствам защиты от вирусов. Ревизоры основаны на средствах, позволяющих следить за целостностью и изменениями файлов и системных областей магнитных дисков, передачу информации компьютером в интернет.
Программы-ревизоры имеют достаточно развитые алгоритмы, обнаруживают стелс - вирусы и могут даже отличить изменения версии проверяемой программы от изменений, внесенных вирусом.
· Программы - фильтры (сторожа). Сторож – это резидентная программа, постоянно находящаяся в памяти компьютера, контролирующая операции компьютера.Предназначена для обнаружения подозрительных действий при работе компьютера, характерных для вирусов. Такими действиями могут являться:
· Попытки коррекции файлов с расширениями СОМ и ЕХЕ;
· Изменение атрибутов файлов;
· Прямая запись на диск по абсолютному адресу;
· Запись в загрузочные сектора диска.
При попытке какой-либо программы произвести указанные действия "сторож" посылает пользователю сообщение предлагает запретить или разрешить соответствующее действие. Программы-фильтры весьма полезны, так как способны обнаружить вирус на самой ранней стадии его существования до размножения. Однако они не "лечат" файлы и диски. Для уничтожения вирусов требуется применить другие программы, например фаги. К недостаткам программ-сторожей можно отнести их "назойливость" (например, они постоянно выдают предупреждение о любой попытке копирования исполняемого файла), а также возможные конфликты с другим программным обеспечением.
· Вакцины (иммунизаторы) - это резидентные программы, предотвращающие заражение файлов. Вакцины применяют, если отсутствуют программы-доктора, "лечащие" этот вирус. Вакцинация возможна только от известных вирусов.
Вакцина модифицирует программу или диск таким образом, чтобы это не отражалось на их работе, а вирус будет воспринимать их зараженными и поэтому не внедрится. В настоящее время программы-вакцины имеют ограниченное применение.
Существенным недостатком таких программ является их ограниченные возможности по предотвращению заражения от большого числа разнообразных вирусов.