Система и способ повышения эффективности обнаружения неизвестных вредоносных объектов

Иллюстрации

Показать все

Изобретение относится к вычислительной технике. Технический результат заключается в повышении эффективности обнаружения неизвестных вредоносных объектов. Способ обнаружения неизвестных вредоносных объектов, в котором: формируют набор характеристик, каждая из которых описывает объект, для всех объектов из баз данных вредоносных и безопасных объектов; для каждой характеристики выбирают, по крайней мере, один способ обработки характеристики объекта; определяют уровень обнаружения вредоносных объектов, по крайней мере, для одного способа обработки характеристики объекта; определяют уровень ложных срабатываний, по крайней мере, для одного способа обработки характеристики объекта; рассчитывают эффективность, по крайней мере, для одного способа обработки характеристики объекта путем оценки соотношения уровня обнаружения и уровня ложных срабатываний; выбирают способ обработки, для которого эффективность обнаружения вредоносных объектов максимальна; используют выбранный способ обработки для обнаружения неизвестных вредоносных объектов. 3 н. и 15 з.п. ф-лы, 15 ил.

Реферат

Область техники

Настоящее изобретение относится к компьютерным системам, более конкретно к системам обнаружения неизвестных вредоносных объектов.

Уровень техники

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

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

Помимо традиционных методов сигнатурного сравнения и эвристических методов был использован способ построчного сравнения, который заключается в выделении уникальных строк из исполняемого файла и сравнении их с аналогичными элементами, характерными для вредоносного ПО. Примером подобной технологии является заявка US 20050223238 A1, в которой описываются механизмы построчного сравнения. При этом для получения множества уникальных строк на первом этапе из файла удаляются все общеупотребительные строки, например, вызовы различных API-функций, а также строки, которые характерны для безопасного ПО. После указанного удаления по статистике остается около 10-20% от исходного числа строк, именно эта информация и признается уникальной. В дальнейшем происходит сравнение выбранных строк с уже известными аналогами, относящимися к вредоносному ПО. Результатом работы описанного способа является выявление количества одинаковых строк в исследуемом файле и в ранее известном вредоносном ПО. При этом для однозначного выявления вредоносного программного обеспечения в некоторых случаях все же может потребоваться участие человека - антивирусного аналитика.

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

Трасса выполнения программы - это последовательность вызываемых процедур и функций с указанием передаваемых им параметров. В качестве примера на Фиг.7 показана часть трассы выполнения для программного «червя». Под вредоносным ПО класса «червь» подразумевается программное обеспечение, которое способно несанкционированно копировать свое тело по сетевым ресурсам с сохранением возможности дальнейшего распространения. С более подробным определением можно ознакомиться по ссылке - http://www.securelist.com/ru/glossary?glossid=152527951. В указанном фрагменте происходит определение сетевого адреса компьютера по его имени, соединение с ним и передача информации. Таким образом, трасса выполнения программы является достаточно удобным инструментом при анализе ПО, так как можно непосредственно отследить сам порядок действий.

