Обнаружение, основанное на сигнатурах

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Обнаружение, основанное на сигнатурах — метод работы антивирусов и систем обнаружения вторжений, при котором программа, просматривая файл или пакет, обращается к словарю с известными вирусами, составленному авторами программы. В случае соответствия какого-либо участка кода просматриваемой программы известному коду (сигнатуре) вируса в словаре, программа антивирус может заняться выполнением одного из следующих действий:

  1. Удалить инфицированный файл.
  2. Отправить файл в «карантин» (то есть сделать его недоступным для выполнения, с целью недопущения дальнейшего распространения вируса).
  3. Попытаться восстановить файл, удалив сам вирус из тела файла.

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

Антивирусные программы, созданные на основе метода соответствия определению вирусов в словаре, обычно просматривают файлы тогда, когда компьютерная система создаёт, открывает, закрывает или посылает файлы по электронной почте. Таким образом, вирусы можно обнаружить сразу же после занесения их в компьютер и до того, как они смогут причинить какой-либо вред. Надо отметить, что системный администратор может составить график для антивирусной программы, согласно которому могут просматриваться (сканироваться) все файлы на жёстком диске.

Хотя антивирусные программы, созданные на основе поиска соответствия определению вируса в словаре, при обычных обстоятельствах могут достаточно эффективно препятствовать вспышкам заражения компьютеров, авторы вирусов стараются держаться на полшага впереди таких программ-антивирусов, создавая «олигоморфические», «полиморфические» и самые новые «метаморфические» вирусы, в которых некоторые части участки кода перезаписываются, модифицируются, шифруются или искажаются так, чтобы невозможно было обнаружить совпадение с определением в словаре вирусов.

Один из методов аппаратного сканирования заключается в попутном сканировании потока данных специальным устройством под названием контекстный сопроцессор.[1]

Создание и распределение сигнатур

[править | править код]

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

Разработка сигнатур — ручной процесс, тяжело поддающийся автоматизации. Несмотря на массу исследований, посвящённых автоматической генерации сигнатур, [1] [2] нарастающий полиморфизм (и «метаморфизм») вирусов и атак делают синтаксические сигнатуры бессмысленными. Антивирусные компании вынуждены выпускать большое количество сигнатур для всех вариантов одного и того же вируса, и если бы не закон Мура, ни один современный компьютер уже не смог бы закончить сканирование большого числа файлов с такой массой сигнатур в разумное время. Так, в марте 2006 года сканеру Norton Antivirus было известно около 72 131 вирусов, а база программы содержала порядка 400 000 сигнатур.[2]

В нынешнем виде базы сигнатур должны пополняться регулярно, так как большинство антивирусов не в состоянии обнаруживать новые вирусы самостоятельно. Любой владелец ПО, основанного на сигнатурах, обречён на регулярную зависимость от обновления сигнатур, что составляет основу бизнес-модели производителей антивирусов и СОВ.

Своевременная доставка новых сигнатур до пользователей также является серьёзной проблемой для производителей ПО. Современные вирусы и черви распространяются с такой скоростью, что к моменту выпуска сигнатуры и доставки её на компьютер пользователей эпидемия уже может достигнуть своей высшей точки и охватить весь мир. По опубликованным данным доставка сигнатуры занимает от 11 до 97 часов в зависимости от производителя, [3] в то время, как теоретически вирус может захватить весь интернет меньше, чем за 30 секунд.[3]

В большинстве ПО по безопасности база сигнатур является ядром продукта — наиболее трудоёмкой и ценной частью. Именно поэтому большинство вендоров предпочитает держать свои сигнатуры закрытыми — хотя и в этой области существует ряд открытого ПО (напр., ClamAV), а также исследования по обратной разработке закрытых сигнатур.[4] Virus Bulletin регулярно публиковал сигнатуры новых вирусов вплоть до 2000 года.

Недостатки и достоинства синтаксических сигнатур

[править | править код]
  • Позволяют определять конкретную атаку с высокой точностью и малой долей ложных вызовов
  • Беззащитны перед полиморфными вирусами и изменёнными версиями того же вируса
  • Требуют регулярного и крайне оперативного обновления
  • Требуют кропотливого ручного анализа вирусов
  • Неспособны выявить какие-либо новые атаки

Метод эвристического сканирования призван улучшить способность сканеров применять сигнатуры и распознавать модифицированные вирусы в тех случаях, когда сигнатура совпадает с телом неизвестной программы не на 100 %. [4] Данная технология, однако, применяется в современных программах очень осторожно, так как может повысить количество ложных срабатываний.

Примечания

[править | править код]
  1. Архивированная копия. Дата обращения: 30 июня 2010. Архивировано из оригинала 7 ноября 2012 года.
  2. Virus Definitions & Security Updates - Symantec Corp. Дата обращения: 17 марта 2006. Архивировано 15 марта 2006 года.
  3. How to 0wn the Internet in Your Spare Time. Дата обращения: 17 марта 2006. Архивировано 6 апреля 2006 года.
  4. Архивированная копия. Дата обращения: 17 марта 2006. Архивировано 8 февраля 2006 года.