Обнаружение, основанное на сигнатурах Обнаружение, основанное на сигнатурах — метод работы антивирусов и систем обнаружения вторжений, при котором программа, просматривая файлили пакет, обращается к словарю с известными атаками, составленному авторами программы. В случае соответствия какого-либо участка кода просматриваемой программы известному коду (сигнатуре) вируса в словаре, программа антивирус может заняться выполнением одного из следующих действий:
Антивирусные программы, созданные на основе метода соответствия определению вирусов в словаре, обычно просматривают файлы тогда, когда компьютерная система создаёт, открывает, закрывает или посылает файлы по электронной почте. Таким образом, вирусы можно обнаружить сразу же после занесения их в компьютер и до того, как они смогут причинить какой-либо вред. Надо отметить, что системный администратор может составить график для антивирусной программы, согласно которому могут просматриваться (сканироваться) все файлы на жёстком диске. Хотя антивирусные программы, созданные на основе поиска соответствия определению вируса в словаре, при обычных обстоятельствах, могут достаточно эффективно препятствовать вспышкам заражения компьютеров, авторы вирусов стараются держаться на полшага впереди таких программ-антивирусов, создавая «олигоморфические», «полиморфические» и, самые новые, «метаморфические» вирусы, в которых некоторые части участки кода перезаписываютсся, модифицируются, шифруются или искажаются так, чтобы невозможно было обнаружить совпадение с определением в словаре вирусов. Доступно одно описание одного из методов аппаратного сканирования по ссылке. Оно заключается в попутном сканировании потока данных специальным устройством под названием контекстный сопроцессор. Создание и распределение сигнатур Сигнатуры антивирусов создаются в результате кропотливого анализа нескольких копий файла, принадлежащего одному вирусу. Сигнатура должна содержать только уникальные строки из этого файла, настолько характерные, чтобы гарантировать минимальную возможность ложного срабатывания — главный приоритет любой антивирусной компании. Разработка сигнатур — ручной процесс, тяжело поддающийся автоматизации. Несмотря на массу исследований, посвящённых автоматической генерации сигнатур, нарастающий полиморфизм (и «метаморфизм») вирусов и атак делают синтактические сигнатуры бессмысленными. Антивирусные компании вынуждены выпускать большое количество сигнатур для всех вариантов одного и того же вируса, и если бы не закон Мура, ни один современный компьютер уже не смог бы закончить сканирование большого числа файлов с такой массой сигнатур в разумное время. Так, в марте 2006 года сканеру Norton Antivirus было известно около 72 131 вирусов, а база программы содержала порядка 400 000 сигнатур. В нынешнем виде, базы сигнатур должны пополняться регулярно, так как большинство антивирусов не в состоянии обнаруживать новые вирусы самостоятельно. Любой владелец ПО, основанного на сигнатурах, обречён на регулярную зависимость от обновления сигнатур, что составляет основубизнес-модели производителей антивирусов и СОВ. Своевременная доставка новых сигнатур до пользователей также является серьёзной проблемой для производителей ПО. Современные вирусы и черви распространяются с такой скоростью, что к моменту выпуска сигнатуры и доставки её на компьютер пользователей, эпидемия уже может достигнуть своей высшей точки и охватить весь мир. По опубликованным данным, доставка сигнатуры занимает от 11 до 97 часов в зависимости от производителя, в то время как теоретически, вирус может захватить весь интернет меньше, чем за 30 секунд. В большинстве ПО по безопасности база сигнатур является ядром продукта, наиболее трудоёмкой и ценной частью. Именно поэтому большинствовендоров предпочитает держать свои сигнатуры закрытыми — хотя и в этой области существует ряд открытого ПО (напр., ClamAV), а также исследования по обратной разработке закрытых сигнатур. Virus Bulletin регулярно публиковал сигнатуры новых вирусов вплоть до 2000 года. Проблемы разработки сигнатур и слабого распределения некоторых представителей вредоносного ПО приводят к тому, что разработанные в разных антивирусных компаниях сигнатуры содержат определения для разных подмножеств вирусов. Эту проблему можно устранить, разработав международный стандарт на описание антивирусных сигнатур, который будет содержать необходимую информацию для обнаружения, идентификации и устранения вредоносного ПО. Максимальный эффект от такого стандарта можно получить при реализации централизованной базы знаний по вредоносному ПО, в которую все антивирусные компании будут иметь право записи новых сигнатур (или изменение существующих). Но в таком централизованном хранилище (базе данных) каждая запись должна иметь цифровую подпись автора (конкретной компании), которая будет защищать конечных пользователей от атаки на локальную базу сигнатур путем отравления её содержимого. Так же при добавлении новых записей в центральное хранилище сигнатур должен изменяться рейтинг фирм производителей. Этот рейтинг сделает фирмы заинтересованными, так как их работу пользователь может напрямую оценивать. Недостатки и достоинства синтаксических сигнатур
Обнаружение аномалий Обнаружение аномалий — динамический метод работы антивирусов, хостовых и сетевых систем обнаружения вторжений. Программа, использующая этот метод, наблюдает определённые действия (работу программы/процесса, сетевой трафик, работу пользователя), следя за возможными необычными и подозрительными событиями или тенденциями. Антивирусы, использующие метод обнаружения подозрительного поведения программ, не пытаются идентифицировать известные вирусы. Вместо этого они прослеживают поведение всех программ. Если программа пытается записать какие-то данные в исполняемый файл (exe-файл), программа-антивирус может пометить этот файл, предупредить пользователя и спросить, что следует сделать. В отличие от метода соответствия определению вируса в словаре, метод подозрительного поведения даёт защиту от совершенно новых вирусов и сетевых атак, которых ещё нет ни в одной базе вирусов или атак. Однако программы, построенные на этом методе, могут выдавать также большое количество ошибочных предупреждений, что делает пользователя маловосприимчивым к предупреждениям. Если пользователь нажимает мышью на окно «Принять» («Accept») в каждом случае появления такого предупреждения, антивирусная программа не приносит никакой пользы. В последнее время эта проблема ещё более усугубилась, так как стало появляться Обнаружение, основанное на эмуляции Обнаружение, основанное на эмуляции — метод работы антивирусной программы, при котором подозрительный файл либо запускается в тщательно контролируемой среде, либо эмулируется его исполнение с целью выявления тех признаков вредоносного кода, которые появляются только во время исполнения программы. Некоторые программы-антивирусы пытаются имитировать начало выполнения кода каждой новой вызываемой на исполнение программы перед тем как передать ей управление. Если программа использует самоизменяющийся код или проявляет себя как вирус (то есть немедленно начинает искать другие exe-файлы например), такая программа будет считаться вредоносной, способной заразить другие файлы. Однако этот метод тоже изобилует большим количеством ошибочных предупреждений. Ещё один метод определения вирусов включает в себя использование «песочницы» (зачастую основанной на виртуальной машине). Песочница имитирует операционную систему и запускает исполняемый файл в этой имитируемой системе. После исполнения программы антивирусное программное обеспечение анализирует содержимое песочницы на присутствие каких либо изменений, которые можно квалифицировать как действие вируса. Из-за того, что быстродействие системы снижается и требуется достаточно продолжительное время для выполнения программы, антивирусные программы, построенные по этому методу, обычно используются только для сканирования по запросу пользователя. Следует отметить, что эффективность данных программ намного выше, чем у всех остальных, но и затраты на их работу также выше. Несомненно, эти программы представляют интерес для профессионалов, занимающихся вопросами компьютерной безопасности и восстановлением данных после несанкционированного доступа в компьютер пользователя или атак на сервер. Эвристическое сканирование Практически все современные антивирусные средства применяют технологию эвристического анализа программного кода. Эвристический анализ нередко используется совместно с сигнатурным сканированием для поиска сложных шифрующихся и полиморфных вирусов. Методика эвристического анализа позволяет обнаруживать ранее неизвестные инфекции, однако, лечение в таких случаях практически всегда оказывается невозможным. В таком случае, как правило, требуется дополнительное обновление антивирусных баз для получения последних сигнатур и алгоритмов лечения, которые, возможно, содержат информацию о ранее неизвестном вирусе. В противном случае, файл передается для исследования антивирусным аналитикам или авторам антивирусных программ. Методы эвристического сканирования не обеспечивают какой-либо гарантированной защиты от новых, отсутствующих в сигнатурном наборе компьютерных вирусов, что обусловлено использованием в качестве объекта анализа сигнатур ранее известных вирусов, а в качестве правил эвристической верификации — знаний о механизме полиморфизма сигнатур. В то же время, поскольку этот метод поиска базируется на эмпирических предположениях, полностью исключить ложные срабатывания нельзя. Технология эвристического анализа В ряде случаев эвристические методы оказываются чрезвычайно успешными, к примеру, в случае очень коротких программных частей в загрузочном секторе: если программа производит запись в сектор 1, дорожку 0, сторону 0, то это приводит к изменению раздела накопителя. Но кроме вспомогательной программы fdisk эта команда больше нигде не используется, и потому в случае ее неожиданного появления речь идёт о загрузочном вирусе. В процессе эвристического анализа производится проверка эмулируемой программы анализатором кода. К примеру, программа инфицирована полиморфным вирусом, состоящим из зашифрованного тела и расшифровщика. Эмулятор кода эмулирует работу данного вируса по одной инструкции, после этого анализатор кода подсчитывает контрольную сумму и сверяет ее с той, которая хранится в базе. Эмуляция будет продолжаться до тех пор, пока необходимая для подсчета контрольной суммы часть вируса не будет расшифрована. Если сигнатура совпала — программа идентифицирована. Недостатки эвристического сканирования
HIPS HIPS (Host-based Intrusion Prevention System) — система предотвращения вторжений. Продукты этого класса управляют правами приложений на выполнение тех или иных действий, подобно тому, как брандмауэр управляет сетевым доступом; сходство принципов работы обусловливает тот факт, что нередко HIPS объединяются с брандмауэром в составе одного защитного продукта. Принцип работы HIPS является средством проактивной защиты, то есть не содержит базы данных сигнатур вирусов и не осуществляет их детектирование; таким образом, HIPS оперирует не понятиями «легитимный файл — вредоносный файл», а понятиями «разрешенное действие — запрещенное действие». Эффективность HIPS может доходить до 100 % предотвращения повреждения или инфицирования системы, однако большинство программ этого класса требует от пользователя определенных знаний для управления ими. В соответствии с принципом организации защиты HIPS могут быть подразделены на три основные группы. Виды HIPS
|