СИСТЕМА И СПОСОБ УВЕЛИЧЕНИЯ КАЧЕСТВА ОБНАРУЖЕНИЙ ВРЕДОНОСНЫХ ОБЪЕКТОВ С ИСПОЛЬЗОВАНИЕМ ПРАВИЛ И ПРИОРИТЕТОВ
SYSTEM AND METHOD FOR IMPROVING QUALITY OF DETECTING MALICIOUS OBJECTS USING RULES AND PRIORITIES

Область техники
Изобретение относится к компьютерным системам, и, более конкретно, к системам обнаружения вредоносного программного обеспечения при помощи анализа событий при исполнении приложений.
Уровень техники
В связи с бурным развитием компьютерной техники и компьютерных сетей все большие размеры принимает проблема, связанная с защитой от вредоносных объектов, которые поступают на компьютеры пользователей в виде вредоносных приложений, вирусов, нежелательных приложений и т.п.
В настоящее время применяется множество систем для решения данной проблемы, например, антивирусы, сетевые экраны, антишпионы, антиспам, веб-контроль. В этом списке основным средством защиты от вредоносных объектов являются антивирусные системы, которые используют разные подходы при выполнении своей работы: сигнатурная проверка, эвристический анализ, поведенческий анализ.
Известно, что вредоносный объект - это программное обеспечение (ПО), предназначенное для получения несанкционированного доступа к вычислительным ресурсам самого компьютера или к информации, хранимой на компьютере. Целью такого доступа является использование ресурсов компьютера или причинение вреда (нанесение ущерба) владельцу информации или пользователю компьютера путем копирования, искажения, удаления или подмены информации.
Сигнатурный анализ является классическим методом для поиска вредоносных объектов. Суть данного подхода заключается в применении сигнатур образцов кода приложений - это характерные признаки атаки или вируса, используемые для обнаружения вредоносных объектов. Большинство современных антивирусов, сканеров уязвимостей и систем обнаружения вторжений используют сигнатуры, взятые непосредственно из файла вируса или сетевого пакета. Поиск вредоносных объектов происходит в процессе проверки потенциально опасного кода приложений. Если в процессе проверки встречается код, который совпадает с кодом сигнатуры, то объект, содержащий такой код, классифицируется как вредоносный. Сигнатурный анализ гарантирует обнаружение вредоносных объектов, которые описаны сигнатурами, но не способен обнаружить неизвестные вредоносные объекты.
Эвристический анализ позволяет определить присутствие данных, способных принести вред. Методы эвристической проверки не обеспечивают какой-либо гарантированной защиты от новых, отсутствующих в сигнатурном наборе компьютерных вирусов, что обусловлено использованием в качестве объекта анализа сигнатур ранее известных вирусов, а в качестве правил эвристической проверки - знаний о механизме полиморфизма вредоносного кода. В то же время, поскольку этот метод поиска базируется на эмпирических предположениях, полностью исключить ложные срабатывания нельзя.
Поведенческий анализ заключается в слежении за процессами, запущенными из исполняемых файлов. Например, если приложение производит запись в сектор 1, дорожку 0, сторону 0, то это приводит к изменению раздела накопителя. Но кроме вспомогательного приложения fdisk и других подобных утилит эта команда больше нигде не используется, и потому в случае ее неожиданного появления речь идет о загрузочном вирусе (буткит). При подобном подозрительном поведении процесса, которое определяется в рамках правил, антивирусная система принимает меры защиты, например, завершает процесс, выполнивший неразрешенную правилами последовательность операций. Данный способ обладает недостатком: при поведенческом анализе антивирусная система может пропустить некоторые известные вредоносные объекты. Это обусловлено тем, что нецелесообразно на все известные вредоносные объекты создавать шаблон поведения. Например, нет необходимости в создании шаблона поведения для очень старого вредоносного объекта. Конечно, в готовой антивирусной системе этот недостаток устраняется комбинированной проверкой, где на первом этапе выполняется сигнатурная проверка, а на вход эвристической и поведенческой систем проверки поступают только лишь неизвестные вредоносные объекты. Самый большой минус эвристического и поведенческого анализа состоит в сложности их настройки и невозможности получения гарантированного результата, поскольку эти виды анализа, при повышении уровня обнаружения вредоносных объектов, неизбежно ведут к повышению уровня ложных срабатываний на безопасных объектах.
Современные антивирусные системы успешно используют сразу несколько подходов для повышения эффективности борьбы с вредоносными объектами, пользуясь преимуществами каждого способа и взаимно компенсируя их недостатки.
Система, которая использует технологию, базирующуюся на изучении запускаемых исполняемых файлов и оценке поведения на основании системы правил, описана в патенте US7530106 и предназначена для обнаружения вредоносных объектов, используя пороги опасности компьютерных процессов, рассчитанных по системе правил. Сами правила формируются на основании анализа изученных вредоносных объектов и поведения процессов, связанных с вредоносными объектами. Каждое правило имеет определенную структуру: идентификатор правила, вызываемая API-функция (Application Programming Interface, API - набор готовых классов, функций, структур и констант, предоставляемых операционной системой для использования во внешних приложениях), условия для аргументов, оценка опасности. То есть правило сработает в том случае, если процесс вызовет API-функцию с соответствующими параметрами, и в таком случае рейтинг процесса будет увеличен в соответствии с оценкой правила.
Правила хранятся в обновляемых базах. Поскольку непрерывно появляются новые компьютерные вредоносные объекты, система правил должна периодически уточняться, пересматриваться, дополняться.
У любой антивирусной системы есть вероятность возникновения ошибок при работе. Ошибки делятся на так называемые ошибки первого рода и ошибки второго рода. Ошибки первого рода появляются в том случае, если антивирусная система обнаруживает вредоносный объект, хотя на самом деле объект не представляет никакой угрозы. Другими словами, возникает ложное срабатывание системы. Ошибки второго рода в отношении антивирусных систем связаны с той ситуацией, когда при наличии вируса или другого вредоносного объекта система его не обнаруживает, т.е. считает объект безопасным.
Прежние системы могли допускать как ошибки первого рода, то есть вызывать ложные срабатывания, так и ошибки второго рода, то есть пропускать и не обнаруживать объекты, представляющие опасность для персонального компьютера. Для повышения качества работы антивирусной системы возникает необходимость снижать вероятность появления ошибок первого и второго рода.
Предлагаемый способ и соответствующая система имеют преимущество по сравнению с запатентованной системой. Они позволяют увеличить количество обнаружений вредоносных объектов антивирусной системой. Таким образом, снизится вероятность появления ошибки первого рода.
Анализ предшествующего уровня техники позволяет сделать вывод о неэффективности и в некоторых случаях о невозможности применения предшествующих технологий для выявления вредоносных объектов, недостатки которых решаются настоящим изобретением, а именно системой увеличения качества обнаружений вредоносного программного обеспечения.
Раскрытие изобретения
Настоящее изобретение предназначено для повышения качества обнаружения вредоносного программного обеспечения, в частности, снижения ложных срабатываний при работе эвристических систем анализа.
Техническим результатом данного изобретения является обеспечение пополнения антивирусных баз данных правил определения рейтинга опасности. Указанный результат достигается путем формирования новых правил определения рейтинга опасности. Новое правило определения рейтинга опасности уточняет существующие правила и обеспечивает снижение уровня ложных срабатываний при анализе безопасных приложений.
В рамках одного из вариантов реализации изобретения осуществляют исследование известных безвредных приложений, выявляют списки правил определения рейтинга опасности, которые срабатывают на каждом из исследованных приложений. Дополнительно выявляют уникальные признаки безвредного приложения с последующим формированием нового уточняющего правила определения рейтинга опасности, которое получает более высокий приоритет в сравнении со списком сработавших правил определения рейтинга опасности. Приоритет задается очередью выполнения правил. Новые сформированные правила тестируются на списках вредоносных приложений. Если проверка нового правила на списке вредоносных приложений показала, что правило определения рейтинга опасности для безопасного приложения срабатывает на одном или нескольких вредоносных приложениях, то возвращаются к этапу выявления уникальных признаков безвредного приложения. Исследование безопасных приложений может выполняться непосредственно на ПК пользователей с последующей передачей сведений о том, какие правила сработали в ходе исследования того или иного приложения. Соотнесение полученной подобным образом статистики с базой безопасных приложений позволяет составить список приложений, на которых возникло ложное срабатывание, и набор правил выявления опасного поведения, для которых необходимо создание новых правил, подавляющих ложные срабатывания.
Способ пополнения антивирусных баз правил определения рейтинга опасности состоит из этапов, на которых в средстве обработки отчетов на стороне антивирусного сервера принимают и обрабатывают статистику проверки приложения на персональном компьютере пользователя. Далее выполняется сравнение статистики проверки приложения со списком хранения безопасных объектов, выявляются известные безопасные объекты, у которых был рассчитан высокий рейтинг опасности. Исследуются характерные особенности работы известных безопасных объектов, и формируется новое правило определения рейтинга опасности. Новое правило определения рейтинга опасности имеет приоритет перед правилами, которые были использованы при расчете высокого рейтинга безопасного объекта. Выполняют пополнение антивирусной базы правил определения рейтинга опасности на стороне персонального компьютера пользователя.
В соответствии с результатами проверки приложения на компьютере пользователя, где выполняется проверка соответствия действий приложения критериям правил определения рейтинга опасности, формируют статистику работы правил определения рейтинга опасности. Полученная статистика проверки правил определения рейтинга опасности, идентификатор приложения и рассчитанный рейтинг опасности отправляется в антивирусный сервер. Статистика проверки правил определения рейтинга опасности позволяет выявлять ложные срабатывания путем сравнения с результатами анализа известных безопасных объектов. Например, если полученная от компьютера пользователя статистика содержит высокий рейтинг опасности (что означает необходимость блокировки приложения), но идентификатор приложения присутствует в списке известных безопасных объектов на антивирусном сервере, то следует устранить ложное срабатывание. Необходимо выполнить корректировку тех правил определения рейтинга опасности, которые указаны в статистике.
В одном из вариантов реализации изобретения средство анализа (при формировании базы порядка проверки правил) устанавливает  приоритет правил. Приоритет правил рейтинга опасности задается порядком следования номеров правил в первом поле базы порядка проверки правил. Дополнительно средство анализа при формировании базы правил добавляет новое правило, при этом новое правило содержит характерное поведение безопасного объекта, пониженные значения для начисления рейтинга. Упомянутое средство хранения списка безопасных объектов содержит контрольные суммы известных безопасных объектов. Следует уточнить, что характерной особенностью работы известных безопасных объектов является вызываемая API-функция и аргументы API-функции. В то же время новое правило определения рейтинга опасности имеет более высокий приоритет в соответствии с очередью выполнения правил.
Возможно также, что новое правило определения рейтинга безопасности содержит триггер уточняющего правила, для которого приоритет состоит в выявлении совокупности аналогичных правил определения рейтинга опасности. При расчете рейтинга исследуемого процесса в соответствии со значениями каждого правила определения рейтинга опасности из выявленной совокупности аналогичных правил, выполняют уменьшение значения рейтинга каждого правила в несколько раз.
Краткое описание чертежей
Дополнительные цели, признаки и преимущества настоящего изобретения будут очевидными из прочтения последующего описания осуществления изобретения со ссылкой на прилагаемые чертежи, на которых:
Фиг.1 отображает структуру компьютера пользователя, входящего в систему увеличения качества обнаружений вредоносных объектов.
Фиг.2 иллюстрирует структуру антивирусного сервера системы пополнения антивирусных баз правил определения рейтинга опасности.
Фиг.3 показывает структуру средства хранения данных.
Фиг.4 показывает процесс формирования рейтингов при антивирусной проверке.
Фиг.5 показывает алгоритм формирования правил проверки известных безвредных приложений.
Фиг.6 показывает пример компьютерной системы общего назначения, на которой может быть реализовано изобретение.
Описание вариантов осуществления изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, обеспеченными для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется только в объеме приложенной формулы.
Настоящее изобретение решает ряд проблем, которые были выявлены в процессе эксплуатации ранее запатентованных технологий, использующих правила определения рейтинга опасности и корректирующие коэффициентов. Упомянутые технологии раскрыты в патентах US 7530106 и патентах на полезные модели RU 107615, RU 108870, RU 111920. Согласно технологии использования правил определения рейтинга опасности, все правила работают независимо друг от друга. В связи с чем одно правило определения рейтинга опасности способно точно описывать конкретную одну вредоносную операцию, например, вызов процессом API-функции с характерными для вредоносной активности параметрами. Таким образом, появляется возможность собирать статистику срабатывания правил определения рейтинга опасности. Собранная статистика срабатывания правил используется для исследования известных безвредных приложений. Если оказывается, что процесс известного безвредного приложения вызывает API-функции с характерными для вредоносной активности параметрами, выполняют формирование дополнительного правила. Новое правило имеет более высокий приоритет в сравнении с правилом, которое описывает вредоносную активность. Приоритет задает порядок проверки правил.
Приоритет, ранг или старшинство правил - формальное свойство правил определения рейтинга опасности, влияющее на очередность выполнения правил при расчете рейтинга опасности по итогам выполненных приложением операций и вызванных API-функций при отсутствии явного указания на порядок их вычисления. Например, правило определения рейтинга опасности для безвредного приложения наделяют большим приоритетом, чем правило увеличения рейтинга опасности за вредоносную операцию. Поэтому приложение в первую очередь проверяется на выполнение безвредных действий, а потом проверяется выполнение приложением действий, которые могут нанести вред компьютеру пользователя. Правила обнаружения безопасного и вредоносного поведения не могут иметь одинаковый приоритет, так как проверка ведется в порядке приоритета до первого срабатывания правила, т.е. если срабатывает правило с порядковым номером N, то проверка правил с порядковым номером больше N для данной API-функции блокируется.
Изобретение использует способ задания приоритета проверки правил по иерархии приоритетов. Этот способ используется для задания приоритетов по умолчанию и фиксируется в виде списка номеров правил, который хранится в базе коэффициентов. Таким образом, правила в начале списка имеют более высокий приоритет, т.е. приоритет определяется в соответствии с порядком следования номеров самих правил определения рейтинга опасности в базе коэффициентов.
На примере удаления файла приоритет может быть представлен в соответствии с таблицей №1.
Таблица №1
Приоритеты исполнения правил определения рейтинга опасности.
Приори-тет
Правило
Рейтинг
Условия активации
1
Предотвращение ошибки первого рода при удалении приложением файла
0
Удаление файла, имя или местоположение которого занесено в справочник файлов, с которыми допустимы любые операции
2
Предотвращение ошибки первого рода при удалении приложением файла
0
Удаление файла, имя или местоположение которого занесено в справочник файлов, которые можно удалять
3
Предотвращение ошибки первого рода для приложения в автозапуске, удаление которого не критично
0
Удаление файла, имя которого занесено в справочник файлов, которые можно удалять из папки автозапуска
4
Удаление критических системных объектов
100
Удаляется объект, имя которого находится в обновляемом справочнике критических объектов системы
5
Удаление файла, принадлежащего антивирусу
100
Удаляется объект, имя которого находится в обновляемом справочнике имен исполняемых файлов, принадлежащих антивирусным продуктам и защитному ПО
6
Манипуляции с autorun.inf (удаление)
90
Попытка удалить autorun.inf в корне любого диска. Удаление файла выполняют вредоносные приложения для записи измененного файла autorun.inf
7
Удаление файла, принадлежащего антивирусу
90
Удаляется объект, находящийся в каталоге антивируса
8
Удаление файла в системной папке
60
9
Удаление файла в системной папке
50
10
Удаление файла в системной папке
40
11
Удаление объекта в папке автозапуска
20
12
Удаление файла в папке files
15
13
Удаление какого-то файла
5
Удаляется некий файл
Например, приложение удаляет файл  FilesVKaspersky LabYKaspersky Internet Security . Для этой операции будет выполняться условие правил №№5, 7, 12, 13 - но за счет системы приоритетов сработает только правило №5. Следующий пример - приложение удаляет файл . Выполняются условия для правил №№10 и 13 (так как файл удаляется в системной папке TEMP), что в общем случае является достаточным для блокировки указанного приложения и появления ошибки первого рода. Но в справочнике правила №2 проверяют условие, что в папке  можно удалять любой файл. Следовательно, будет использован рейтинг опасности из правила №2 и, вместо увеличения рейтинга опасности на 40% проверяемому приложению, рейтинг опасности не будет увеличен.
Допустим, проверяемое приложение выполняет операцию DeleteFile("C:\WINDOWS\EurekaLog.ini"). Применение к указанному приложению правил №№10 и 13 вызовет ошибку первого рода. В итоге приоритеты правил и присутствие имени данного файла в справочнике для правила №1, которые описывают именно этот сценарий поведения приложения, предотвратят ошибку. В соответствии с правилом №1 рейтинг такому приложению увеличен не будет.
Рассмотрим пример, в котором приложение выполняет операцию удаления: DeleteFile("C:\WINDOWS\system32\Drivers\PROCEXP90.SYS"). Указанное поведение с драйвером «PROCEXP90.SYS» характерно для приложения ProcessExplorer, имя которого добавлено в соответствующие параметры правила №2. Выполнение всех условий правила №2 приводит к обходу формирования ошибки первого рода, которая возникает при ошибочном применении правила №8, ведущего к увеличению рейтинга на 60%.

