Основы работы антивирусных программ
Для обнаружения и защиты от компьютерных вирусов разработано несколько видов специальных программ, которые позволяют обнаруживать и уничтожать компьютерные вирусы. Такие программы называются антивирусными. Практически все антивирусные программы обеспечивают автоматическое восстановление зараженных программ и загрузочных секторов. Антивирусные программы используют различные методы обнаружения вирусов.
К основным методам обнаружения компьютерных вирусов можно отнести следующие:
· сигнатурный анализ – метод сравнения с эталоном;
· эвристический анализ;
· поведенческий блокатор (антивирусный мониторинг);
· метод обнаружения изменений;
· встраивание антивирусов в BIOS компьютера и др.
Сигнатурный анализ. Сигнатурный анализ заключается в выявлении характерных идентифицирующих черт каждого вируса и поиска вирусов путем сравнения файлов с выявленными чертами.
Сигнатурой вируса будет считаться совокупность черт, позволяющих однозначно идентифицировать наличие вируса в файле (включая случаи, когда файл целиком является вирусом). Все вместе сигнатуры известных вирусов составляют антивирусную базу.
Эта технология предполагает непрерывное отслеживание новых экземпляров вредоносных программ, их описание и включение в базу сигнатур. Задачу выделения сигнатур, как правило, решают люди – эксперты в области компьютерной вирусологии, способные выделить код вируса из кода программы и сформулировать его характерные черты в форме, наиболее удобной для поиска. В наиболее простых случаях могут применяться специальные автоматизированные средства выделения сигнатур, например, для несложных по структуре троянов или червей, которые не заражают другие программы, а целиком являются вредоносными программами.
Практически в каждой компании, выпускающей антивирусы, есть своя группа экспертов, проводящая анализ новых вирусов и пополняющая антивирусную базу новыми сигнатурами. По этой причине антивирусные базы в разных антивирусах различаются. Тем не менее между антивирусными компаниями существует договоренность об обмене образцами вирусов, а значит, рано или поздно сигнатура нового вируса попадает в антивирусные базы практически всех антивирусов. Лучшим же антивирусом будет тот, для которого сигнатура нового вируса была выпущена раньше всех.
Часто для обнаружения семейства похожих вирусов используется одна сигнатура, и поэтому количество сигнатур не всегда равно количеству обнаруживаемых вирусов. Соотношение количества сигнатур и числа известных вирусов для каждой антивирусной базы свое. Если же учесть, что антивирусные компании обмениваются образцами вирусов, можно с высокой долей уверенности считать, что антивирусные базы наиболее известных антивирусов эквивалентны.
Для шифрующихся и полиморфных вирусов, способных полностью изменять свой код при заражении новой программы или загрузочного сектора, невозможно выделить маску, поэтому антивирусные сканеры их не обнаруживают.
Важное дополнительное свойство сигнатур – точное и гарантированное определение типа вируса. Это свойство позволяет занести в базу не только сами сигнатуры, но и способы лечения вируса.
Главные критерии эффективности сигнатурного метода – это скорость реакции на новые угрозы, частота обновлений, максимальное число обнаруженных угроз.
Главный недостаток сигнатурного метода – задержка при реакции на новые угрозы. Для получения сигнатуры необходимо иметь образец вируса. Создать его сигнатуру невозможно, пока вирус не попал на анализ к экспертам. Поэтому сигнатуры всегда появляются только через некоторое время после появления нового вируса. С момента появления вируса в сети Интернет до выпуска первых сигнатур обычно проходит несколько часов, и все это время вирус способен заражать компьютеры почти беспрепятственно. Именно поэтому традиционный сигнатурный метод непригоден для оперативной защиты от вновь появляющихся вирусов.
Эвристический анализ. Суть эвристических методов состоит в том, что решение проблемы основывается на некоторых правдоподобных предположениях, а не на строгих выводах из имеющихся фактов и предпосылок.
Эвристический анализ основывается на предположении, что новые вирусы часто оказываются похожи на какие-либо из уже известных. Такое предположение оправдывается наличием в антивирусных базах сигнатур для определения не одного, а сразу нескольких вирусов. Этот эвристический метод часто называют поиском вирусов, похожих на известные, или статическим анализом.
Эвристический анализатор (эвристик) – это программа, которая анализирует программный код проверяемого объекта и по косвенным признакам определяет, является ли объект вредоносным. Работа эвристического анализатора, как правило, начинается с поиска в программном коде подозрительных признаков (команд), характерных для вредоносных программ.
Например, многие вредоносные коды ищут исполняемые программы, открывают найденные файлы и изменяют их. Эвристический анализатор просматривает код приложения и, встретив подозрительную команду, увеличивает некий «счетчик подозрительности» для данного приложения. Если после просмотра всего кода значение счетчика превышает заданное пороговое значение, то объект признается подозрительным.
Достоинствами статического анализа являются простота реализации, высокая скорость работы, возможность обнаружения новых, неизвестных вирусов еще до того, как для них будут выделены сигнатуры.
Однако уровень обнаружения новых вредоносных кодов остается довольно низким, а вероятность ложных срабатываний – высокой. Поэтому в современных антивирусах статический анализ используются в сочетании с динамическим.
Динамический эвристический анализатор читает часть кода приложения в буфер эмуляции антивируса и с помощью специальных приемов эмулирует его исполнение. Если в процессе этого псевдоисполнения обнаруживаются какие-либо подозрительные действия, объект признается вредоносным и его запуск на компьютере пользователя блокируется.
В отличие от статического метода, динамический более требователен к ресурсам ПК, так как для анализа приходится использовать безопасное виртуальное пространство, а запуск приложения на компьютере пользователя откладывается на время анализа. Однако и уровень обнаружения вредителей у динамического метода значительно выше, чем у статического, а вероятность ложных срабатываний существенно меньше.
Недостатки эвристических анализаторов:
· невозможность лечения – в силу потенциальных ложных срабатываний и возможного неточного определения типа вируса попытка лечения может привести к большим потерям информации, чем из-за самого вируса, а это недопустимо;
· низкая эффективность против принципиально новых типов вирусов.
Поведенческий блокатор (антивирусный мониторинг). Поведенческий блокиратор – это программа, которая анализирует поведение запущенного приложения и блокирует любые опасные действия. Антивирусный мониторинг позволяет проверять все запускаемые программы, создаваемые, открываемые и сохраняемые документы, файлы программ и документов, полученные через Интернет или скопированные на жесткий диск с дискеты либо компакт-диска.
К основным вредоносным действиям относят:
· удаление файла;
· запись в файл;
· запись в определенные области системного реестра;
· открытие порта на прослушивание;
· перехват данных, вводимых с клавиатуры;
· рассылка писем и др.
Выполнение каждого такого действия по отдельности не дает повода считать программу вредоносной. Но если программа последовательно выполняет несколько таких действий, например перехватывает данные, вводимые с клавиатуры, и с определенной частотой пересылает их на какой-то адрес в Интернете, значит, эта программа по меньшей мере подозрительна.
В отличие от эвристических анализаторов, где подозрительные действия отслеживаются в режиме эмуляции (динамический эвристик), поведенческие блокираторы работают в реальных условиях.
Современные поведенческие блокираторы анализируют не отдельные действия, а последовательность операций. Другими словами, заключение об опасности того или иного приложения выносится на основе сложного анализа. Таким образом, удается значительно сократить количество запросов к пользователю и повысить надежность детектирования.
Современные поведенческие блокираторы способны контролировать широкий спектр событий, происходящих в системе – контроль опасной активности (анализ поведения всех процессов, запущенных в системе, сохранение всех изменений, производимых в файловой системе и реестре). При выполнении некоторым приложением набора подозрительных действий выдается предупреждение пользователю об опасности данного процесса.
Поведенческие блокираторы позволяют производить контроль целостности приложений и системного реестра Microsoft Windows. В последнем случае блокиратор контролирует изменения ключей реестра и позволяет задавать правила доступа к ним для различных приложений. Все вместе это позволяет осуществить откат изменений после определения опасной активности в системе. Таким образом, можно восстанавливать систему даже после вредоносных действий неизвестных программ, вернув ее к незараженному состоянию.
В качестве примера поведенческого блокиратора нового поколения можно привести модуль проактивной защиты (Proactive Defence Module), реализованный в продуктах «Лаборатории Касперского». Данный модуль включает в себя все перечисленные выше возможности и хорошую систему информирования пользователя о том, в чем реально состоит опасность тех или иных подозрительных действий. Любой поведенческий блокиратор на определенном этапе требует вмешательства пользователя, что предполагает наличие у последнего определенной квалификации. На практике пользователь часто не обладает необходимыми знаниями, поэтому информационная поддержка является обязательным атрибутом современных антивирусных решений.
Другой пример такой программы – сторож Spider Guard, который входит в комплект сканера Dr. Web и выполняет функции антивирусного монитора.
Поведенческий блокиратор может предотвратить распространение как известного, так и неизвестного вируса, что является неоспоримым достоинством такого подхода к защите.
Недостатком поведенческих блокираторов остается срабатывание на действия ряда легитимных программ. Для принятия окончательного решения о вредоносности приложения требуется вмешательство пользователя, что предполагает наличие у него достаточной квалификации.
Проактивные методы так же, как и сигнатурные, требуют регулярных обновлений. Для оптимальной антивирусной защиты необходимо сочетание проактивных и сигнатурных подходов. Максимального уровня обнаружения угроз можно достигнуть, только комбинируя эти методы. Примером успешного сочетания проактивных и сигнатурных методов может служить технология ThreatSense компании Eset.
ThreatSense – это сбалансированная технология, позволяющая комбинировать эвристический анализатор и поведенческий блокиратор с сигнатурным методом. Эта технология обеспечивает обнаружение не только известных, но и новых угроз, не снижая при этом скорости работы используемой системы.
Практически любая антивирусная программа объединяет в разных пропорциях все технологии и методы защиты от вирусов, созданные к сегодняшнему дню.
Метод обнаружения изменений. При реализации метода обнаружения изменений антивирусные программы, называемые ревизорами диска, запоминают предварительно характеристики всех областей диска, которые могут подвергнуться нападению, а затем периодически проверяют их. Заражая компьютер, вирус изменяет содержимое жесткого диска: например, дописывает свой код в файл программы или документа, добавляет вызов программы-вируса в файл AUTOEXEC.BAT, изменяет загрузочный сектор, создает файл-спутник. При сопоставлении значений характеристик областей диска антивирусная программа может обнаружить изменения, сделанные как известным, так и неизвестным вирусом.
Встраивание антивирусов в BIOS компьютера. В системные платы компьютеров тоже встраивают простейшие средства защиты от вирусов. Эти средства позволяют контролировать все обращения к главной загрузочной записи жестких дисков, а также к загрузочным секторам дисков и дискет. Если какая-либо программа пытается изменить содержимое загрузочных секторов, срабатывает защита и пользователь получает соответствующее предупреждение. Однако эта защита не очень надежна. Известны вирусы, которые пытаются отключить антивирусный контроль BIOS, изменяя некоторые ячейки в энергонезависимой памяти (CMOS- памяти) компьютера.