Система и способ обнаружения нежелательного программного обеспечения
SYSTEM AND METHOD FOR UNWANTED SOFTWARE DETECTION

Область техники
Изобретение относится к антивирусным технологиям, а более конкретно к системам и способам обнаружения нежелательного программного обеспечения.
Уровень техники
В связи с увеличением вычислительной мощности современных компьютеров существенно возросла и сложность используемого на компьютерах программного обеспечения (ПО, компьютерная программа или просто программа). Чаще всего современное ПО содержим в себе не только исполняемый файл основной программы, но еще и большое количество файлов вспомогательных утилит, баз данных, ресурсов (таких как иконки, мультимедиа-данные) и т.д.
Для правильной установки на компьютеры пользователей современного ПО используются специальные программы-установщики, осуществляющие тонкую настройку устанавливаемого ПО, наладку взаимодействия с другими программами и операционной системой, установку дополнительных утилит.
Зачастую в процессе установки необходимых пользователю программ на компьютер пользователя устанавливаются также дополнительные программы, зачастую пользователю не нужные (например, устанавливается антивирус, хотя на компьютере пользователя уже установлен один, или, например, устанавливается дополнение к браузеру, отслеживающее состояние сервисов электронной почты, которыми пользователь никогда не пользовался и т.д.).
Кроме полезных, но не нужных пользователю программ, некоторые программы-установщики могут устанавливать так называемое «нежелательное программное обеспечение» (unwanted software), а также программное обеспечение, представляющее потенциальную (riskware) или реальную (malware) опасность.
Стоит отметить, что в связи с развитием компьютерных сетей в общем и Интернета в частности некоторые программы непосредственно перед установкой загружаются из компьютерной сети или же на стороне сервера формируется индивидуальный для каждого пользователя установщик, который включает в себя те программы, которые пользователь выбрал на сайте, распространяющем компьютерные приложения, что опять же приводит к описанным выше проблемам - на компьютере пользователя установлено много ненужных для пользователя программ, среди которых могут встречаться и потенциально опасные или даже вредоносные.
Сложность обнаружения установки нежелательного программного обеспечения заключается в том, что многие программы-установщики, устанавливающие описанные выше программы, делают это не скрыто, а с согласия пользователя. При этом сам пользователь зачастую не осознает, что именно и для какой цели он устанавливает. Некоторые программы-установщики, например, предлагают пользователю настолько хитро составленное условие установки дополнительных программ, что он, даже не желая их устанавливать, выбирает вариант подразумевающий установку.
В качестве борьбы с нежелательным ПО применяются стандартные способы борьбы с вредоносными программами, а именно обнаружение с использованием сигнатурных или эвристических методов и последующего удаления.
Например, в публикации US 20070294767 A1 описана технология обнаружения вредоносного программного обеспечения за счет выявления взаимодействия вредоносного программного обеспечения с легальным программным обеспечением и оценки поведения выявленных взаимодействующих компонентов вредоносного и легального программного обеспечения, с целью последующего удаления обнаруженного вредоносного программного обеспечения. Хотя описанная технология хорошо справляется с обнаружением вредоносных приложений, особенно тех, которые так или иначе используют легальные приложения, она не справляется с выявлением нежелательного программного обеспечения, поскольку зачастую нежелательное программное обеспечение не несет в себе никакого вредоносного функционала и состоит исключительно из легальных приложений.
Хотя описанные выше технологии обнаружения хорошо справляются с обнаружением вредоносного программного обеспечения, а также программного обеспечения, представляющего потенциальную угрозу, они зачастую не способны обнаружить нежелательное программное обеспечение, установленное на компьютере пользователя.
Настоящее изобретение позволяет решать задачу обнаружения нежелательных приложений.
Раскрытие изобретения
Изобретение предназначено для антивирусной проверки приложений.
Технический результат настоящего изобретения заключается в выявлении нежелательных приложений за счет использования системы обнаружения нежелательного приложения в компьютерной системе.
Данный результат достигается с помощью использования системы обнаружения нежелательного приложения в компьютерной системе, при этом упомянутая система содержит средство сбора, предназначенное для получения приложения, установленного в компьютерной системе; обнаружения по меньшей мере одного файла, входящего в состав полученного приложения; сбора информации о связях обнаруженного файла с по меньшей мере еще одним файлом, расположенным в компьютерной системе, что и обнаруженный файл, при этом два файла являются связанными, если выполнено по меньшей мере два из условий: файлы были созданы одним приложением, файлы загружены на компьютер с одного сетевого адреса; промежуток времени между модификациями файлов меньше установленного порогового значения; совпадающие атрибуты файлов; передачи собранной информации средству поиска; средство поиска, предназначенное для обнаружения по меньшей мере одного приложения, содержащего по меньшей мере один найденный файл, при этом упомянутое приложение установлено в компьютерной системе, что и полученное средством сбора приложение; передачи информации, идентифицирующей обнаруженное приложение, средству проверки; средство проверки, предназначенное для определения частот использования полученного приложения и приложения, идентифицированного по полученной информации, при этом частота использования приложения характеризует количество выполняемых приложением действий в компьютерной системе; обнаружения полученного приложения как нежелательное приложение на основании сравнения частот использования полученного приложения и приложения, идентифицированного по полученной информации.
В другом частном случае реализации системы пороговое значение промежутка времени между модификациями файлов составляет по меньшей мере до 1 секунды; от 1 секунды до 1 минуты; от 1 минуты до 10 минут.
Еще в одном частном случае реализации системы промежуток времени между установкой в компьютерной системе файла, входящего в состав проверяемого приложения, и связанного с ним файла меньше установленного порогового значения, при этом установленное пороговое значение составляет по меньшей мере до 1 секунды; от 1 секунды до 1 минуты; от 1 минуты до 10 минут.
В другом частном случае реализации системы в качестве приложения, создающего файлы на компьютере, выступает программа установки (installer).
Еще в одном частном случае реализации системы в качестве частоты использования приложения выступает по меньшей мере частота запуска приложения с момента ее установки в компьютерной системе и до момента получения приложения; частота вызова приложением функций API операционной системы во время своей работы на компьютерной системе; частота модификации файлов, входящих в состав приложения, с момента их создания в компьютерной системе и до момента получения приложения; частота действий, осуществляемых с использованием элементов интерфейса приложения, для передачи данных упомянутому приложению.
Данный результат достигается с помощью использования способа обнаружения нежелательного приложения в компьютерной системе, при этом способ содержит этапы, которые реализуются с помощью средств из системы обнаружения нежелательного приложения в компьютерной системе и на которых получают приложение, установленное в компьютерной системе; обнаруживают по меньшей мере один файл, входящий в состав полученного на предыдущем этапе приложения; производят в компьютерной системе, в которой расположен обнаруженный на предыдущем этапе файл, поиск файлов, связанных с упомянутым файлом, при этом два файла являются связанными, если выполнено по меньшей мере два из условий: файлы были созданы одним приложением; файлы загружены на компьютер с одного сетевого адреса; промежуток времени между модификациями файлов меньше установленного порогового значения; совпадающие атрибуты файлов; обнаруживают по меньшей мере одно приложение, содержащее по меньшей мере один найденный на предыдущем этапе файл, при этом упомянутое приложение установлено в компьютерной системе, что и полученное на первом этапе приложение; определяют частоту использования полученного на первом этапе приложения и обнаруженного на предыдущем этапе приложения, при этом частота использования приложения характеризует количество выполняемых приложением заранее установленных действий в компьютерной системе за установленное время; обнаруживают полученное на первом этапе приложение как нежелательное приложение на основании сравнения частот использования полученного на первом этапе приложения и обнаруженного на предыдущем этапе приложения.
В другом частном случае реализации способа пороговое значение промежутка времени между модификациями файлов составляет по меньшей мере до 1 секунды; от 1 секунды до 1 минуты; от 1 минуты до 10 минут.
Еще в одном частном случае реализации способа промежуток времени между установкой в компьютерной системе файла, входящего в состав проверяемого приложения, и связанного с ним файла меньше установленного порогового значения, при этом установленное пороговое значение составляет по меньшей мере до 1 секунды; от 1 секунды до 1 минуты; от 1 минуты до 10 минут.
В другом частном случае реализации способа в качестве приложения, создающего файлы на компьютере, выступает программа установки (installer).
Еще в одном частном случае реализации способа в качестве частоты использования приложения выступает по меньшей мере частота запуска приложения с момента ее установки в компьютерной системе и до момента получения приложения; частота вызова приложением функций API операционной системы во время своей работы на компьютерной системе; частота модификации файлов, входящих в состав приложения, с момента их создания в компьютерной системе и до момента получения приложения; частота действий, осуществляемых с использованием элементов интерфейса приложения, для передачи данных упомянутому приложению.
Краткое описание чертежей
Фиг. 1 представляет структурную схему системы обнаружения нежелательного программного обеспечения.
Фиг. 2 представляет структурную схему способа обнаружения нежелательного программного обеспечения.
Фиг. 3 представляет структурную схему воссоздания установочного пакета по установленным файлам и приложениям.
Фиг. 4 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер.
Хотя изобретение может иметь различные модификации и альтернативные формы, характерные признаки, показанные в качестве примера на чертежах, будут описаны подробно. Следует понимать, однако, что цель описания заключается не в ограничении изобретения конкретным его воплощением. Наоборот, целью описания является охват всех изменений, модификаций, входящих в рамки данного изобретения, как это определено приложенной формуле.
Описание вариантов осуществления изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, необходимыми для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется в объеме приложенной формулы.
Введем ряд определений и понятий, которые будут использоваться при описании вариантов осуществления изобретения.
Нежелательное приложение - приложение, установленное на компьютер без «осознанного» участия пользователя, не выполняющее явно вредоносных действий, при этом способное в процессе своей работы доставлять неудобство пользователю (через навязчивую демонстрацию рекламных материалов, изменения пользовательских настроек операционной системы и приложений, например, изменение стартовой страницы браузеров, и т.д.). При этом «осознанность» участия пользователя в выполнении действий в компьютерной системе заключается в понимании сути выполняемых действий и последствий, к которым упомянутые действия могут привести.
Нежелательный файл - файл, входящий в состав нежелательного приложения.
Легитимное приложение - приложение, не являющееся нежелательным к моменту выполнения антивирусной проверки.
Легитимный файл - файл, входящий в состав легитимного приложения.
Фиг. 1 представляет пример структурную схему системы обнаружения нежелательного программного обеспечения.
Структурная схема системы обнаружения нежелательного программного обеспечения состоит из хранилища файлов и приложений 101, хранилища истории пользовательской активности 102, средства сбора 111, средства поиска 112 и средства проверки 113.
Хранилище файлов и приложений 101 предназначено для:
- хранения приложений, установленных на компьютер пользователя;
- хранения файлов, входящих в состав установленных на компьютер пользователя приложений;
- и предоставления приложений и файлов средству сбора 111.
Хранилище истории пользовательской активности 102 предназначено для:
- отслеживания с помощью драйверов (например, компьютерной мыши, клавиатуры, и т.д.) действий пользователя над приложениями, установленными в компьютерной системе;
- хранения информации об отслеженных действиях пользователя; и
- предоставления хранящейся информации средству проверки 113.
Например, пользователь, работая с графическим интерфейсом плагина браузера «AdBlock», устанавливает некоторые параметры плагина, для чего вводит текстовые данные, манипулирует элементами интерфейса (нажимает на кнопки, перемещает ползунки и т.п.). Хранилище истории пользовательской активности 102 отслеживает с помощью драйверов компьютерной мыши и клавиатуры действия пользователя над плагином «Adblock», описанные выше, и сохраняет информацию об отслеженных действиях (время нажатия на кнопку, введенный текст, время работы в графическом интерфейсе, идентификаторы элементов управления, которыми манипулировал пользователь и т.д.).
Средство сбора 111 предназначено для:
- получения от хранилища файлов и приложений 101 приложений, установленных в компьютерной системе;
- обнаружения по меньшей мере одного файла, входящего в состав полученного приложения;
- сбора информации о связях обнаруженного файла с по меньшей мере еще одним файлом, расположенным в компьютерной системе, что и обнаруженный файл, при этом два файла являются связанными, если выполнено по меньшей мере два из условий:
- файлы были созданы одним приложением,
- файлы загружены на компьютер с одного сетевого адреса;
- промежуток времени между модификациями файлов меньше установленного порогового значения;
- файлы имеют одинаковый тип файла (например, в качестве типов файла могут выступать исполнимые файлы .ехе, библиотеки .dll, архивы .zip, видео .avi и т.д.);
- один файл содержат данные, для которых коэффициент похожести с данными, содержащимися во втором файле, выше установленного порогового значения;
- совпадающие атрибуты файлов;
- пути расположения файлов входят в состав значений ключей реестра, расположенных в одной ветке реестра;
- промежуток времени между модификациями записей в реестре, содержащих информацию о файлах меньше установленного порогового значения; и
- передачи собранной информации средству поиска 112.
При этом файлы, входящие в состав приложения, могут обнаруживаться:
- с помощью анализа записей реестра Windows, в которых указываются пути расположения файлов, связанных с упомянутым приложением;
- в результате поиска файлов, расположенных по тем же путям, что и файлы, отвечающие за запуск упомянутого приложения.
При этом пороговое значение промежутка времени между модификациями файлов составляет по меньшей мере:
- до 1 секунды;
- от 1 секунды до 1 минуты;
- от 1 минуты до 10 минут.
При этом промежуток времени между установкой в компьютерной системе файла, входящего в состав проверяемого приложения, и связанного с ним файла меньше установленного порогового значения, при этом установленное пороговое значение составляет по меньшей мере:
- до 1 секунды;
- от 1 секунды до 1 минуты;
- от 1 минуты до 10 минут.
Например, файлы «illustrator.exe» и «Bridge.exe» входят в состав разных приложений - «Adobe Illustrator CS6» и «Adobe Bridge CS6», оба из которых в свою очередь входят в состав графического пакета «Adobe Creative Suite». Файлы «illustrator.exe» и «Bridge.exe» были созданы практически в одно и тоже время: 10.11.2015 14:32:15.171 и 10.11.2015 14:32:16.025 соответственно, т.е. с разницей меньше в 1 секунду, что означает с большой долей вероятности, что приложения «Adobe Illustrator CS6» и «Adobe Bridge CS6» были установлены одновременно. Таким образом, файлы «illustrator.exe» и «Bridge.exe» связаны друг с другом.
При этом в качестве приложения, создающего файлы на компьютере, может выступать программа установки (installer).
Например, файлы «word.exe» и «excel.exe», входящие в состав приложений «Microsoft Word 2013» и «Microsoft Excel 2013» соответственно, были созданы в компьютерной системе в результате работы установочного пакета «Microsoft Office 2013» (программа установки, начавшая работу при запуске файла «office2013.msi»). Таким образом, файлы «word.exe» и «excel.exe» являются связанными, поскольку были созданы в компьютерной системе одним приложением (установочным пакетом «Microsoft Office 2013»).
Ошибка! Недопустимый объект гиперссылки.
В качестве другого примера выступают файлы «flash21.0.0.197.dll», представляющие собой драйвер приложения «Adobe Flash», и «mcafee.exe», представляющие собой один из файлов антивирусного пакета «McAfee AntiVirus Plus», созданные в компьютерной системе в результате работы браузера, с помощью использования ActiveX при посещении сайта «adobe.com», при этом установочный пакет был сформирован динамически на посещаемом сайте в зависимости от опций, выставленных пользователем или заданных по умолчанию. Таким образом, файлы «flash21.0.0.197.dll» и «mcafee.exe» являются связанными, поскольку упомянутые файлы были загружены в компьютерную систему с одного сетевого адреса.
При этом в качестве данных, содержащихся в файлах, могут выступать ресурсы файлов (например, описание структуры элементов графического интерфейса, в том числе диалоговых окон, медиа-данные, в том числе изображения, видео и аудио записи, и т.д.).
Например, JPEG и PNG изображения, хранящиеся в ресурсах файла, могут считаться схожими, если обладают схожим цветовым содержимым. Более подробно это выглядит так: каждая точка изображения хранит цвет в формате RGB, цвет конвертируется в YUV представление и для каждого канала Y, U и V сравниваемых изображений строится гистограмма распределения цветов по всем точкам, получается для каждого изображения три 256-мерных вектора, численное значение скалярного произведения которых и будет характеризовать степень схожести изображений - чем ближе к 0, тем изображения более похожи.
Аудиозаписи, хранящиеся в ресурсах файла, могут считаться схожими, если обладают схожими звуковыми данными. Более подробно это выглядит так: каждый блок аудиозаписи (аудиозапись состоит из набора звуковых блоков) хранит информацию о характеристиках (например, частота и длительность) звука в заданный момент звуковой композиции, совокупность выбранных характеристик (например, частоты) всех блоков аудиозаписи представляет собой N-мерный вектор, численное значение скалярного произведения двух таких векторов, построенных для двух аудиозаписей, и будет характеризовать степень схожести упомянутых аудиозаписей - чем ближе к 0, тем аудиозаписи более похожи.
Для видеозаписей, хранящихся в ресурсах файла, схожесть определяется схожим образом с описанными выше примерами для изображений и аудиозаписей, поскольку видеозапись представляет собой совокупность кадров и звуковые дорожки.
Схожесть между диалоговыми окнами может определяться по схожести данных, описывающих графические элементы диалоговых окон. Более подробно это выглядит так: информация о диалоговых окнах представляет собой совокупность характеристик графических элементов диалоговых окон, что в свою очередь может быть представлено как N-мерный вектор, где каждое измерение связано с одной из характеристик графических элементов диалогового окна, численное значение скалярного произведения двух таких векторов, построенных для двух диалоговых окон, и будет характеризовать степень схожести упомянутых диалоговых окон - чем ближе к 0, тем диалоговые окна более похожи.
Например, все файлы приложения «Microsoft Word» связаны с файлами приложения «Microsoft Excel»:
- цифровой подписью (один из ресурсов исполнимых файлов, входящих в состав «Microsoft Word» и «Microsoft Excel»);
- производителем программного обеспечения (Microsoft);
- общим путем установки в файловой системе ("C:\Programs File\Microsoft Office 2013").
Средство поиска 112 предназначено для:
- обнаружения по меньшей мере одного приложения, содержащего по меньшей мере один найденный средством сбора 111 файл, при этом упомянутое приложение установлено в компьютерной системе, что и полученное средством сбора 111 приложение;
- и передачи информации, идентифицирующей обнаруженное приложение, средству проверки 113.
При этом информация, идентифицирующей обнаруженное приложение, содержит по меньшей мере:
- идентификатор приложения (например, название приложения, хранящееся в ветке реестре, содержащей информацию об установленных в компьютерной системе приложениях);
- пути к файлам, входящим в состав приложения;
- правила запуска приложения в компьютерной системе (например, строка запуска, содержащая путь к исполнимому файлу и ключи запуска).
Средство проверки 113 предназначено для:
- определения частот использования полученного средством сбора 111 приложения и приложения, идентифицированного по полученной средством поиска 112 информации, при этом частота использования приложения характеризует количество выполняемых приложением действий в компьютерной системе;
- обнаружения полученного средством сбора 111 приложения как нежелательное приложение на основании сравнения частот использования полученного средством сбора 111 приложения и приложения, идентифицированного по полученной средством поиска 112 информации.
При этом в качестве частоты использования приложений могут выступать:
- частота запуска приложения с момента ее установки в компьютерной системе и до момента выполнения антивирусной проверки приложения;
- частота вызова приложением функций API операционной системы во время своей работы на компьютерной системе;
- частота модификации файлов, входящих в состав приложения, с момента их создания в компьютерной системе и до момента выполнения антивирусной проверки упомянутого приложения;
- частота действий, осуществляемых с использованием элементов интерфейса приложения, для передачи данных упомянутому приложению.
При этом сравнение частот использования полученного средством сбора 111 приложения и приложения, идентифицированного по полученной средством поиска 112 информации, выполняется следующим образом:
- частота использования каждого приложения, включающая в себя одну и более частот, описанных выше, представляется в виде многомерного вектора, компонент которого представляет собой одну из частот, составляющих частоты использования приложения, например:
1
2
n
θ={θ, θ, …, θ},
где
θ - частота использования приложения,
1
θ - частота запуска приложения с момента ее установки в компьютерной системе и до момента выполнения антивирусной проверки приложения,
2
θ - частота вызова приложением функций API операционной системы во время своей работы на компьютерной системе,
3
θ - частота модификации файлов, входящих в состав приложения, с момента их создания в компьютерной системе и до момента выполнения антивирусной проверки упомянутого приложения,
4
θ - частота действий, осуществляемых с использованием элементов интерфейса приложения, для передачи данных упомянутому приложению;
- находят скалярное произведение двух векторов, где каждый вектор представляет собой представление частоты использования приложения, построенного способом, описанным в предыдущем пункте
где
θ - частота использования приложения #1,
ϑ - частота использования приложения #2,
- сравнивают вычисленное значение с установленным пороговым значением и в случае, когда вычисленное значение выше установленного порогового значения, полученное средством сбора 111 приложение признается нежелательным.
Например, в качестве частоты использования приложений «MicrosoR Word» и «AdBlock Plus», установленных с помощью установочного пакета пользовательской сборки, может выступать совокупность сразу несколько характеристик, а именно:
для Microsoft Word»:
- частота запуска приложения (например, 1 раз в сутки);
- частота действий, осуществляемых с использованием элементов интерфейса приложения, для передачи данных упомянутому приложению (например, 1 раз в секунду, в случае, когда пользователь набирает текст);
для «AdBlock Plus»:
- частота запуска приложения (например, 10 раз в сутки);
- частота действий, осуществляемых с использованием элементов интерфейса приложения, для передачи данных упомянутому приложению (например, 0,0000034 раз в секунду, в случае, когда пользователь изменяет настройки приложения).
Результат сравнения полученных частот использования «Microsoft Word» и «AdBlock Plus» будет численное значение, вычисленное по закону вычисления скалярного произведения векторов, а именно
где
ω - результат сравнения частот использования «Microsoft Word» θ и «AdBlock Plus» ϑ,
1
θ - частота запуска приложения «Microsoft Word»,
1
ϑ - частота запуска приложения «AdBlock Plus»,
2
θ - частота действий, осуществляемых с использованием элементов интерфейса приложения «Microsoft Word»,
2
ϑ - частота действий, осуществляемых с использованием элементов интерфейса приложения «AdBlock Plus».
Частота использования приложения характеризует не только насколько активно используется приложение, но и насколько часто пользователь «осознанно» использует упомянутое приложение. Например, если приложение, установленное в компьютерной системе, имеет графический интерфейс, но пользователь им не пользуется (т.е. не работает с элементами графического интерфейса с помощью клавиатуры, мыши или другого манипулятора), то с большой долей вероятности можно утверждать, что такое приложение является нежелательным. В случае, когда такое приложение было установлено из установочного пакета с другими приложениями, которые в отличии от упомянутого используются пользователем, можно утверждать, что упомянутое приложение является нежелательным. Таким образом, одно и тоже приложение на разных компьютерах у разных пользователей может быть определено и как легитимное, и как нежелательное.
Рассмотрим систему обнаружения нежелательного программного обеспечения на следующем примере.
В компьютерной системе на основании установленного правила безопасности о регулярном выполнении антивирусной проверки компьютерной системы был начат поиск нежелательных приложений. Средством сбора 111 на основе данных, предоставленных хранилищем файлов и приложений 101 (а именно, данных, записанных в ветки реестра, содержащую информацию об установленных в компьютерной системе приложениях), было обнаружено приложение «Yandex Toolbar», представляющее собой плагин для браузеров. В настройках браузера, записанных в реестре, была определена запись, относящаяся к «Yandex Toolbar», в которой был указан путь к файлу, входящему в состав приложение «Yandex Toolbar» и реализующему функционал плагина для браузера «Google Chrome» ("C:\ProgramFiles\Google\Chrome\Plugins\ytbar.exe").
Далее средством поиска 102 для найденного файла «ytbar.exe» был произведен сбор информации о связях упомянутого файла с другими файлами компьютерной системы. С этой целью были выполнены следующие действия:
- осуществлен поиск файлов со временем создания, отличающимся от времени создания «ytbar.exe» не более чем на минуту;
- осуществлен поиск файлов, размещенных в том же каталоге, что и «ytbar.exe» (или в каталоге, схожим по названию, например, "..\Chrome\Plugins\ytbar.exe" и "..\Firefox\Plugins\ytbar2.exe").
В результате были обнаружены еще несколько десятков файлов, которые появились в компьютерной системе в тоже время, что и исследуемый файл «ytbar.exe» или по схожим путям. Было определено, в состав каких приложений входят обнаруженные файлы: «Yandex Toolbar» и "K-Lite Codecs".
После того как были обнаружены приложения, связанные друг с другом через входящие в их состав файлы, средством проверки 103 была определена для всех обнаруженных приложений частота использования обнаруженных приложений.
В результате были достигнуты результаты:
#1 «K-Lite Codecs», представляющее собой набор кодеков и утилит для работы с видео- и аудиофайлами (в основном кодирование и декодирование).
Было определено, что:
- файлы приложения «K-Lite Codecs», представляющие собой .dll библиотеки, запускались 30 раз в сутки;
- файлы приложения «K-Lite Codees», представляющие собой исполнимые.ехе файлы утилиты для работы с видео- и аудиофайлами, запускались 2 раза в сутки;
- один из файлов приложения «K-Lite Codees», представляющий собой утилиту («GraphStudioNext64.exe»), обладает графическим интерфейсом, содержащим элементы управления, и пользователь взаимодействовал с элементы управления (нажимал на кнопки, вносил параметры) 15 раз за каждый запуск файла «GraphStudioNext64.exe».
По полученным данным делается вывод, что приложение «K-Lite Codees» является активно работающим и регулярно используется пользователем.
#2 «Yandex Toolbar», представляющее собой плагин для браузеров, имеющий графический интерфейс, и предоставляющее пользователю быстрый доступ к разнообразным службам, таким как информация о погоде, почтовым сервисам и т.д.
Было определено, что:
- файлы приложения «Yandex Toolbar» запускались 25 раз в сутки (что соответствует количеству запусков браузера);
- в графическом интерфейсе приложения «Yandex Toolbar» ни разу не выполнялись действия с использованием элементов интерфейса приложения для передачи данных упомянутому приложению.
По полученным данным делается вывод, что приложение «Yandex Toolbar»:
- было установлено вместе с приложением «K-Lite Codecs» из одного установочного пакета (K-Lite Codec Pack Mega);
- не используется пользователем, будучи установленным.
Таким образом, делается вывод, что приложение «Yandex Toolbar» является нежелательным и должно быть удалено из компьютерной системы.
Фиг. 2 представляет пример структурной схемы способа обнаружения нежелательного программного обеспечения.
Структурная схема способа обнаружения нежелательного программного обеспечения содержит этап 201, реализуемый средством сбора 111, на котором получают приложения для проведения проверки, этап 202, реализуемый средством сбора 111, на котором обнаруживают файлы, входящий в состав проверяемого приложения, этап 203, реализуемый средством поиска 112, на котором производят поиск файлов, связанных с обнаруженным файлом, этап 204, реализуемый средством поиска 112, на котором обнаруживают приложения, этап 205, реализуемый средством проверки 113, на котором определяют частоту использования приложений, и этап 206, реализуемый средством сбора 113, на котором определяют проверяемое приложение как нежелательное приложение.
На этапе 201 получают от хранилища файлов и приложений 101 приложения, установленные в компьютерной системе.
На этапе 202 обнаруживают файлы, входящий в состав проверяемых приложений.
При этом файлы, входящие в состав приложения, могут обнаруживаться:
- с помощью анализа записей реестра Windows, в которых указываются пути расположения файлов, связанных с упомянутым приложением;
- в результате поиска файлов, расположенных по тем же путям, что и файлы, отвечающие за запуск упомянутого приложения.
На этапе 203 производят в компьютерной системе, в которой расположены обнаруженные на этапе 202 файлы, поиск файлов, связанных с упомянутыми файлами, при этом два файла являются связанными, если выполнено по меньшей мере два из условий:
- файлы были созданы одним приложением;
- файлы загружены на компьютер с одного сетевого адреса;
- промежуток времени между модификациями файлов меньше установленного порогового значения;
- файлы имеют одинаковый тип файла (например, в качестве типов файла могут выступать исполнимые файлы .ехе, библиотеки .dll, архивы .zip, видео .avi и т.д.);
- один файл содержат данные, для которых коэффициент похожести с данными, содержащимися во втором файле, выше установленного порогового значения;
- атрибуты файла одинаковы для обоих файлов;
- пути расположения файлов входят в состав значений ключей реестра, расположенных в одной ветке реестра;
- промежуток времени между модификациями записей в реестре, содержащих информацию о файлах, меньше установленного порогового значения.
При этом пороговое значение промежутка времени между модификациями файлов составляет по меньшей мере:
- до 1 секунды;
- от 1 секунды до 1 минуты;
- от 1 минуты до 10 минут.
При этом промежуток времени между установкой в компьютерной системе файла, входящего в состав проверяемого приложения, и связанного с ним файла меньше установленного порогового значения, при этом установленное пороговое значение составляет по меньшей мере:
- до 1 секунды;
- от 1 секунды до 1 минуты;
- от 1 минуты до 10 минут.
При этом в качестве приложения, создающего файлы на компьютере, может выступать программа установки (installer).
При этом в качестве данных, содержащихся в файлах, могут выступать ресурсы файлов (например, описание структуры элементов графического интерфейса, в том числе диалоговых окон, медиа-данные, в том числе изображения, видео и аудио записи, и т.д.).
На этапе 204 обнаруживают по меньшей мере одно приложение, содержащее по меньшей мере один найденный на этапе 203 файл, при этом упомянутое приложение установлено в компьютерной системе, что и полученное на этапе 201 приложение.
При этом информация об обнаруженных приложениях содержит по меньшей мере:
- идентификатор приложения (например, название приложения, хранящееся в ветке реестре, содержащей информацию об установленных в компьютерной системе приложениях);
- пути к файлам, входящим в состав приложения;
- правила запуска приложения в компьютерной системе (например, строка запуска, содержащая путь к исполнимому файлу и ключи запуска).
На этапе 205 определяют частоту использования полученного на этапе 201 приложения и обнаруженного на этапе 204 приложения, при этом частота использования приложения характеризует количество выполняемых приложением заранее установленных действий в компьютерной системе за установленное время.
При этом в качестве частоты использования приложений могут выступать:
- частота запуска приложения с момента ее установки в компьютерной системе и до момента выполнения антивирусной проверки приложения;
- частота вызова приложением функций API операционной системы во время своей работы на компьютерной системе;
- частота модификации файлов, входящих в состав приложения, с момента их создания в компьютерной системе и до момента выполнения антивирусной проверки упомянутого приложения;
- частота действий, осуществляемых с использованием элементов интерфейса приложения, для передачи данных упомянутому приложению.
На этапе 206 обнаруживают полученное на этапе 201 приложение как нежелательное приложение на основании сравнения полученных на этапе 205 частот использования полученного на этапе 201 приложения и обнаруженного на этапе 204 приложения.
При этом сравнение частот использования полученного на этапе 201 приложения и обнаруженного на этапе 204 приложения выполняется следующим образом:
- частота использования каждого приложения, полученная на этапе 205 и включающая в себя одну и более частот, описанных выше, представляется в виде многомерного вектора, компонент которого представляет собой одну из частот, составляющих частоты использования приложения, например:
1
2
n
θ={θ, θ, …,θ},
где
θ - частота использования приложения,
1
θ - частота запуска приложения с момента ее установки в компьютерной системе и до момента выполнения антивирусной проверки приложения,
2
θ - частота вызова приложением функций API операционной системы во время своей работы на компьютерной системе,
3
θ - частота модификации файлов, входящих в состав приложения, с момента их создания в компьютерной системе и до момента выполнения антивирусной проверки упомянутого приложения,
4
θ - частота действий, осуществляемых с использованием элементов интерфейса приложения, для передачи данных упомянутому приложению;
- находят скалярное произведение двух векторов, где каждый вектор представляет собой представление частоты использования приложения, построенного способом, описанным в предыдущем пункте
где
θ - частота использования приложения #1,
ϑ - частота использования приложения #2,
- сравнивают вычисленное значение с установленным пороговым значением и в случае, когда вычисленное значение выше установленного порогового значения, полученное на этапе 201 приложение признается нежелательным.
Фиг. 3 представляет структурную схему воссоздания установочного пакета по установленным файлам и приложениям.
Структурная схема воссоздания установочного пакета по созданным в компьютерной системе файлам и установленным в упомянутой компьютерной системе приложениям содержит установочный пакет 300, предназначенный для установки в компьютерную систему легитимных и нежелательных приложений, легитимные файлы 301, нежелательные файлы 302, легитимные приложения 311, нежелательные приложения 312, при этом приложения и файлы могут быть связаны друг с другом прямыми связями 321 и косвенными связями 322.
Два приложения связаны прямой связью в случае, когда в состав одного приложения входят файлы, созданные при работе второго приложения.
Приложение и файл связаны прямой связью в случае, когда упомянутый файл был создан при работе упомянутого приложения.
Два файла связаны прямой связью в случае, когда один файл был создан при работе приложения, в состав которого входит второй файл.
Два приложения связаны косвенной связью в случае, когда оба приложения в своей работе используют общие данные. Например, приложение Microsoft Word и Microsoft Excel являются разными приложениями, но в своей работе используют одни и те же параметры (такие, как путь для сохранения документов по умолчанию, настройки проверки правописания и т.д.), записанные в реестре.
Два файла связаны косвенной связью в случае, когда приложения, в состав которых входят упомянутые файлы, связаны косвенной связью.
Приложение и файл связаны косвенной связью в случае, когда упомянутое приложение связано косвенной связью с приложением, в состав которого входит упомянутый файл.
С момента установки нежелательного приложения 312 из установочного пакета 300 может пройти значительное время, по истечению которого выполняется поиск (например, с помощью антивируса) нежелательных приложений. Поскольку нежелательные приложения 312 могут практически ничем не отличаться от легитимных приложений 311, их обнаружение и идентификация представляет большую сложность для антивирусных приложений. Тем не менее, сам установочный пакет 300, из которого были установлены упомянутые нежелательные приложения 312, при обнаружении может быть идентифицирован как нежелательный на основании своего поведения (с помощью эвристического анализа) или анализа своей структуры (с помощью сигнатурного анализа). К сожалению, зачастую после выполнения своей работы по установке в компьютерную систему приложений, установочный пакет 300 удаляется (автоматически или пользователем), в связи с чем его анализ становится невыполнимым. Тем не менее, можно на основании анализа имеющихся в компьютерной системе установленных приложений, содержащих файлы, связанные друг с другом прямыми связями 321, воссоздать установочный пакет 300 или его поведение по установке приложений через воссоздание косвенных связей 322. На основании анализа прямых 321 и косвенных 322 связей между файлами 301, 302, созданными в компьютерной системе, и приложениями 311, 312, установленными и работающими в компьютерной системе, можно выбрать файлы и приложения, представляющие собой установочный пакет 300, который будет идентичен по поведению или содержимому с установочным пакетом, который в действительности был использован для создания файлов 301, 302 в компьютерной системе. На основании результатов сигнатурного или эвристического анализа полученного установочного пакета 300 возможно выявить нежелательные приложения, установленные с помощью установочного пакета 300 в компьютерной системе.
На этапе 1 обнаруживают все связанные файлы (среди которых есть как легитимные 301, так и нежелательные 302, но на момент обнаружения их статус еще неизвестен), при этом два файла являются связанными, если выполнены некоторые из условий:
- файлы были созданы одним приложением;
- файлы загружены на компьютер с одного сетевого адреса;
- промежуток времени между модификациями файлов меньше установленного порогового значения;
- атрибуты файла одинаковы для обоих файлов;
- пути расположения файлов входят в состав значений ключей реестра, расположенных в одной ветке реестра;
- промежуток времени между модификациями записей в реестре, содержащих информацию о файлах, меньше установленного порогового значения.
При этом файлы, входящие в состав приложения, могут обнаруживаться:
- с помощью анализа записей реестра Windows, в которых указываются пути расположения файлов, связанных с упомянутым приложением;
- в результате поиска файлов, расположенных по тем же путям, что и файлы, отвечающие за запуск упомянутого приложения.
При этом промежуток времени между установкой в компьютерной системе файла, входящего в состав проверяемого приложения, и связанного с ним файла меньше установленного порогового значения.
При этом в качестве приложения, создающего файлы на компьютере, может выступать программа установки (installer).
На этапе 2 выявляют зависимости между обнаруженными файлами и приложениями, в состав которых входят упомянутые файлы (косвенные связи 322), а также файлы, входящие в состав приложений, которые участвовали в создании упомянутых файлов (прямые связи 321).
Например, на этапе 1 были обнаружены файлы «data.dat» и «data.ini», созданные в одно и тоже время, а на этапе 2 найден файл «app.zip», являющийся архивом, хранящим в себе заархивированные файлы «data.dat» и «data.ini». В найденном архиве также содержался файл «арр.ехе», который отсутствовал в компьютерной системе на момент выполнения этапа 1. Данный файл может считаться связанным косвенной связью 322 с упомянутыми файлами data.dat» и «data.ini».
Этап 2 может продолжаться итерационно до тех пор, пока для всех обнаруженных на этапе 1 файлов не будут выявлены приложения и файлы, связанные с упомянутыми файлами, обнаруженными на этапе 1. При этом файлы, созданные в компьютерной системе раньше остальных файлов, обнаруженных на этапе 1 и этапе 2, а также приложения, установленные в компьютерную систему раньше остальных приложений, обнаруженных на этапе 2, будут связаны с установочным пакетом 300.
На этапе 3 выполняется антивирусная проверка выявленного установочного пакета 300. Как было сказано ранее, выявление средствами антивирусного приложения нежелательных приложений может вызывать большие трудности, поскольку нежелательные приложения практически неотличимы от легитимных приложений - они не осуществляют вредоносной деятельности в компьютерной системе. Тем не менее, при установке нежелательных приложений в компьютерную систему должны быть выполнены определенные действия (например, для того, чтобы пользователь не отменил саму установку или условия установки), которые уже могут быть обнаружены антивирусными приложениями. Если установочный пакет 300 в результате антивирусной проверки будет признан способным устанавливать нежелательные приложения, то производится анализ всех установленных им приложений и всех созданных им файлов, вплоть до файлов, которые были обнаружены на этапе 1, с целью выявить нежелательные приложения 312. С этой целью определяют частоту использования обнаруженных приложений и файлов, при этом частота использования приложения характеризует количество выполняемых приложением заранее установленных действий в компьютерной системе за установленное время, и где в качестве частоты может выступать:
- частота запуска приложения с момента ее установки в компьютерной системе и до момента выполнения антивирусной проверки приложения;
- частота вызова приложением функций API операционной системы во время своей работы на компьютерной системе;
- частота модификации файлов, входящих в состав приложения, с момента их создания в компьютерной системе и до момента выполнения антивирусной проверки упомянутого приложения;
- частота действий, осуществляемых с использованием элементов интерфейса приложения, для передачи данных упомянутому приложению.
Приложения, чья определенная частота использования оказывается ниже установленного порогового значения, признаются нежелательными. Например, с помощью установочного пакета «Adobe Flash Installer» в компьютерную систему были установлены два приложения - плагин для браузеров «Adobe Flash Player» и антивирус «McAfee AntiVirus Plus». Частота использования плагина «Adobe Flash Player» составила ~100 вызовов в сутки, а частота использования антивируса «McAfee AntiVirus Plus» - 0,01 вызовов в сутки. При сравнении частот использования с установленным пороговым значением, равным 0,25, антивирус «McAfee AntiVirus Plus» был признан нежелательным. Такая низкая частота использования антивируса «McAfee AntiVirus Plus» говорит о том, что пользователь не пользуется установленным антивирусом «McAfee AntiVirus Plus».
Фиг. 4 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 20, содержащий центральный процессор 21, системную память 22 и системную шину 23, которая содержит разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована, как любая известная из уровня техники шинная структура, содержащая в свою очередь память шины или контроллер памяти шины, периферийную шину и локальную шину, которая способна взаимодействовать с любой другой шинной архитектурой. Системная память содержит постоянное запоминающее устройство (ПЗУ) 24, память с произвольным доступом (ОЗУ) 25. Основная система ввода/вывода (BIOS) 26, содержит основные процедуры, которые обеспечивают передачу информации между элементами персонального компьютера 20, например, в момент загрузки операционной системы с использованием ПЗУ 24.
Персональный компьютер 20 в свою очередь содержит жесткий диск 27 для чтения и записи данных, привод магнитных дисков 28 для чтения и записи на сменные магнитные диски 29 и оптический привод 30 для чтения и записи на сменные оптические диски 31, такие как CD-ROM, DVD-ROM и иные оптические носители информации. Жесткий диск 27, привод магнитных дисков 28, оптический привод 30 соединены с системной шиной 23 через интерфейс жесткого диска 32, интерфейс магнитных дисков 33 и интерфейс оптического привода 34 соответственно. Приводы и соответствующие компьютерные носители информации представляют собой энергонезависимые средства хранения компьютерных инструкций, структур данных, программных модулей и прочих данных персонального компьютера 20.
Настоящее описание раскрывает реализацию системы, которая использует жесткий диск 27, сменный магнитный диск 29 и сменный оптический диск 31, но следует понимать, что возможно применение иных типов компьютерных носителей информации 56, которые способны хранить данные в доступной для чтения компьютером форме (твердотельные накопители, флеш карты памяти, цифровые диски, память с произвольным доступом (ОЗУ) и т.п.), которые подключены к системной шине 23 через контроллер 55.
Компьютер 20 имеет файловую систему 36, где хранится записанная операционная система 35, а также дополнительные программные приложения 37, другие программные модули 38 и данные программ 39. Пользователь имеет возможность вводить команды и информацию в персональный компьютер 20 посредством устройств ввода (клавиатуры 40, манипулятора «мышь» 42). Могут использоваться другие устройства ввода (не отображены): микрофон, джойстик, игровая консоль, сканер и т.п. Подобные устройства ввода по своему обычаю подключают к компьютерной системе 20 через последовательный порт 46, который в свою очередь подсоединен к системной шине, но могут быть подключены иным способом, например, при помощи параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 47 или иной тип устройства отображения также подсоединен к системной шине 23 через интерфейс, такой как видеоадаптер 48. В дополнение к монитору 47, персональный компьютер может быть оснащен другими периферийными устройствами вывода (не отображены), например, колонками, принтером и т.п.
Персональный компьютер 20 способен работать в сетевом окружении, при этом используется сетевое соединение с другим или несколькими удаленными компьютерами 49. Удаленный компьютер (или компьютеры) 49 являются такими же персональными компьютерами или серверами, которые имеют большинство или все упомянутые элементы, отмеченные ранее при описании существа персонального компьютера 20, представленного на Фиг. 4. В вычислительной сети могут присутствовать также и другие устройства, например, маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.
Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.
В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой.