Сигнатурный поиск

Общие сведения

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

 

Защита от вредоносного программного обеспечения бывает разная. Часть антивирусных программ работает в фоновом режиме и проверяет все запускаемые на компьютере программы; часть сканирует лежащие на диске файлы только когда их специально запустит пользователь, а некоторые из антивирусов работают на серверах и фильтруют трафик. Есть даже такая антивирусная защита, которую именуют аппаратной - правда, так говорить не совсем корректно, поскольку проверку потока данных на вирусы всё равно осуществляет программа, пусть и сидящая в "мозгах" какого-то отдельного периферийного устройства.

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

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

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

Кусок кода, который идентифицировал вирус, назвали сигнатурой, что впоследствии дало название и всему методу. Сигнатурой может служить не весь программный код вируса, а только какой-то его небольшой кусок, содержащий уникальную для данного вируса последовательность байтов. База сигнатур обычно у каждого антивируса своя, и никакие другие антивирусы в неё залезть не могут. Хотя есть и свободные сигнатурные базы, например, та, которую обновляют и пополняют разработчики свободного антивирусного пакета Clam Antivirus. И хотя всё выглядело очень хорошо, вскоре простое сравнение с эталоном стало для антивирусов невозможным, поскольку изменилось поведение самих вирусов. Они со временем стали полиморфными - то есть, тело вируса в каждом новом файле могло отличаться от тела этого же вируса в предыдущем. Так что антивирус уже не мог стопроцентно полагаться на свою базу данных, которой его снабдили разработчики. Это послужило толчком развитию новых методов, которые стали использоваться в новых поколениях антивирусных программ.

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