Сканирование подозрительных команд
В арсенале вирусных программ есть особенно опасные средства. Примером такого грозного оружия может служить код, вызывающий форматирование жесткого диска. Каждый случай обнаружения такого кода должен переводить систему в состояние тревоги, или, по крайней мере, система должна уведомить пользователя об этом событии и попросить подтверждения, прежде чем выполнить операцию, которая может привести к катастрофическим последствиям.
Известно, что вирусные программы разных видов могут содержать функционально подобные (но программно не идентичные) блоки. Например, многие виды вирусов содержат функцию внедрения в исполняемый код. Для этого они сначала отыскивают файлы с расширениями ехе, а затем выполняют для них операции открытия и записи. И хотя совокупность этих действий может быть реализована разными кодовыми последовательностями, ее все же можно характеризовать некоторыми общими признаками, которые могут стать опознавательным знаком для функции внедрения вируса.
Если в результате сканирования в файле обнаруживают некоторое число подозрительных команд и/или признаков подозрительных кодовых последовательностей, то делается предположение о вредоносной сущности файла и предпринимаются дополнительные действия по его проверке.
Этот метод обладает хорошим быстродействием, но довольно часто он не способен выявлять новые вирусы.
Отслеживание поведения программ
Принципиально другим подходом по сравнению с методами сканирования содержимого файлов являются методы, основанные на анализе поведения программ во время их выполнения. Этот метод обнаружения вирусов можно сравнить с поимкой преступника «за руку» на месте преступления. Тестируемую программу запускают на выполнение, инструкцию за инструкцией, но все ее подозрительные действия контролируются и протоколируются антивирусной системой. Если программа пытается выполнить какую-либо потенциально опасную команду, например записать данные в исполняемый файл другой программы, то ее работа приостанавливается, и антивирусная система запрашивает пользователя о том, какие действия ей надо предпринять.
Антивирусные средства данного типа часто требуют активного участия в тестировании пользователя, призванного реагировать на многочисленные предупреждения системы, значительная часть которых может оказаться впоследствии ложными тревогами.
ПРИМЕЧАНИЕ-
Важной характеристикой любого антивирусного средства является частота ложных положительных («Да, это вирус») и ложных отрицательных («Нет, вирус отсутствует») заключений. Если система слишком часто бьет лсужНую тревогу, то пользователь этой системы может вообще перестать реагировать на эти сигналы, однако если она слишком часто объявляет зараженный файл «чистым», то возникает вопрос о качестве антивирусного средства.