Графы вызовов показывают в статическом режиме структуру ПО, при этом вершинами в них является множество некоторых процедур или функций, а ребра отражают возможность прямого обращения из одной вершины в другую. Графы вызовов обычно делят на два подмножества. В случае невысокой степени детализации речь идет о так называемых call-графах (термин, использующийся в специальной литературе), иначе говорят о flow-графах. В дальнейшем в описании изобретения будем придерживаться аналогичной терминологии. Для сравнения Фиг.8 и Фиг.9 демонстрируют примеры flow- и call-графа соответственно. Фиг.8 представляет собой часть flow-графа для «троянской программы» (подробное определение можно посмотреть по ссылке - http://www.securelist.com/ru/glossary?letter=244#gloss152528302). На Фиг.8 вершинами являются логические блоки (последовательность инструкций на низкоуровневом языке, вызываемых до команды перехода), а ребрами - вызовы одного логического блока из другого. В отличие от flow-графа, в call-графе, как указано на Фиг.9, вершинами являются процедуры или функции, написанные на высокоуровневом языке. При этом условие существования ребра между двумя вершинами не меняется. Также в call-графе выделяют уникальные функции 910 (написанные самим программистом) и стандартные 920 (библиотечные).

Так, например, подобный механизм предложен в заявке US 20070240215 A1, где рассматривается трасса выполнения программы. В патенте US 7093239 B1 шаблон функциональности формируется во время запуска ПО в виртуальной среде. В заявке US 20070094734 A1 описывается порядок построения деревьев, характеризующих процесс выполнения рассматриваемой программы. Недостатком указанных технологий является запуск в виртуальной среде (например, на виртуальной машине или в эмуляторе), что является ресурсоемкой операцией. Также некоторые вредоносные объекты проверяют факт работы в виртуальной среде, в случае которого происходит завершение их деятельности. Если же виртуальная среда не используется, вредоносное ПО может запускаться непосредственно на компьютере, что приведет к его заражению - процессу нежелательному как для пользователя, так и для антивирусной компании. Часто описанный выше механизм называют активным заражением. Обнаружение вредоносного ПО в указанных выше патентах и заявках основано в первую очередь на определении уровня «похожести» на элемент класса вредоносного ПО. При этом термин «похожесть» в области программного обеспечения определяется с точки зрения наличия одинаковых частей и определения их количества. Для этих целей вводится некоторое правило сравнения, например, расстояние Левенштейна между двумя объектами и пороговое значение этого расстояния, при превышении которого объекты признаются принадлежащими разным классам. Так, например, в заявке US 20070136455 A1 описывается механизм классификации ПО на основании задания некоторого правила и порогового значения. В заявке US 20090631001 также предлагается способ классификации (кластеризации), однако он основан на том, какие именно действия выполняются программой. То есть на первом этапе ПО запускается в виртуальной среде (например, на виртуальной машине), а затем на основании заранее известных шаблонов причисляется к тому или иному классу. В том числе на основании указанного способа предлагается классифицировать и вредоносное ПО. Объединение технологий классификации и поведенческого анализа показало хорошие результаты как при обнаружении вредоносных исполняемых файлов, так и при оптимизации размеров антивирусных баз.

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

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

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

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

В связи с этим доверие к технологиям, известным и используемым на данный момент, должно быть основано на их текущей эффективности. В качестве примера снижения эффективности обнаружения можно привести ситуацию с построчным сравнением. Злоумышленники, проанализировав суть метода, начинают использовать механизмы, снижающие его эффективность, например шифрование и динамическую генерацию строк. Фиг.13А демонстрирует в качестве примера часть строк для двух троянских программ сходной вредоносной функциональности. Однако при сравнении их строк видно, что практически все из них разные. Таким образом, метод построчного сравнения не даст верного результата в этом случае. Другим примером деградации антивирусной технологии может послужить использование лишних вызовов API-функций в ответ на обнаружение вредоносных программ методом анализа графов вызовов. Фиг.13Б указывает на то, что две вредоносные программы осуществляют одинаковые действия, однако при этом совершают дополнительные (лишние) шаги, которые не влияют на конечный результат. Такие мусорные инструкции затрудняют использование графов вызовов для обнаружения вредоносного ПО.

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

Сущность изобретения

Настоящее изобретение предназначено для компьютерных систем, более конкретно для обнаружения вредоносных объектов.

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

Одним из предметов настоящего изобретения является способ обнаружения неизвестных вредоносных объектов, в котором: а) формируют набор характеристик, каждая из которых описывает файл в общем виде; б) для каждой характеристики выбирают, по крайней мере, один способ ее обработки; в) определяют уровень обнаружения вредоносных объектов, по крайней мере, для одного способа обработки; г) определяют уровень ложных срабатываний, по крайней мере, для одного способа обработки; д) рассчитывают эффективность, по крайней мере, для одного способа обработки путем оценки соотношения уровня обнаружения и уровня ложных срабатываний; е) выбирают тот способ обработки, для которого эффективность обнаружения вредоносных объектов максимальна; ж) используют выбранный способ обработки для обнаружения неизвестных вредоносных объектов.

В частном варианте реализации в указанном выше способе под объектом подразумевается исполняемый файл, файл сценария или документ.

В другом варианте исполнения в качестве характеристик объекта могут выступать, в числе прочего, рабочие области, уникальные строки, последовательности вызовов API-функций, графы вызовов и трассы выполнения.

В еще одном варианте выполнения в описанном выше способе используются полные базы данных вредоносных и безопасных объектов. Также могут быть использованы частичные базы данных, сформированные, например, за сутки или за месяц.

В частном варианте реализации все описанные действия способа совершаются периодически с целью актуализации информации об эффективности способа обработки характеристик.

