СИСТЕМА И СПОСОБ ОЦЕНКИ ВРЕДОНОСНОСТИ КОДА, ИСПОЛНЯЕМОГО В АДРЕСНОМ ПРОСТРАНСТВЕ ДОВЕРЕННОГО ПРОЦЕССА Российский патент 2014 года по МПК G06F21/55 

Описание патента на изобретение RU2531861C1

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

Изобретение относится к компьютерным системам и более конкретно к системам и способам оценки вредоносности кода, исполняемого в адресном пространстве доверенного процесса.

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

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

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

Дальнейшее описание станет более понятным после раскрытия понятий процесса и потока в операционной системе. Процесс является, по сути, контейнером ресурсов, необходимых для выполнения кода программы. Процесс имеет виртуальное адресное пространство, пример структурной схемы которого представлен на Фиг.1. В виртуальное адресное пространство процесса 100 проецируется исполняемый файл, из которого загружен процесс (в рассматриваемом примере это файл iexplore.exe веб-обозревателя Internet Explorer), а также связанные с ним динамические библиотеки DLL (англ. dynamic-link library, динамически подключаемая библиотека). Также в адресном пространстве процесса хранятся структуры данных типа стек и куча (англ. heap), которые более подробно будут рассмотрены ниже. Каждый процесс содержит, по крайней мере, один поток. Поток использует системные ресурсы (например, файлы, ключи системного реестра, объекты синхронизации) и адресное пространство процесса. Выполнение программного кода происходит в рамках потоков процесса.

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

Примером доверенного процесса, от имени которого возможно исполнение вредоносного кода, может быть процесс svchost.exe - процесс в семействе операционных систем Microsoft Windows для служб, загружаемых из динамических библиотек. В операционной системе может быть запущено несколько экземпляров указанного процесса для каждой из служб, зарегистрированных в специальном разделе системного реестра. Если у вредоносной программы получится зарегистрироваться в качестве такой службы, то вредоносный код программы будет исполняться в адресном пространстве одного из процессов svchost.exe.

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

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

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

Другой подход, описанный в патенте US 8230499, предназначен для обнаружения вредоносного кода, исполняемого в адресном пространстве процесса браузера. При перехвате функции скачивания (например, UrIDownloadToFileA, UrIDownloadToFileW, UrIDownloadToCacheFileA, and UriDownloadToCacheFileW) определяется адрес возврата вызываемой функции, если адрес возврата находится в куче, скачивание запрещается.

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

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

Раскрытие изобретения

Настоящее изобретение предназначено для оценки вредоносности кода, исполняемого в адресном пространстве доверенного процесса.

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

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

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

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

Еще в одном частном случае реализации системы критическими функциями являются функция создания нового процесса и функция создания нового потока.

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

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

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

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

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

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

Еще в одном частном случае реализации способа критическими функциями являются функция создания нового процесса и функция создания нового потока.

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

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

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

Краткое описание чертежей

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

Фиг.1 показывает пример структурной схемы виртуального адресного пространства процесса.

Фиг.2 показывает систему оценки вредоносности кода, исполняемого в адресном пространстве доверенного процесса.

Фиг.3 показывает структурную схему стека вызовов.

Фиг.4 показывает алгоритм работы системы оценки вредоносности кода, исполняемого в адресном пространстве доверенного процесса.

Фиг.5а показывает пример последовательности вызовов, осуществляемых от имени процесса, не зараженного эксплойтом.

Фиг.5б показывает пример последовательности вызовов, осуществляемых от имени процесса, зараженного эксплойтом.

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

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

Описание вариантов осуществления изобретения

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

На Фиг.2 представлена система оценки вредоносности кода, исполняемого в адресном пространстве доверенного процесса. Список процессов 210, исполняемых в произвольный момент в операционной системе, в среднем включает несколько десятков (возможно и более) процессов в зависимости от количества запущенных приложений. Стоит отметить, что на Фиг.2 представлен пример списка исполняемых процессов 210, и их количество и наименования не ограничены данным примером. При этом анализ всех без исключения процессов на наличие вредоносного кода является ресурсоемкой задачей, выполнение которой может приводить к зависанию приложений на различных этапах их работы. Для решения указанной проблемы в настоящем изобретении производится анализ только ненадежных процессов - процессов, для которых присутствие вредоносного в адресном пространстве наиболее вероятно.

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

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