Разберем несколько примеров работы изобретения на конкретных приложениях. Существует приложение-проигрыватель для воспроизведения файлов мультимедиа и потоковой передачи, которое при установке на компьютер пользователя выполняет обновление системных библиотек операционной системы (ОС) Windows и удаление устаревших версий файлов в системных папках. В силу того, что операции манипуляции с файлами в системных папках присущи опасным приложениям, существует правило определения рейтинга опасности, фиксирующее удаление файлов в папке. Упомянутое правило определения рейтинга опасности увеличивает рейтинг опасности соответствующего процесса и предотвращает известный сценарий заражения компьютера пользователя вредоносным приложением через удаление системной библиотеки с последующей подменой файла библиотеки в системной папке вредоносным исполняемым файлом.
Известная из упомянутых ранее публикаций технология репутационного рейтинга опасности описывает только такие правила, которые увеличивают репутационный рейтинг опасности исследуемого процесса. Гибкость при классификации вредоносных и безопасных приложений в технологии репутационного рейтинга обеспечивает базовые и корректирующие коэффициенты правил определения рейтинга опасности. Такая технология позволяет изменять корректирующий коэффициент и снижать рейтинг, начисляемый правилом определения рейтинга опасности удаления файла в системной папке. Корректировка коэффициента правила повлечет ухудшение показателей выявления вредоносных приложений, которые были успешно заблокированы именно благодаря правилу определения рейтинга опасности удаления файла в системной папке. Приведенный пример обновления системных библиотек в системных папках ОС показывает необходимость улучшения существующих технологий.
Предлагаемая технология реализует несколько вариантов улучшения технологии репутационного рейтинга опасности при оценке приложений правилами опасности. В соответствии с Фиг.2 все данные от персонального компьютера 100 о сработавших тестируемых правилах поступают на средство формирования отчетов 210, которое обрабатывает поступающую информацию и помещает ее в средство хранения данных 220. Средство хранения данных 220 представляет собой базу данных. Далее данные передают в средство анализа 230, которое выполняет тестирование всех правил определения рейтинга опасности на списке безопасных объектов 240. При выявлении таких безопасных объектов, которые при оценке правилами определения рейтинга опасности были оценены как вредоносные, выполняют дополнительное исследование известного безопасного приложения. В ходе дополнительного исследования безопасного приложения средством анализа 230 выявляют особенности и характерные вызовы API-функций безопасного приложения. Полученные характеристики безопасного приложения используют для формирования нового правила, которое снизит значимость выполнения всех тех правил определения рейтинга опасности, которые увеличивали рейтинг опасности безопасного приложения. Новое правило в сравнении с правилами определения рейтинга безопасности имеет приоритет, который реализуется несколькими способами. В одном из вариантов новое правило определения рейтинга опасности выполняет уменьшение рейтинга опасности. Уменьшение рейтинга лучше проводить вначале, чтобы рейтинг опасности не превысил порог, при котором производится блокировка приложения. Таким образом, проверка всеми последующими правилами определения рейтинга опасности не приведет к повышению рейтинга опасности безопасного приложения до заданного порога опасности, а приложение не будет считаться вредоносным. Отличительной особенностью нового правила в таком случае будет отрицательное значение поля «Оценка» этого правила, а также уточненные значения аргументов вызываемой API-функции, характерные для безвредного приложения. Далее новое правило помещается в средство обновления на стороне антивирусного сервера 280.
Дополнительно формируется база порядка проверки правил на стороне антивирусного сервера 250 для правил, которые сработали на вредоносных объектах. В базу входят только коэффициенты, отличные от единицы, что позволяет уменьшить размер базы. Таким образом, базу можно представить в виде номеров правил 251 и параметров приоритетов для них 252. По аналогии с базой определения порядка проверки правил на стороне пользователя, базу определения порядка проверки правил 252 делят на две части: первая часть 253 содержит коэффициенты, которые соответствуют правилам, увеличивающим рейтинг опасности проверяемому приложению, и вторую часть 254, содержащую коэффициенты правил, которые не увеличивают или снижают рейтинг опасности. После формирования базы определения порядка проверки правил на стороне антивирусного сервера 250, база доступна персональным компьютерам пользователей для обновления. В окончательном виде база имеет небольшой размер порядка 500 байт, что облегчает процесс частого обновления базы. С помощью заданного порядка проверки правил вклад правил в формирование рейтинга может быть изменен. При последующих антивирусных проверках безопасные объекты, которые ранее обнаруживались в качестве потенциально опасных объектов, будут пропускаться антивирусным средством.
При проведении общего анализа средство анализа 230 производит обработку данных, собранных за определенный период времени, например, за неделю. В результате общего анализа средство анализа формирует базу правил на стороне антивирусного сервера 260. База правил содержит в себе номера правил 261 и измененные правила 262, которые вносили вклад в формирование рейтинга вредоносных объектов. По аналогии с базой правил на стороне компьютера пользователя, базу правил 262 делят на две части: первая часть 263 содержит правила, которые соответствуют правилам, увеличивающим рейтинг опасности проверяемого приложения, и вторую часть 264, содержащую коэффициенты правил, которые не увеличивают или снижают рейтинг опасности. Изменению подвергается базовый коэффициент, который непосредственно влияет на выставленный правилом рейтинг при обнаружении вредоносных объектов. Изменения могут коснуться также самой структуры правила путем автоматической корректировки и уточнения параметров вредоносных и безопасных объектов по необходимости.
После того как сформирована база правил 260 на стороне антивирусного сервера, средство анализа 230 производит формирование базы порядка проверки правил 250. Таким образом, порядок проверки правил может быть скорректирован по результатам работы измененных правил. После формирования базы правил 250 она доступна персональным компьютерам пользователей для обновления.
Обновление баз производится с участием средства обновления на стороне антивирусного сервера 280, которое получает запрос от персонального компьютера пользователя. В том случае, если базы на персональном компьютере пользователя устарели, по запросу средства обновления на стороне персонального компьютера пользователя антивирусный сервер отправляет новую версию баз на персональный компьютер пользователя.
В частном варианте реализации порядок проверки правил задается с помощью средства анализа 230. Обновление базы определения порядка проверки правил проводится часто, что позволит автоматически в кратчайшие сроки вносить уточнения по результатам работы измененных правил.
Новые правила для анализа приложений хранят в средстве хранения новых правил 270. Новые правила хранят в виде таблицы, в которой колонка 271 обозначает номер нового правила, и в колонке 272 описано само правило. Средство анализа 230 выполняет проверку надежности работы новых правил из средства хранения новых правил 270. Если правило ошибочно срабатывает на вредоносном приложении, то средство анализа 230 проводит поиск аналогичных контрольных сумм в средстве хранения данных 220, после чего отправляет антивирусному средству ответ, содержащий усредненный рейтинг для данного объекта. Антивирусное средство получает ответ от средства формирования рейтинга и использует рейтинг опасности вместо статического рейтинга при формировании общего рейтинга процесса, вызванного проверяемым объектом.
Согласно Фиг.1, персональный компьютер пользователя 100 выполняет обновление базы правил 130. В соответствии с обновленной базой правил определения рейтинга опасности безопасное приложение будет запущено на исполнение и при оценке соответствующего процесса 140 антивирусное средство 110 учтет снижение рейтинга в соответствии с новым правилом определения рейтинга безопасности. Итогом проверки антивирусным средством ПО процесса 140 будет заключение о безвредности процесса и соответствующего безопасного приложения. Далее антивирусное средство ПО передает контрольную сумму вместе с номером сработавшего правила антивирусному серверу 160. В качестве объекта может быть рассмотрен, например, исполняемый файл, при запуске которого происходит запуск процесса в операционной системе. Для обнаружения вредоносных объектов антивирусное средство проводит проверку процессов 140, вызванных объектами. Таким образом, если антивирусное средство определяет процесс как опасный, то объект, запустивший данный процесс, является потенциально опасным. При проведении проверки процессов используется набор правил 132 из базы правил на стороне персонального компьютера пользователя 130. Правила представляют собой набор описаний процессов, которые могут представлять угрозу для компьютера. Все правила хранятся на компьютере пользователя в виде базы правил 130. У каждого правила есть свой номер 131, который присваивается ему на все время использования правила. Номер правила уникален и служит для однозначной идентификации определенного правила. База правил условно разделена на две части. Один класс правил 133 состоит из правил, которые выявляют вредоносные приложения путем увеличения рейтинга опасности приложения. И второй класс правил 134 состоит из правил, которые уменьшают или не увеличивают рейтинг опасности и предназначены для описания не оцениваемых в ходе проверки операций приложения.
i
Кроме базы правил, существует база определения порядка проверки правил, которая хранится на стороне компьютера пользователя 120. Каждому правилу 132 из базы правил 130 соответствует один приоритет 122 из базы определения порядка проверки правил 120, который имеет номер 121, соответствующий номеру правила 131. При анализе процесса могут сработать несколько правил. Каждое правило имеет базовый коэффициент р(i=1…n, где n - номер последнего правила), который может измениться только при изменении самого правила после обновления базы правил. Базовый коэффициент, заложенный в правило, влияет на выставляемый правилом рейтинг. Соответственно, по аналогии с базой правил базу коэффициентов 120 делят на две части: первую часть 123, которая содержит коэффициенты, которые соответствуют правилам, увеличивающим рейтинг опасности проверяемому приложению, и вторую часть 124, содержащую коэффициенты правил, которые не увеличивают или снижают рейтинг опасности.
i
На Фиг.4 показан процесс формирования рейтингов при антивирусной проверке. Антивирусная проверка производится антивирусным средством ПО на компьютере пользователя. На антивирусный сервер 160 поступает статистика о сработавших тестируемых правилах и обнаруженных вредоносных объектах с персонального компьютера пользователя 100. Антивирусное средство проверяет запущенные процессы, чтобы установить уровень их опасности и сделать вывод о том, являются ли объекты, из которых были запущены процессы, вредоносными. В процессе проверки используется база правил 130 и база коэффициентов 120 на стороне персонального компьютера пользователя. При анализе процесса могут сработать несколько правил 401-403. Каждое правило имеет базовый коэффициент P(i=1…n, где n - номер последнего правила), который может измениться только при изменении самого правила после обновления базы правил. Базовый коэффициент, заложенный в правило, влияет на выставляемый правилом рейтинг. Однако база правил 130 обновляется реже, чем база порядка проверки правил 120. При формировании рейтинга учитывают также приоритеты, заданные порядком следования номеров в базе данных порядка проверки правил 120, в которой содержатся приоритеты исполнения правил при анализе характеристик объекта и подсчете рейтинга процесса.
При расчете параметра приоритета проверки правила учитываются все безопасные приложения, которые могут быть ошибочно отмечены как вредоносные. Чем больше безопасных приложений (при условии отсутствия ложных срабатываний) описывает правило, тем более высокий приоритет проверки получает указанное правило в базе данных порядка проверки правил. В частном случае реализации изобретения приоритет проверки правила вычисляют с использованием статистических данных с компьютеров пользователей о том, как часто исследуемое приложение встречается на компьютерах пользователей. Указанные данные могут быть проанализированы с использованием следующих инструментов: нечеткой логики; имитационного моделирования; искусственных нейронных сетей; метода опорных векторов.
Дополнительно в формировании итогового рейтинга учитывают также порядок проверки правил 407-409, которые помогают оперативно изменить рейтинг конкретного правила. На общий рейтинг влияет также статический рейтинг 414. Статический рейтинг определяется антивирусным средством ПО при первичном анализе характеристик объекта. Учитываются такие характеристики объекта, как атрибуты объекта, месторасположение объекта, его размер, тип объекта и т.д.
i,1
i,2
i,3
i,m
i,1
i,2
i,3
i,m
i,1
i,2
i,m
Для одного процесса может сработать сразу несколько правил. Каждое правило вносит вклад в формирование конечного вывода о том, является ли данный процесс опасным. После вклады от каждого правила суммируются и в совокупности образуют общий рейтинг процесса 413. Дополнительно в правилах предусмотрена возможность учета многократно повторяющегося события, что позволяет задавать оценку по нарастающей. Для нелинейного варианта зависимости коэффициента p от количества событий может принимать следующие значения (p, p, p, …, p)=(5%, 25%, 25%, 80%). Для операции записи в файл некий процесс может многократно писать в файл, и целесообразно использовать коэффициенты (p, p, p, …, p)=(10%, 15%, 15%, 0%). Соответствующие коэффициенты k, k-k равны нулю (см. Фиг.4, позиции 410 - 412), что исключает блокировку на основании многократной записи в файл. При этом, соответствующие правила 404-406 имеют значение коэффициента k, равное нулю. Данное обстоятельство указывает на то, что на основании этого правила нельзя блокировать объекты, а также на то, что оставшиеся менее приоритетные правила не вносят вклад в формирование конечного вывода о том, является ли этот процесс опасным.
Следующий пример, в котором ошибочным образом выявлено вредоносное приложение, касается текстового редактора. При установке текстового редактора на персональный компьютер пользователя приложение-установщик редактора добавляет модуль динамической библиотеки в список автоматической загрузки компонент ОС. Существует аналогичный сценарий заражения персонального компьютера пользователя вредоносным приложением, в котором использован список автоматической загрузки компонент ОС для реализации вредоносного функционала после перезагрузки ОС.
Следует отметить, что правило определения рейтинга безопасности, обеспечивающее автоматическую блокировку всех приложений, самопроизвольно добавляющихся в список автоматической загрузки компонент ОС, надежно обеспечивает выявление всех вредоносных приложений, которые для закрепления в персональном компьютере пользователя используют этот сценарий. В то же время текстовый редактор и соответствующий процесс при проверке антивирусным средством 110 всех правил определения рейтинга опасности не регистрирует других признаков вредоносной активности. Появляется необходимость сохранить эффективное правило определения рейтинга опасности, регистрирующее добавление компонент в список автоматической загрузки ОС, и избежать блокировки процесса установки текстового редактора в персональный компьютер пользователя.
Примером решения указанной задачи является следующий способ. Персональный компьютер пользователя сообщает о регистрации нового подозрительного приложения, которое является безопасным текстовым редактором. Сообщение поступает в средство формирования отчетов и регистрируется в средстве хранения данных. Согласно Фиг.3, данные в средстве хранения данных структурированы в виде таблицы. Каждая строка содержит информацию об обнаруженном объекте. Средство хранения данных содержит информацию, полученную от антивирусного средства, которая состоит, по крайней мере, из контрольной суммы подозрительного объекта 321, рейтинга процесса 322, номеров сработавших правил 323 и выставленных каждым правилом рейтингов 324.
Средство анализа сравнивает событие о регистрации нового подозрительного объекта со списком безопасных объектов в средстве хранения списка безопасных объектов. Нахождение совпадения подозрительного объекта с элементом списка безопасных объектов предписывает средству анализа выполнить дополнительное исследование известного безопасного приложения. В результате формируется новое уточняющее правило определения рейтинга опасности, которое имеет более высокий приоритет в сравнении с правилом определения рейтинга опасности, которое вызвало блокировку установки текстового редактора. Новое уточняющее правило определения рейтинга безопасности проверяет ту же самую API-функцию, которая отмечена в правиле определения рейтинга опасности, вызвавшего блокировку, но параметры указанной функции детализированы. Например, параметром вызываемой API-функции является указание ключа реестра, который характерен именно для установщика текстового редактора, а также название параметра ключа реестра и значение параметра ключа реестра в списке автозагрузки ОС.
Пример сформированного нового уточняющего правила.
Новое уточняющее правило определения рейтинга опасности в поле «Оценка» содержит значение, на которое следует увеличить рейтинг опасности исследуемому процессу. Следующее поле «На основании данного правила можно признать процесс вредоносным» означает сущность уточняющего правила и является триггером, который предписывает антивирусной системе не блокировать исследуемый объект. Сформированное уточняющее правило помещается в средство обновления на стороне антивирусного сервера. При обновлении средством обновления на стороне персонального компьютера пользователя новое уточняющее правило помещают в базу данных правил определения рейтинга опасности. Далее при проверке процесса текстового редактора антивирусным средством новое уточняющее правило из базы данных правил определения рейтинга опасности будет проверено перед правилом определения рейтинга опасности, регистрирующим добавление компонент в список автоматической загрузки ОС. Таким образом, указанный триггер уточняющего правила определения рейтинга опасности исключает возможность блокировки антивирусным средством тех из проверяемых процессов, исследование которых показало срабатывание нескольких аналогичных правил. При этом указанная совокупность аналогичных правил проверяет вызов одинаковых API-функций, и, по крайней мере, одно из правил имеет соответствующий триггер уточняющего правила. Таким образом, достигается заявленный технический результат изобретения по формированию новых правил определения рейтинга опасности и обновлению антивирусных баз правил определения рейтинга опасности на персональном компьютере пользователя.
Совокупность аналогичных правил представляет некоторое количество правил в базе данных правил определения рейтинга опасности, при этом у каждого из этих правил проверяемое условие соответствует проверке вызова одинаковой API-функции. В то же время аргументы API-функции могут частично совпадать. Например, два правила, проверяющие вызов API-функции добавления нового ключа реестра, формируют совокупность аналогичных правил, если аргумент одного из них указывает адрес создаваемой ветки реестра в списке автоматической загрузки компонент ОС. При этом второе правило рейтинга проверяет аргумент аналогичной API-функции, которая вызвана для создания нового раздела или подраздела в той самой ветке реестра, которая указана в качестве аргумента для другого правила определения рейтинга опасности. В описанной ситуации второе правило определения рейтинга опасности является уточняющим и содержит уточняющий триггер «Нет» в поле «На основании данного правила можно признать процесс вредоносным». Этап выявления совокупности аналогичных правил позволяет реализовать следующий способ пополнения антивирусных баз правил определения рейтинга опасности.
В соответствии с примером (в котором процесс безопасного текстового редактора при расчете рейтинга опасности, согласно правилу определения рейтинга опасности, был признан подозрительным объектом) рассмотрим следующую ситуацию. При анализе процесса безопасного текстового редактора в момент, когда выявлено выполнение условий нескольких аналогичных правил и выявлена совокупность аналогичных правил, дополнительно выполняются следующие этапы. Если одно из правил имеет соответствующий триггер уточняющего правила, то антивирусное средство выполняет дополнительные этапы способа расчета рейтинга опасности исследуемого процесса. Рассчитывают рейтинг исследуемому процессу в соответствии со значениями каждого правила определения рейтинга опасности из выявленной совокупности аналогичных правил, но при этом значение рейтинга каждого правила уменьшают в несколько раз.
Следующий пример касается установки приложения смены раскладки клавиатуры. В своей работе приложение отслеживает последовательность вводимых с клавиатуры символов. Если пользователь забыл переключить раскладку, то приложение регистрирует нехарактерную последовательность символов для языка, установленного в раскладке клавиатуры. Приложение выполняет переключение раскладки, а также переводит уже введенный текст в последовательность символов нужного языка. Таким образом, приложению необходимо установить свой собственный драйвер, через который будут контролироваться введенные последовательности символов с клавиатуры. Дополнительно драйвер обеспечивает замену уже введенного пользователем текста и переключает раскладку клавиатуры.
Оценка безопасности поведения описанного приложения, использующего драйвер контроля работы клавиатуры, достаточно высока для признания приложения вредоносным программным обеспечением. То есть, драйвер выполняет действия, характерные для вредоносных программ класса KeyLogger, которые предназначены для тех же целей по перехвату последовательностей вводимых символов. Современные кейлоггеры выполняют много дополнительных функций - это перехват информации из окон, перехват кликов мыши, перехват буфера обмена и т.д. Проникновение такого класса приложений на персональных компьютерах пользователей может стать причиной кражи персональных данных и конфиденциальной информации.
Правила расчета рейтинга опасности содержат набор правил для регистрации и предотвращения установки в компьютерной системе пользователя приложений класса KeyLogger. При этом необходимо обеспечить беспрепятственную работу драйвера приложения, которое помогает пользователю переключить раскладку клавиатуры в соответствии с введенным набором символов.
В соответствии с Фиг.5 алгоритм автоматического формирования такого правила для предотвращения неоправданной блокировки безопасного приложения с драйвером контроля работы клавиатуры. Компьютер пользователя, в соответствии с правилами определения рейтинга опасности, производит расчет рейтинга опасности приложения с драйвером контроля работы клавиатуры. Антивирусное средство на стороне компьютера пользователя сохраняет статистику проверки приложения и передает полученную статистику на антивирусный сервер. Средство обработки на стороне антивирусного сервера на этапе 501 получает статистику проверки приложений правилами определения рейтинга безопасности. На этапе 505 выполняют сравнение всех приложений с высоким рейтингом опасности со списком безопасных объектов. Далее на этапе 510 выявляют известные безопасные объекты, у которых рассчитан высокий рейтинг опасности. Проверяют необходимость формирования нового правила определения рейтинга опасности 515. Если оказывается, что было проверено и получило высокий рейтинг опасности одно из известных безопасных приложений, которое указано в списке безопасных объектов, то приступают к формированию нового правила определения рейтинга безопасности. На этапе 520 исследуют приложение, составляют список вызываемых приложением API и используемых при вызове аргументов. Согласно 525, формируют новое правило определения рейтинга опасности, которое по приоритету проверяется раньше существующих правил определения рейтинга опасности, которые согласно статистике работы правил увеличивают рейтинг опасности безопасного приложения. Новое правило определения рейтинга опасности формируется путем выявления характерных особенностей, таких как специфические параметры вызываемой API-функции, последовательности вызываемых API-функций, используемые имена файлов, адреса расположения в папках на носителе информации, используемые ветки реестра, названия ключей реестра и т.п. Указанные характерные особенности могут быть использованы по отдельности в формируемом правиле или правило может содержать комбинацию из нескольких особенностей.
Фиг.6 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 20, содержащий центральный процессор 21, системную память 22 и системную шину 23, которая содержит разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована, как любая известная из уровня техники шинная структура, содержащая в свою очередь память шины или контроллер памяти шины, периферийную шину и локальную шину, которая способна взаимодействовать с любой другой шинной архитектурой. Системная память содержит постоянное запоминающее устройство (ПЗУ) 24, память с произвольным доступом (ОЗУ) 25. Основная система ввода/вывода (BIOS) содержит основные процедуры, которые обеспечивают передачу информации между элементами персонального компьютера 20, например, в момент загрузки операционной системы с использованием ПЗУ 24.
Персональный компьютер 20 в свою очередь содержит жесткий диск 27 для чтения и записи данных, привод магнитных дисков 28 для чтения и записи на сменные магнитные диски 29 и оптический привод 30 для чтения и записи на сменные оптические диски 31, такие как CD-ROM, DVD-ROM и иные оптические носители информации. Жесткий диск 27, привод магнитных дисков 28, оптический привод 30 соединены с системной шиной 23 через интерфейс жесткого диска 32, интерфейс привода магнитных дисков 33 и интерфейс оптического привода 34 соответственно. Приводы и соответствующие компьютерные носители информации представляют собой энергонезависимые средства хранения компьютерных инструкций, структур данных, программных модулей и прочих данных персонального компьютера 20.
Настоящее описание раскрывает реализацию системы, которая использует жесткий диск, сменный магнитный диск 29 и сменный оптический диск 31, но следует понимать, что возможно применение иных типов компьютерных носителей информации, которые способны хранить данные в доступной для чтения компьютером форме (твердотельные накопители, флеш карты памяти, цифровые диски, память с произвольным доступом (ОЗУ) и т.п.).
Компьютер 20 имеет файловую систему 36, где хранится записанная операционная система 35 и дополнительные программные приложения 37, другие программные модули 38 и программные данные 39. Пользователь имеет возможность вводить команды и информацию в персональный компьютер 20 посредством устройств ввода (клавиатуры 40, манипулятора «мышь» 42). Могут использоваться другие устройства ввода (не отображены): микрофон, джойстик, игровая консоль, сканнер и т.п. Подобные устройства ввода по своему обычаю подключают к компьютерной системе 20 через последовательный порт 46, который в свою очередь подсоединен к системной шине, но могут быть подключены иным способом, например, при помощи параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 47 или иной тип устройства отображения также подсоединен к системной шине 23 через интерфейс, такой как видеоадаптер 48. В дополнение к монитору 47, персональный компьютер может быть оснащен другими периферийными устройствами вывода (не отображены), например, колонки, принтер и т.п.
Персональный компьютер 20 способен работать в сетевом окружении, при этом используется сетевое соединение с другим или несколькими удаленными компьютерами 49. Удаленный компьютер (или компьютеры) 49 являются такими же персональными компьютерами или серверами, которые имеют большинство или все упомянутые элементы, отмеченные ранее при описании существа персонального компьютера 20, представленного на Фиг.6. В вычислительной сети могут присутствовать также и другие устройства, например, маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.
Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 51 и глобальную вычислительную сеть (WAN) 52. Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 51 через сетевой адаптер или сетевой интерфейс 53. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью 52, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными, и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.
В соответствии с описанием, компоненты, этапы исполнения, структура данных, описанные выше, могут быть выполнены, используя различные типы операционных систем, компьютерных платформ, программ.
В заключение следует отметить, что приведенные в описании сведения являются только примерами, которые не ограничивают объем настоящего изобретения, определенного формулой. Специалисту в данной области становится понятным, что могут существовать и другие варианты реализации настоящего изобретения, согласующиеся с сущностью и объемом настоящего изобретения.