В другом варианте выполнения представленного способа анализируются объекты заданного типа, тем самым выявляется наиболее эффективный способ обработки при работе с объектами определенного типа.

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

В частном варианте реализации эффективность оценивается для комбинации, по крайней мере, двух способов обработки.

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

В частных вариантах выполнения объектом в вышеописанной системе является исполняемый файл, файл сценария или документ.

В еще одном варианте реализации в качестве характеристик объекта выступают рабочие области, уникальные строки, шаблоны поведения, графы и трассы выполнения, порядок вызова API-функций.

В других вариантах исполнения указанной выше системы базы данных вредоносных и безопасных объектов могут использоваться как полностью, так и частично, например, только те данные, которые сформированы за временной интервал, например за сутки, месяц или год.

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

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

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

Дополнительные преимущества изобретения будут раскрыты далее в ходе описания вариантов реализации изобретения. Также отметим, что все материалы данного описания направлены на детальное понимание того технического предложения, которое изложено в формуле изобретения.

Краткое описание прилагаемых чертежей

Дополнительные цели, признаки и преимущества настоящего изобретения будут раскрыты дальше в описании со ссылками на прилагаемые чертежи.

Фиг.1 иллюстрирует механизм обнаружения вредоносных объектов с использованием предлагаемого способа.

Фиг.2 описывает один из вариантов выбора релевантных характеристик исследуемого файла с точки зрения минимизации времени их обработки.

Фиг.3 показывает последовательность действий при нахождении наиболее эффективного способа обработки характеристики объекта для обнаружения неизвестных вредоносных объектов.

Фиг.4 иллюстрирует процесс выбора компьютера, способного провести анализ набора характеристик исследуемого объекта.

Фиг.5 демонстрирует примерную архитектуру системы, реализующей способ на Фиг.3.

Фиг.6 показывает примерную схему компьютера общего назначения, на котором развертывается настоящее техническое решение.

Фиг.7 демонстрирует пример части трассы выполнения программного червя.

Фиг.8 иллюстрирует часть flow-графа для троянской программы.

Фиг.9 показывает часть call-графа для программного червя.

Фиг.10 описывает сущность рабочих областей исполняемого файла.

Фиг.11 схематично изображает структуру файла в формате PDF.

Фиг.12 демонстрирует пример оценки эффективности обнаружения неизвестных вредоносных объектов.

Фиг.13А иллюстрирует пример модификации строк в программе таким образом, чтобы построчное сравнение было невозможным.

Фиг.13Б показывает способ противодействия анализу графа вызовов ПО путем добавления инструкций, не несущих полезной нагрузки.

Фиг.14 иллюстрирует пример соотношения эффективности работы каждого способа по отдельности и их комбинации.

Подробное описание предпочтительных вариантов осуществления

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

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