После обнаружения ненадежных процессов в системе средство мониторинга процессов 220 передает идентификаторы данных процессов средству перехвата вызовов критических функций 240. Средство перехвата вызовов критических функций 240 предназначено для перехвата вызовов критических функций среди вызовов всех функций, осуществляемых каждым ненадежным процессом. Под критической функцией в данном случае подразумевается функция, вызов которой наиболее часто осуществляется вредоносным кодом, исполняемым в адресном пространстве ненадежного процесса. В общем случае для реализации своего функционала вредоносному коду требуется произвести создание нового процесса или нового потока. Поэтому в одном из вариантов осуществления настоящего изобретения критическими будут являться функция создания нового процесса (CreateProcess) и функции создания нового потока (CreateThread/CreateRemoteThread).

Для определенных видов ненадежных процессов могут быть и другие примеры критических функций. Например, если процесс, принадлежащий приложению, функционал которого не предусматривает создание исполняемых файлов (к примеру, Adobe Reader), осуществляет функцию записи исполняемого файла (WriteFile), то такая функция будет также являться критической.

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

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

В зависимости от варианта реализации настоящего изобретения критериями оценки вредоносности кода могут быть:

- нахождение исполняемого кода в куче;

- присутствие в коде инструкций, типичных для эксплойтов (примерами таких инструкций могут быть инструкции, с помощью которых эксплойт производит определение своего адреса, для процессоров с архитектурой ×86 такие инструкции имеют вид: call $+5; pop<reg>);

- наличие в коде признаков позиционно-независимого кода. Наличие таких признаков характерно для эксплойтов, так как позиционно-независимый код может быть внедрен в любую область памяти эксплуатируемой программы. Примерами таких признаков могут быть работа с механизмом структурной обработки исключений (англ. SEH -Structured Exception Handling) и анализ экспорта библиотек;

- наличие в коде операционных кодов (опкодов), характерных для выравнивания данных;

- наличие в коде зашифрованных хешей от имен функций.

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

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

- причастность пользователя к скачиванию файла. Злоумышленники часто используют технологию, известную под названием «drive-by download», когда запуск вредоносного объекта на компьютере пользователя следует за его автоматическим скачиванием с посещаемого пользователем интернет-сайта. В этом случае для осуществления скачивания и запуска вредоносного объекта от пользователя не требуется ни совершения каких-либо действий, ни подтверждения согласия. По этой причине файл, скачанный без непосредственного участия пользователя, будет считаться подозрительным, как и загруженный из этого файла код;

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

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

На Фиг.3 представлена структурная схема стека вызовов. Под стеком вызовов понимается структура данных, организованная по принципу LIFO (англ. last in - first out, «последним пришел - первым вышел»). Стек вызовов 300 хранит информацию для возврата управления из подпрограмм в программу (или подпрограмму, при вложенных или рекурсивных вызовах). На примере, представленном на Фиг.3, в процессе исполнения кода происходит вызов функции Ф1, которая имеет параметры п1, п2 и п3. Непосредственному осуществлению вызова функции предшествует передача ее параметров в стек, которая обычно осуществляется в обратном порядке - от параметра п3 к параметру п1. При осуществлении вызова функции Ф1 в стек передается адрес возврата в данную функцию - адрес памяти, который расположен после инструкции вызова. При необходимости в стеке также выделяется участок памяти для локальных переменных функции Ф1. Аналогичные действия производятся при последующих вызовах функций Ф2 с параметром п1 и Ф3 с параметрами п1 и п2. Элемент стека, который хранит информацию об одном экземпляре функции, называется стековым кадром. Как видно из схемы, анализируя адреса возврата функций, начиная с последнего стекового кадра, можно найти адрес кода, инициировавшего вызов любой из функций.

Если, например, функция Ф3 оказалась критической функцией, вызов которой был осуществлен от имени ненадежного процесса, то средство 260 при анализе стека вызовов 300 первоначально произведет проверку кода, находящегося по адресу возврата для данной функции. Если по результатам проверки указанный код не будет признан вредоносным, то средство анализа 260 может последовательно производить проверку экземпляров кода по адресам возврата функций, вызовы которых в стеке предшествовали вызову функции Ф3. Такой анализ стека известен в области техники под названием «раскрутка стека».

