Методы обнаружения вирусов

Антивирусное программное обеспечение обычно использует два отличных друг от друга метода для выполнения своих задач:

1. Обнаружение подозрительного поведения любой из программ, похожего на поведение заражённой программы

2. Сканирование файлов для поиска известных вирусов, соответствующих определению в антивирусных базах.

 

Методы, которые используют антивирусные средства




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

Рассмотрим эти методы.

1. Сканирование.


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

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

Определение сигнатуры вируса очень сложная задача. Необходимо тщательно изучить принцип работы вируса и сравнить программы, зараженные данным вирусом, и незараженные. Кроме того, сигнатура не должна содержаться в других программах, иначе возможны ложные срабатывания.

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

Надежность увеличивается при приведении вируса к каноническому виду: то есть обнулении всех байтов, приходящихся на переменные и константы.

Хранение сигнатур канонических форм всех известных вирусов (вспомните, что на сегодняшний день их число огромно) требует неоправданно много памяти. Достаточно хранить только контрольную сумму сигнатур вирусов.

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

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

2. Обнаружение изменений, или контроль целостности.


Контроль целостности основан на выполнении двух процедур:

· постановка на учет;

· контроль поставленного на учет.

При внедрении вируса в компьютерную систему обязательно происходят изменения в системе (которые некоторые вирусы успешно маскируют). Это и изменение объема доступной оперативной памяти, и изменение загрузочных секторов дисков, и изменения самих файлов.

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

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


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

4. Метод резидентного сторожа.


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

5. Вакцинирование программ.


Этот метод заключается в дописывании к исполняемому файлу дополнительной подпрограммы, которая первой получает управление при запуске файла, выполняет проверку целостности программы. Проверяться могут любые изменения, например, контрольная сумма файла или другие характеристики.

Что такое ложные тревоги?

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

Ложные тревоги делят на два типа:

· ложная позитивная (положительная);

· ложная негативная (отрицательная).

Ложная позитивная тревога - это когда антивирусное средство сообщает о наличии вируса, а на самом деле его нет.

Ложная негативная тревога - это когда антивирусное средство говорит, что вируса нет, а на самом деле он есть.

Некоторые специалисты ложные тревоги называют ошибками антивирусов, причем ложные негативные тревоги (несрабатывания) называются ошибками первого рода, а ложные позитивные тревоги - ошибками второго рода.

В идеале антивирус должен обнаруживать все возможные вирусы и не должен вызывать ложных тревог.

НОВОЕ НА САЙТЕ