Основные преимущества настоящего изобретения вытекают из использования «файлового генома» (далее будем использовать этот термин без кавычек) для обнаружения вредоносного ПО и адаптивного выбора способа проверки объекта. Под файловым геномом подразумевается набор характеристик, каждая из которых в общем виде описывает файл таким образом, чтобы можно было определить его принадлежность к одному из классов. В одном из вариантов реализации файловый геном состоит из набора так называемых «генов» (по аналогии с биологией), при этом ген является аналогом характеристики объекта. В дальнейшем для простоты изложения будем использовать термин «ген». В частности, файловый геном может включать уникальные строки исследуемого объекта, его рабочие области, трассу выполнения, заранее предопределенные шаблоны вредоносного поведения, flow-граф, call-граф и т.д. Стоит отметить, что может существовать несколько способов обработки каждого гена. Способом обработки гена считается применение заранее определенных действий при работе с геном, которые направлены на принятие решения о том, является объект вредоносным или нет. Например, одним из способов обработки call-графа является сравнение его с аналогичными известными элементами из баз данных. Здесь и далее под рабочими областями понимаются некоторые части файла, в частности, загруженные в оперативную память, которые наиболее полно его описывают. В качестве примера на Фиг.10 изображен один из вариантов получения рабочих областей исполняемого файла, используемого в среде операционных систем семейства Windows. Такие файлы называют РЕ-файлами (см. http://www.microsoft.com/whdc/system/platform/firmware/PECOFF.mspx). Они имеют свою определенную структуру, а именно: заголовки, набор секций, таблицы импорта, перемещений и т.д. При этом информативными элементами для анализа в данном случае являются заголовок, точка входа, указание на основную функцию и иные служебные области. Фиг.10 представляет собой частный вариант реализации получения рабочей области. В качестве наиболее важных частей файла выбираются заголовок, адрес в оперативной памяти, с которого начинается выполнение программы (точка входа), указатель на основную функцию и указатель на завершение выполнения. В дальнейшем до и после указанных частей берется по 4 КБ данных. Таким образом, формируется 32 КБ информации, которая помещается в оперативную память, и с ней происходит дальнейшая работа. Такой подход минимизирует время обработки файла, так как непосредственный доступ к объекту на жестком диске является самой медленной операцией на компьютере, а работа с оперативной памятью существенно быстрее.

Однако при анализе файлов другого формата, например PDF, в качестве рабочих областей выступают другие части файла. В данном случае в первую очередь может рассматриваться его активное содержимое, такое как java-скрипты (сценарии, написанные на языке javascript). Это связано с тем, что выполнение java-скрипта в теле документа является небезопасной операцией, так как java-скрипт внутри себя может вызвать, в том числе, и исполняемый файл. Структура формата PDF изображена на Фиг.11, из которой видно, что существует четкое разделение между объектами внутри файла и существует таблица перекрестных ссылок между ними.

Каждый из генов может обрабатываться различными способами. Например, если для анализа выбран call-граф, тогда полученная последовательность, в том числе, сравнивается с аналогичными последовательностями, хранящимися в базе данных. В то же время гены, базы данных для которых не занимают много места, могут быть обработаны без запросов к центральной базе данных. Для этого указанные базы данных передаются пользователям, и с их помощью может происходить проверка непосредственно на компьютере пользователя.

Фиг.1 демонстрирует способ обнаружения неизвестных объектов. На этапе 110 сравнивается значение хеш-функции от анализируемого объекта с теми значениями, которые хранятся в базах данных вредоносных и безопасных объектов. Причем указанные базы данных могут работать под управлением любых из существующих, а также будущих СУБД, например, Oracle, MySQL, Microsoft SQL Server и т.д. В качестве функции хеширования может быть использована как любая известная на данный момент, например MD5, SHA-1, SHA-2, Skein, так и разработанная позднее. Предварительный этап 110 обусловлен в первую очередь трудоемкостью процесса формирования и обработки файлового генома. Таким образом, вначале мы минимизируем то множество, для которого должны происходить проверки, путем выявления неизвестного ПО. Затем для отобранных объектов осуществляем проверки в соответствии с алгоритмами, описанными ниже. Следовательно, благодаря описанному подходу указанный недостаток себя не проявляет.

На шаге 120, в случае если поиск прошел успешно, анализ завершается. В противном случае переходят к шагу 130, где для исследуемого объекта формируется файловый геном для дальнейшего анализа. При этом характер и объем данных может определяться в зависимости от возможностей и ресурсов компьютера и типа анализируемого файла. Более подробно процесс получения указанной информации изображен на Фиг.2 и Фиг.3. В тот момент, когда данные подготовлены, на этапе 140 они отправляются тому компьютеру, который по своим характеристикам способен их обработать. Выбор компьютера может осуществляться несколькими способами. Один из вариантов реализации представлен на Фиг.4. Далее на шаге 150 происходит обработка полученных данных в соответствии ранее определенными способами. Предположим, что на предыдущем этапе для отправки на другой компьютер был выбран шаблон функциональности. Таким образом, на шаге 150 указанная информация сначала подвергается точному сравнению с аналогичными объектами, хранящимися в базе вредоносных объектов. Такая итерация включена в связи с тем, что, с одной стороны, операция нечеткого поиска является ресурсоемкой, а с другой - могут существовать ситуации, когда сравнение по значениям хеш-функции прошло безуспешно, но шаблоны функциональности полностью совпадают. При положительном результате сравнения объект признается вредоносным, иначе происходит нечеткий поиск. Нечеткий поиск в данном контексте означает применение алгоритмов нечеткого сравнения строк, например, Левенштейна, Ландау-Вишкина и т.д. То есть рассматриваемый шаблон функциональности представляется в виде последовательности (строки), которая сравнивается с другими шаблонами функциональности, которые уже существуют в базе данных. В этом случае определяется степень похожести между объектами, а решение принимается на основе превышения некоторого заданного порога.

В частном варианте реализации степень похожести может определяться так, как описано в патенте US 5440742.

В другом частном варианте реализации шаблону функциональности может присваиваться определенный рейтинг опасности, по которому будет приниматься решение, считать объект вредоносным или нет. В частности, рейтинг опасности может определяться так, как указано в патенте US 7530106, или следующим образом:

- из неизвестного шаблона функциональности выделяются все логические блоки;

- определяется статус каждого из выделенных блоков;

- в зависимости от статуса и количества появлений блоку выставляется рейтинг опасности;

- рейтинг опасности для всего шаблона функциональности формируется путем объединения рейтингов по всем логическим блокам.

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

На основании полученного рейтинга опасности шаблона функциональности принимается решение о признании объекта вредоносным.

В дальнейшем после окончания обработки полученных данных переходят к пункту 160, где пользователю отправляется ответ о том, является ли объект вредоносным.

Фиг.2 иллюстрирует один из частных вариантов процесса выбора релевантных генов. Способ их определения основан на минимизации времени получения ответа о наличии вредоносной составляющей. Таким образом, в первую очередь выбирается способ, посредством которого будет производиться обнаружение неизвестного вредоносного ПО. На основании выбранного способа формируется необходимая информация. В частном варианте реализации описанный процесс осуществляется с использованием нечеткой логики. Определяются две лингвистические переменные: «эффективность способа» и «ресурсоемкость получения входных данных для способа», - для каждой из которых определяется терм-множество, например, {«низкая», «средняя», «высокая»}. При этом эффективность способов периодически пересматривается. Затем сформированный упорядоченный список можно разделить на категории в зависимости от типовой конфигурации компьютера, например «маломощный», «средний», «высокопроизводительный». В качестве примера для подобного анализа может быть приведен патент RU 98611 «Система улучшения производительности персонального компьютера за счет адаптивной настройки конфликтных приложений». Таким образом, на основании указанного способа может быть сформирован оптимальный набор генов, который компьютер пользователя в состоянии выделить из исследуемого файла и которые дадут наилучшие результаты при обнаружении вредоносного программного обеспечения.

Фиг.3 представляет способ определения наиболее эффективной комбинации способов обработки генов для обнаружения неизвестных вредоносных объектов. Здесь и далее под комбинацией способов обработки генов подразумевается множество способов нахождения неизвестных вредоносных объектов и соответствующих им генов, состоящее, по крайней мере, из одного элемента. Эффективность в данном случае будет определяться как соотношение уровня обнаружения и уровня ложных срабатываний. При этом под уровнем обнаружения неизвестного вредоносного программного обеспечения понимается отношение обнаруженных вредоносных объектов ко всему множеству вредоносных объектов, на котором работал антивирус, а уровнем ложных срабатываний - отношение количества безопасных объектов, признанных вредоносными, ко всему множеству безопасных объектов, на котором проводилось исследование.

Использование различных комбинаций способов обработки генов обусловлено тем, что в некоторых случаях не самые эффективные способы обработки по отдельности дают наилучший результат при совместной работе. Так, Фиг.14 представляет собой пример, когда применение способов обработки 1410 и 1420 вместе нелинейно повышает эффективность обнаружения вредоносных объектов. Результат их совместной работы изображен кривой 1430.

В предлагаемом способе на шаге 310 для всех объектов из баз данных вредоносных и безопасных объектов формируют файловый геном. В дальнейшем на этапе 320 выбирают для каждого гена, по крайней мере, один способ обработки. Затем на стадии 330 формируют, по крайней мере, одну комбинацию способов обработки генов, для которых впоследствии оценивается эффективность их работы. Стоит отметить, что сформированная комбинация может состоять лишь из одного способа обработки гена. Для расчета эффективности на этапах 340 и 350 определяется уровень обнаружения и уровень ложных срабатываний для каждой комбинации. Затем на основании данных, полученных на предыдущих стадиях, на шаге 360 рассчитывают эффективность каждой рассмотренной комбинации. Фиг.12 показывает частный вариант определения эффективности при обнаружении вредоносных объектов. Затем полученные ранее результаты оценки сравниваются на шаге 370, и из всех комбинаций выбирается наиболее эффективная. В соответствии с выбранной комбинацией в дальнейшем формируются только те гены, которые требуются для ее осуществления.

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

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

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

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

Фиг.4 иллюстрирует процесс выбора компьютера, который по своим характеристикам может обработать файловый геном. В частном варианте реализации на центральном сервере может храниться информация о параметрах компьютеров сети и статистики времени их работы.