На Фиг.4 показан алгоритм работы системы оценки вредоносности кода, исполняемого в адресном пространстве доверенного процесса. На этапе 410 средство мониторинга процессов 220 производит отслеживание процессов, запускаемых в операционной системе. При запуске процесса на этапе 420 средство 220 определяет, содержит ли запущенный процесс признаки ненадежного процесса, информация о которых хранится в базе данных признаков 230. Если запущенный процесс содержит признаки ненадежного процесса, средство перехвата вызовов критических функций 240 на этапе 430 производит перехват вызовов критических функций среди вызовов всех функций, осуществляемых данным процессом. Информация о том, какие из вызываемых ненадежным процессом функций следует считать критическими, хранится в базе данных критических функций 250. После перехвата вызова критической функции средство анализа 260 на этапе 440 производит анализ стека вызовов с целью идентификации исполняемого кода, инициировавшего вызов данной функции. После этого средство анализа 260 на этапе 450 производит оценку вредоносности исполняемого кода на основании критериев, информация о которых хранится в базе данных 270. По итогам оценки на этапе 460 средство анализа 260 выносит решение о вредоносности исполняемого кода.

Представленные на Фиг.5а и 5б примеры показывают разницу между последовательностью вызовов, осуществляемых от имени процесса, не содержащего эксплойт, и последовательностью вызовов, осуществляемых от имени того же процесса, содержащего эксплойт. Как видно из примера, представленного на Фиг.56, на определенном этапе управление передается исполняемому коду, расположенному в куче. Все последующие вызовы будут осуществляться эксплойтом от имени рассматриваемого процесса iexplore.exe с целью реализации вредоносного функционала. Согласно подходу, предложенному в настоящем изобретении, передача управления исполняемому коду, находящемуся в куче, является критерием, указывающим на вредоносность данного кода. Поэтому использование указанного подхода позволит своевременно обнаружить вредоносный код и помешать реализации вредоносного функционала. Представленные в примерах последовательности вызовов восстанавливаются путем анализа стека вызовов, как это было рассмотрено на Фиг.3.

Фиг.6 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 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, представленного на Фиг.6. В вычислительной сети могут присутствовать также и другие устройства, например маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.

Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.

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

Похожие патенты RU2531861C1

название год авторы номер документа
СПОСОБ ИСКЛЮЧЕНИЯ ПРОЦЕССОВ ИЗ АНТИВИРУСНОЙ ПРОВЕРКИ НА ОСНОВАНИИ ДАННЫХ О ФАЙЛЕ 2015
  • Левченко Вячеслав Иванович
  • Юдин Максим Витальевич
RU2595510C1
Система и способ формирования журнала при исполнении файла с уязвимостями в виртуальной машине 2018
  • Монастырский Алексей Владимирович
  • Павлющик Михаил Александрович
  • Пинтийский Владислав Валерьевич
  • Аникин Денис Вячеславович
  • Кирсанов Дмитрий Александрович
RU2724790C1
Система и способ обнаружения вредоносного кода в адресном пространстве процессов 2017
  • Павлющик Михаил Александрович
RU2665910C1
Система и способ обнаружения вредоносного скрипта 2017
  • Павлющик Михаил Александрович
RU2659738C1
СПОСОБ ФОРМИРОВАНИЯ АНТИВИРУСНОЙ ЗАПИСИ ПРИ ОБНАРУЖЕНИИ ВРЕДОНОСНОГО КОДА В ОПЕРАТИВНОЙ ПАМЯТИ 2015
  • Павлющик Михаил Александрович
  • Монастырский Алексей Владимирович
  • Назаров Денис Александрович
RU2592383C1
СПОСОБ ОБНАРУЖЕНИЯ ВРЕДОНОСНОГО КОДА В ОПЕРАТИВНОЙ ПАМЯТИ 2015
  • Павлющик Михаил Александрович
  • Монастырский Алексей Владимирович
  • Назаров Денис Александрович
