Работа антивирусных программ


Антивирусные программы – это программы, основной задачей которых является защита именно от вирусов, или точнее, от вредоносных программ.
Практически любая антивирусная программа объединяет в разных пропорциях все технологии и методы защиты от вирусов, созданные к сегодняшнему дню.
Из всех методов антивирусной защиты можно выделить две основные группы:

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


Сигнатурный анализ

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

Сигнатура вируса – совокупность черт, позволяющих однозначно идентифицировать наличие вируса в файле (включая случаи, когда файл целиком является вирусом).

Антивирусная база – совокупность сигнатур известных вирусов.

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

Очень часто для обнаружения семейства похожих вирусов используется одна сигнатура, и поэтому считать, что количество сигнатур равно количеству обнаруживаемых вирусов, нельзя.
Важное дополнительное свойство сигнатур – точное и гарантированное определение типа вируса. Данное свойство позволяет занести в базу, как сигнатуры, так и способы лечения вируса. Если бы сигнатурный анализ не давал ответа, что это за вирус, очевидно, лечение было бы не возможно – слишком большим был бы риск совершить не те действия и вместо лечения получить дополнительные потери информации.

Отрицательное свойство – для получения сигнатуры необходимо иметь образец вируса. Следовательно, сигнатурный метод непригоден для защиты от новых вирусов, т. к. до тех пор, пока вирус не попал на анализ к экспертам, создать его сигнатуру невозможно. С момента появления вируса в сети Интернет до выпуска первых сигнатур обычно проходит несколько часов, и все это время вирус способен заражать компьютеры почти беспрепятственно. Почти – потому что в защите от новых вирусов помогают дополнительные средства защиты, рассмотренные ранее, а также эвристические методы, используемые в антивирусных программах.


Эвристический анализ

Поиск вирусов, похожих на известные
Эвристика – значит, «находить». Эвристический анализ основывается на (весьма правдоподобном) предположении, что новые вирусы часто оказываются похожи на какие-либо из уже известных. Поэтому в антивирусных базах находятся сигнатуры для определения не одного, а сразу нескольких вирусов. Следовательно, эвристический метод заключается в поиске файлов, которые не полностью, но очень близко соответствуют сигнатурам известных вирусов.

Преимущества: возможность обнаружить новые вирусы еще до того, как для них будут выделены сигнатуры.

Недостаток:

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


Поиск вирусов, выполняющих подозрительные действия

Другой метод, основанный на эвристике, исходит из предположения, что вредоносные программы так или иначе стремятся нанести вред компьютеру, и основан на выделении основных вредоносных действий.

Например:

  • удаление файла;
  • запись в файл;
  • запись в определенные области системного реестра;
  • открытие порта на прослушивание;
  • перехват данных вводимых с клавиатуры;
  • рассылка писем;


Выполнение каждого такого действия по отдельности не является поводом считать программу вредоносной. Однако, при выполнении программой последовательно нескольких таких действий, например, записывает запуск себя же в ключ автозапуска системного реестра, перехватывает данные вводимые с клавиатуры и с определенной частотой пересылает эти данные на какой-то адрес в Интернет, значит эта программа, по меньшей мере, подозрительна. Основанный на этом принципе эвристический анализатор постоянно следит за действиями, которые выполняют программы.

Преимущества: возможность обнаруживать неизвестные ранее вредоносные программы, даже если они не очень похожи на уже известные (использование для проникновения на компьютер новую уязвимость, а после этого – выполнять уже привычные вредоносные действия). Такую программу может пропустить эвристический анализатор первого типа, но вполне может обнаружить анализатор второго типа.

Недостатки:

  • ложные срабатывания;
  • невозможность лечения;
  • невысокая эффективность.


Дополнительные средства

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


Модуль обновления
Каждый антивирус должен содержать модуль обновления, чтобы сигнатурный анализ эффективно справлялся с самыми последними вирусами, антивирусные эксперты постоянно анализируют образцы новых вирусов и выпускают для них сигнатуры. После создания новых сигнатур, они размещаются на серверах компании – производителя антивируса и становятся доступными для загрузки. Модуль обновления, обращаясь к этим серверам, и определив наличие новых файлов, загружает их на компьютер пользователя и дает команду антивирусным модулям использовать новые файлы сигнатур.
Некоторые антивирусные компании создают специальные протоколы для загрузки своих обновлений антивирусной базы. В таком случае, модуль обновления может использовать и этот специальный протокол.
Модули обновления отличаются настройками действий, на случай, если источник обновлений недоступен (адреса нескольких серверов). Или же в модуле обновления может быть настройка – повторять попытки обновления с заданным интервалом определенное количество раз или же до тех пор, пока сервер не станет доступным. Эти две настройки могут присутствовать и одновременно.


Модуль планирования
Выбирает для каждого действия расписание, которое больше всего подходит именно для этого типа действия. Существует ряд действий, которые антивирус должен выполнять регулярно: в частности, проверять весь компьютер на наличие вирусов и обновлять антивирусную базу. Модуль обновления как раз и позволяет настроить периодичность выполнения этих действий.


Модуль управления

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


Основные требования к такому модулю – удобный доступ к настройкам, интуитивная понятность, подробная справочная система, описывающая каждую настройку, возможность защитить настройки от изменений, если за компьютером работает несколько человек.

Антивирусы, которые используются для защиты больших сетей, оборудованы специальным модулем управления. Основные свойства этого модуля управления:

  • поддержка удаленного управления и настройки – администратор безопасности может запускать и останавливать антивирусные модули, а также менять их настройки по сети, не вставая со своего места;
  • защита настроек от изменений – модуль управления не позволяет локальному пользователю изменять настройки или останавливать антивирус, чтобы пользователь не мог ослабить антивирусную защиту организации;


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


Тестирование работы антивируса

Нужен такой способ тестирования антивирусов, который был бы безопасным, но давал четкий ответ на вопрос, корректно ли работает антивирус. Понимая важность проблемы, организация EICAR при участии антивирусных компаний создала специальный тестовый файл, который был назван по имени организации – eicar.com.
Eicar.com – это исполняемый файл в COM-формате, который не выполняет никаких вредоносных действий, а просто выводит на экран строку «EICAR-STANDARD-ANTIVIRUS-TEST-FILE!». Тем не менее, все антивирусные компании договорились включить этот файл в свои антивирусные базы и детектировать его как вирус, специально чтобы пользователи могли без риска протестировать свою антивирусную защиту.
Получить eicar.com можно на сайте организации EICAR по адресу http://www.eicar.org, но проще создать этот файл самому. Дело в том, что машинный код файла eicar.com состоит из печатных символов и его можно создать при помощи любого текстового редактора.

Testovii fail eicar_com
Рис. 1. Тестовый файл eicar.com


Возьмем программу Notepad, и в его окне нужно набрать (можете скопировать) строку:
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*сохранить файл под именем eicar.com, и все – тестовый файл готов.

eicar.com в первую очередь позволяет протестировать, как антивирус справляется с файловыми вирусами и близкими по структуре вредоносными программами – большинством троянов, некоторыми червями.
Однако сейчас разнообразие вредоносных программ гораздо больше. И соответственно больше антивирусных модулей, предназначенных для защиты от различных угроз, а новых способов тестирования антивирусных средств, которые поддерживались бы всеми производителями антивирусов, нет, и приходится полагаться на старые способы.