Поведенческие анализаторы помогают предотвратить эпидемию распространения вирусов

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

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

Одним из эффективных методов защиты является правильное администрирование информационной системы, значительно снижающее вероятность проникновения вирусов. Однако практика показывает, что использовать административные методы защиты может позволить себе только крупная компания. Управление же информационными системами, и в частности системами защиты в организациях небольшого и среднего размера, оказывается на низком уровне. Например, Windows NT обладает широкими возможностями по настройке защиты, ограничивающими распространение вирусов. Между тем, как правило, ОС устанавливается с настройками по умолчанию, что открывает создателям вирусов «оперативный простор».

Поведенческий анализатор

Поведенческий анализатор не выискивает в программе или скрипте признаков известных ему вирусов, а контролирует поведение программы и блокирует те ее действия, которые обычно используются вирусом для размножения и причинения вреда. Есть три типа поведенческих анализаторов, которые отслеживают: действия программы непосредственно перед выполнением, исходный код или последствия действия программы. Анализ действий может применяться практически везде, но для исполняемых кодов он слишком сложен и поэтому используется в основном для языков наподобие Basic for Applications и VBScript. Анализ исходного кода также в первую очередь рассчитан на языки скриптов. Анализатор последствий позволяет сохранить неизменность важных файлов, что помогает блокировать распространение вирусов. В основном же анализаторы такого типа используются для обеспечения целостности информации, в частности, Web-серверов.

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

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

Некоторые компании предлагают защиту от скрипт-вирусов, базирующуюся на межсетевых экранах. В этом случае анализ поведения программы происходит не перед исполнением, а при прохождении через межсетевой экран. При этом платформа, на которой работает межсетевой экран, может отличаться от Windows, что предотвращает заражение самого экрана. Фактически подобные системы являются анализаторами исходных текстов. Однако они не способны блокировать полиморфные вирусы, которые меняют свое тело в момент выполнения; с ними могут совладать только анализаторы, контролирующие среду исполнения. Для этого они создают своего рода «песочницу», в которой работает программа, блокируя все попытки выйти за ее пределы. Есть продукты, которые анализируют поведение макровирусов, но по сути своей это не антивирусы, а более сложные механизмы разграничения доступа к информации. В общем случае технология поведенческих анализаторов может использоваться не только для блокирования вирусов, но и для защиты информации вообще; все зависит от набора правил, которыми они руководствуются.

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

Вести из лабораторий

«Лаборатория Касперского», занимающаяся разработкой поведенческих анализаторов, предлагает сразу две «песочницы»: OfficeGuard для скриптов Microsoft Office, написанных на Basic for Applications; ScriptChecker, который проверяет приложения на VBScript. В первом случае отслеживается выполнение сценариев, вшитых в документы, приходящие из Сети. Basic for Applications — достаточно развитый язык программирования, и контролировать его работу достаточно сложно, тем не менее «Лаборатории» удалось реализовать для него «песочницу». Приложения, написанные на VBScript, могут быть присоединены к письму и запускаются при обращении к ним. ILOVEYOU и недавний «Анна Курникова» созданы с помощью этого языка. VBScript аналогичен JavaScript, с той лишь разницей, что для JavaScript его разработчики предусмотрели «штатную» песочницу, которая блокирует опасные действия. Сложность разработки подобных продуктов в том, что API-интерфейсы для обращения к обоим интерпретаторам не документированы, поэтому в Microsoft удивились, узнав, что «Лаборатории Касперского» удалось разработать такие «песочницы». (По идее, Microsoft должна либо сама производить подобные анализаторы, либо раскрывать API-интерфейсы для их создания третьими фирмами.)

Модуль ScriptChecker включается по умолчанию во все коммерческие версии антивируса AVP с октября. Он устанавливается в виде dll-библиотеки и запускается автоматически при каждом запуске VBScript. «Песочница» для Microsoft Office до последнего времени включалась в отдельный комплект «Касперский антивирус» вместе с защитой электронной почты и специальной версией монитора для Office 2000. В OfficeGuard есть простенький интерфейс, генератор отчетов, а также развитая система информирования о том, что делают различные скрипты. С нынешней весны он будет входить в персональную и профессиональную редакцию «Антивируса». Весной должен выйти продукт для рынка рабочих станций как индивидуального, так и корпоративного пользования.

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

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

Кроме перечисленных языков сценариев есть и другие незащищенные интерпретаторы. Особенно разнообразны они в Unix — Perl, shell, tcl/tk, Python и т. д. Собственно, первый саморазмножающийся код появился именно для Unix, а с распространением Linux вероятность создания вирусов для этой ОС сильно возросла. В ближайшие несколько месяцев «Лаборатория Касперского» планирует выпустить новое и интересное решение для этой ОС.

Сейчас у компании есть продукт для защиты файловых серверов под Linux, FreeBSD и BSDI, и в частности электронной почты. Если такой сервер используется как файловый с целью хранения данных для Windows, то система проверяет все файлы на наличие соответствующих Windows-вирусов. Правда, недавняя эпидемия Linux-червя показала, что и эта ОС нуждается в собственной защите. Кроме того, у «Лаборатории» есть продукт для блокирования изменения содержания Web-сервера. Он периодически просматривает содержание Web-сервера, сообщает о происшедших на страницах изменениях и может даже восстановить содержание. Впрочем, пока его реализация существует только для Microsoft IIS. Планируется перенести его и на другие платформы. В частности, предполагается серьезно работать с Linux, поскольку эта операционная система весьма популярна, что, помимо прочего, увеличивает вероятность появления вирусов и для нее.