RU2589862C1
СИСТЕМА И СПОСОБ ДЛЯ СНИЖЕНИЯ НАГРУЗКИ НА ОПЕРАЦИОННУЮ СИСТЕМУ ПРИ РАБОТЕ АНТИВИРУСНОГО ПРИЛОЖЕНИЯ 2013
  • Собко Андрей Владимирович
  • Юдин Максим Витальевич
  • Межуев Павел Николаевич
  • Годунов Илья Борисович
  • Широкий Максим Александрович
RU2571723C2
СПОСОБ АВТОМАТИЧЕСКОЙ НАСТРОЙКИ СРЕДСТВА БЕЗОПАСНОСТИ 2012
  • Зайцев Олег Владимирович
RU2514137C1
Способ обнаружения вредоносных файлов, противодействующих анализу в изолированной среде 2018
  • Карасовский Дмитрий Валериевич
  • Шульмин Алексей Сергеевич
  • Кобычев Денис Юрьевич
RU2708355C1
Система и способ открытия файлов, созданных уязвимыми приложениями 2015
  • Ефремов Андрей Анатольевич
  • Ладиков Андрей Владимирович
  • Солодовников Андрей Юрьевич
  • Монастырский Алексей Владимирович
RU2606883C2

Иллюстрации к изобретению RU 2 531 861 C1

Реферат патента 2014 года СИСТЕМА И СПОСОБ ОЦЕНКИ ВРЕДОНОСНОСТИ КОДА, ИСПОЛНЯЕМОГО В АДРЕСНОМ ПРОСТРАНСТВЕ ДОВЕРЕННОГО ПРОЦЕССА

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

Формула изобретения RU 2 531 861 C1

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

2. Система по п.1, в которой средство анализа производит оценку вредоносности экземпляров кода по адресам возврата функций, вызовы которых в стеке предшествовали вызову критической функции.

3. Система по п.1, в которой признаками ненадежных процессов являются:
- принадлежность процесса уязвимому приложению;
- принадлежность процесса приложению, осуществляющему сетевые соединения;
- принадлежность процесса приложению, которое было запущено без использования файлового менеджера.

4. Система по п.1, в которой критическими функциями являются функция создания нового процесса и функция создания нового потока.

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

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

7. Система по п.1, в которой оценку вредоносности исполняемого кода на основании заданных критериев производят с использованием аппаратов нечеткой логики или искусственных нейронных сетей.

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

9. Способ по п.8, в котором производят оценку вредоносности экземпляров кода по адресам возврата функций, вызовы которых в стеке предшествовали вызову критической функции

10. Способ по п.8, в котором признаками ненадежных процессов являются:
- принадлежность процесса уязвимому приложению;
- принадлежность процесса приложению, осуществляющему сетевые соединения;
- принадлежность процесса приложению, которое было запущено без использования файлового менеджера.

11. Способ по п.8, в котором критическими функциями являются функция создания нового процесса и функция создания нового потока.

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

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

14. Способ по п.8, в котором оценку вредоносности исполняемого кода на основании заданных критериев производят с использованием аппаратов нечеткой логики или искусственных нейронных сетей.

Документы, цитированные в отчете о поиске Патент 2014 года RU2531861C1

Приспособление для суммирования отрезков прямых линий 1923
  • Иванцов Г.П.
SU2010A1
Способ приготовления лака 1924
  • Петров Г.С.
SU2011A1
СИСТЕМА И СПОСОБ ЗАЩИТЫ КОМПЬЮТЕРНОГО УСТРОЙСТВА ОТ ВРЕДОНОСНЫХ ОБЪЕКТОВ, ИСПОЛЬЗУЮЩИХ СЛОЖНЫЕ СХЕМЫ ЗАРАЖЕНИЯ 2011
  • Поляков Алексей Александрович
  • Мартыненко Владислав Валерьевич
  • Слободянюк Юрий Геннадьевич
  • Назаров Денис Александрович
  • Павлющик Михаил Александрович
RU2454705C1
US 6775780 B1, 10.08.2004
US 8321941 B2, 27.11.2012
RU 2011111719 A, 10.10.2012

RU 2 531 861 C1

Авторы

Павлющик Михаил Александрович

Даты

2014-10-27Публикация

2013-04-26Подача