Система и способ оценки приложения на вредоносность Российский патент 2021 года по МПК G06F21/56 

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

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

Изобретение относится к области информационной безопасности, а более конкретно к системам и способам оценки приложения на вредоносность.

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

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

В настоящий момент существует огромное количество разновидностей вредоносных программ. Одни крадут с устройств пользователей их персональные и конфиденциальные данные (например, логины и пароли, банковские реквизиты, электронные документы). Другие формируют из устройств пользователей так называемые бот-сети (англ. botnet) для атак таких, как отказ в обслуживании (англ. DDoS - Distributed Denial of Service) или для перебора паролей методом грубой силы (англ. brute force) на другие компьютеры или компьютерные сети. Третьи предлагают пользователям платный контент через навязчивую рекламу, отправку SMS-сообщений на платные номера и т.д.

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

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

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

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

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

Зачастую дополняя (или подменяя) декомпиляцию выступает анализ данных, полученных при эмуляции (или исполнении) приложений, т.е. когда получают доступ не к инструкциям приложения (или алгоритмам приложения), а к результатам выполнения таких инструкций или алгоритмов.

В патентной публикации US 9288220 B2 описана технология обнаружения вредоносного ПО в сетевом трафике. С этой целью из данных, выбранных из сетевого трафика, выделяют характерные признаки (признаки, характеризующие тип исполнимого файла, поведение исполнимого файла при эмуляции, выполняемые при исполнении файла (вызовы API функций), срабатывание сигнатур в файле и т.д.), в качестве которых может выступать признаковое описание выбранных данных, так называемый вектор признаков (англ. feature vector), составленный из значений, соответствующих набору признаков для объекта, содержащего выбранные данные. Применяя модели обнаружения безопасных файлов, обнаружения вредоносных файлов и определения типов вредоносных файлов, предварительно обученные с использованием методов машинного обучения на основании шаблонов, составленных из схожих с упомянутыми характерных признаков, определяют, с каким весом и к какому типу вредоносного 110 относятся выбранные данные, и выносят решение об обнаружении вредоносного 110 в сетевом трафике.

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

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

Изобретение предназначено для обеспечения информационной безопасности.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Фиг. 2 представляет структурную схему способа определения степени вредоносности.

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

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

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

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

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

Структурная схема системы определения степени вредоносности состоит из средства формирования исходного кода 110, средства формирования промежуточного кода 120, средства выборки характеристик 130, базы приложений 131, средства определения степени вредоносности 140, средства идентификации 150.

В качестве приложения 101 может выступать по меньшей мере:

один исполнимый файл;

по меньшей мере один исполнимый файл и по меньшей мере один файл ресурсов, совокупно обеспечивающие функционал приложения 101.

Например, в качестве исполнимых файлов могут использоваться файлы форматов РЕ, ELF, MACHO, BIN и т.д.

Средство формирования исходного кода 110 предназначено для формирования для заданного приложения 101 исходного кода.

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

Например, дизассемблер выбирается в зависимости от типа приложения из заранее подготовленного набора дизассемблеров.

Еще в одном примере в качестве дизассемблера может использоваться «Capstone disassemblers

Еще в одном из вариантов реализации системы декомпиляция выполняется таким образом, чтобы по приложениям, работающим на разных платформах и имеющим разные типы (например, РЕ и ELF), но имеющие схожий функционал формируется схожий исходный код.

Средство формирования промежуточного кода 120 предназначено для формирования промежуточного кода на основании сформированного исходного кода.

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

В одном из вариантов реализации системы средство формирования промежуточного кода 120 дополнительно предназначено для:

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

функция;

совокупность инструкций, расположенных между инструкцией перехода по заданному адресу и инструкцией, расположенной по заданному адресу;

б) по меньшей мере:

вычисления свертки от базового блока;

выделения кодов инструкций (англ. opcode), содержащихся в базовом блоке;

выделения константных аргументов инструкций, содержащихся в базовом блоке;

выделения переменные со стека;

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

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

переменную на входе инструкции;

константный аргумент инструкции;

результат вызова инструкции.

из базового блока.

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

Еще в одном из вариантов реализации системы в качестве функции свертки выступает алгоритм MD5. Таким образом промежуточный код может составлять совокупность М05-значений.

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

коду стандартных библиотек;

коду известных безопасных приложений.

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

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

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

База приложений 131 предназначена для хранения характеристик и сформированного промежуточного кода по меньшей мере одного приложения.

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

категория, к которой относится указанное приложение, при этом в качестве категории выступает по меньшей мере:

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

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

категория неизвестных приложений, включающая приложения, функционал которых неизвестен,

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

При этом каждая категория приложения может содержать в себя подкатегории, например категория вредоносных приложений может содержать в себе категории семейств (типов) вредоносных приложений (например, черви, трояны, потенциально опасные приложения и т.д.).

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

Средство определения степени вредоносности 140 предназначено для определения степени вредоносности заданного приложения 101 на основании выбранных характеристик приложения.

В одном из вариантов реализации системы степень вредоносности представляет собой численное значение в заданном диапазоне (например, от 0 до 100), где минимальное значение означает гарантированно безопасное приложение, а максимальное значение - гарантированно вредоносное.

Средство идентификации 150 предназначено для определения на основании степени вредоносности заданного приложения 101 по меньшей мере:

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

вредоносного кода, внедренного в заданное приложение

категорию заданного приложения.

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

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

Самый простой пример описанного выше случая - приложение, инфицированное один из вирусов.

Рассмотрим пример описанной выше технологии: анализируются два файла (File 1, File 2), из каждого блока выделяются функциональные блоки, по которым вычисляется промежуточный код и свертка. Полученные свертки сравниваются между собой на схожесть:

File 1:

Базовый блок #1 (до первой инструкции передачи управления):

Промежуточный код #1 (содержащий инструкции):

Свертка:

(адреса начала и конца базового блока, md5 хеш исходных инструкций базового блока, md5 хеш от блока псевдоинструкций, строка исходных байт)

File 2:

Базовый блок #1 (до первой инструкции передачи управления):

Промежуточный код #1 (содержащий инструкции):

Свертка:

(адреса начала и конца базового блока, md5 хеш исходных инструкций базового блока, md5 хеш от блока псевдоинструкций, строка исходных байт)

Видно, что исходные байты и их хеш не совпадают, а хеши псевдокода одинаковые.

Фиг. 2 представляет структурную схему способа определения степени вредоносности.

Структурная схема способа определения степени вредоносности содержит этап 210, на котором формируют исходный код, этап 220, на котором формируют промежуточный код, этап 230, на котором выбирают характеристики, этап 240, на котором определяют степень вредоносности, этап 250, на котором определяют участок кода.

На этапе 210 с помощью средства формирования исходного кода 110 формируют для заданного приложения 101 его исходный код.

На этапе 220 с помощью средства формирования промежуточного кода 120 формируют промежуточный код на основании сформированного на этапе 210 исходного кода.

В одном из частных случаев реализации способа этап 220 содержит этапы, на которых:

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

функция;

совокупность инструкций, расположенных между инструкцией перехода по заданному адресу и инструкцией, расположенной по заданному адресу;

б) на основании выделенного базового блока по меньшей мере:

вычисляют свертку от базового блока;

выделяют коды инструкций, содержащихся в базовом блоке;

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

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

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

переменную на входе инструкции;

константный аргумент инструкции;

результат вызова инструкции.

На этапе 230 с помощью средства выборки характеристик 130 осуществляют выборку характеристик по меньшей мере одного приложения из базы приложений 131 на основании сформированного на этапе 220 промежуточного кода.

На этапе 240 с помощью средства определения степени вредоносности 140 определяют степень вредоносности заданного приложения 101 на основании выбранных на этапе 230 характеристик приложения.

На этапе 250 с помощью средства идентификации 150 на основании определенной на этапе 240 степени вредоносности заданного приложения 101 определяют по меньшей мере:

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

вредоносный код, внедренный в заданное приложение 101;

категорию заданного приложения 101.

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

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

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

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

название год авторы номер документа
Система и способ обнаружения вредоносных файлов на мобильных устройствах 2015
  • Кивва Антон Андреевич
  • Бучка Никита Александрович
  • Кузин Михаил Юрьевич
  • Чебышев Виктор Владимирович
RU2614557C2
Система и способ формирования правила проверки файла на вредоносность 2020
  • Лопатин Евгений Игоревич
  • Снегирев Артем Игоревич
  • Лискин Александр Викторович
  • Акимов Иван Андреевич
RU2757408C1
Способ обнаружения вредоносных файлов на основании фрагментов файлов 2019
  • Костин Раю
RU2747464C2
Система и способ выбора средства обнаружения вредоносных файлов 2019
  • Чистяков Александр Сергеевич
  • Романенко Алексей Михайлович
RU2739830C1
СПОСОБ ОБНАРУЖЕНИЯ ВРЕДОНОСНОГО КОДА В ОПЕРАТИВНОЙ ПАМЯТИ 2015
  • Павлющик Михаил Александрович
  • Монастырский Алексей Владимирович
  • Назаров Денис Александрович
RU2589862C1
Система и способ обнаружения вредоносных компьютерных систем 2016
  • Антонов Алексей Евгеньевич
  • Романенко Алексей Михайлович
RU2634181C1
СПОСОБ ФОРМИРОВАНИЯ АНТИВИРУСНОЙ ЗАПИСИ ПРИ ОБНАРУЖЕНИИ ВРЕДОНОСНОГО КОДА В ОПЕРАТИВНОЙ ПАМЯТИ 2015
  • Павлющик Михаил Александрович
  • Монастырский Алексей Владимирович
  • Назаров Денис Александрович
RU2592383C1
Система и способ формирования журнала в виртуальной машине для проведения антивирусной проверки файла 2017
  • Пинтийский Владислав Валерьевич
  • Аникин Денис Вячеславович
  • Кобычев Денис Юрьевич
  • Головкин Максим Юрьевич
  • Бутузов Виталий Владимирович
  • Карасовский Дмитрий Валериевич
  • Кирсанов Дмитрий Александрович
RU2649794C1
Система и способ обнаружения вредоносного кода в файле 2016
  • Головкин Максим Юрьевич
  • Монастырский Алексей Владимирович
  • Пинтийский Владислав Валерьевич
  • Павлющик Михаил Александрович
  • Бутузов Виталий Владимирович
  • Карасовский Дмитрий Валериевич
RU2637997C1
СПОСОБ АВТОМАТИЧЕСКОЙ НАСТРОЙКИ СРЕДСТВА БЕЗОПАСНОСТИ 2012
  • Зайцев Олег Владимирович
RU2514137C1

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

Реферат патента 2021 года Система и способ оценки приложения на вредоносность

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

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

1. Система определения степени вредоносности, которая содержит:

а) средство формирования исходного кода, предназначенное для формирования для заданного приложения исходного кода;

б) средство формирования промежуточного кода, предназначенное для формирования промежуточного кода на основании сформированного исходного кода;

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

г) средство определения степени вредоносности, предназначенное для определения степени вредоносности заданного приложения на основании выбранных характеристик приложения.

2. Система по п. 1, в которой в качестве приложения может выступать по меньшей мере одно из:

исполнимый файл;

совокупность по меньшей мере одного исполнимого файла и по меньшей мере одного файла ресурсов.

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

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

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

функция;

совокупность инструкций, расположенных между инструкцией перехода по заданному адресу и инструкцией, расположенной по заданному адресу;

б) по меньшей мере:

вычисления свертки от базового блока;

выделения кодов инструкций, содержащихся в базовом блоке;

выделения константных аргументов инструкций, содержащихся в базовом блоке;

выделения переменных со стека;

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

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

переменную на входе инструкции;

константный аргумент инструкции;

результат вызова инструкции из базового блока.

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

коду стандартных библиотек;

коду известных безопасных приложений.

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

7. Система по п. 1, в которой в качестве характеристик приложения выступают по меньшей мере:

категория, к которой относится указанное приложение, при этом в качестве категории выступает по меньшей мере:

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

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

категория неизвестных приложений, включающая приложения, функционал которых неизвестен,

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

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

9. Система по п. 1, которая дополнительно содержит средство идентификации, предназначенное для определения на основании степени вредоносности заданного приложения по меньшей мере:

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

вредоносного кода, внедренного в заданное приложение;

категорию заданного приложения.

10. Способ определения степени вредоносности, при этом способ содержит этапы, которые реализуются с помощью средств из системы по п. 1 и на которых:

а) формируют для заданного приложения его исходный код;

б) формируют промежуточный код на основании сформированного исходного кода;

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

г) определяют степень вредоносности заданного приложения на основании выбранных характеристик приложения.

11. Способ по п. 10, по которому в качестве приложения может выступать по меньшей мере:

один исполнимый файл;

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

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

13. Способ по п. 10, по которому формирование промежуточного кода содержит этапы, на которых:

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

функция;

совокупность инструкций, расположенных между инструкцией перехода по заданному адресу и инструкцией, расположенной по заданному адресу;

б) на основании выделенного базового блока по меньшей мере:

вычисляют свертку от базового блока;

выделяют коды инструкций, содержащихся в базовом блоке;

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

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

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

переменную на входе инструкции;

константный аргумент инструкции;

результат вызова инструкции.

14. Способ по п. 13, по которому из промежуточного кода исключают инструкции, относящиеся по меньшей мере к:

коду стандартных библиотек;

коду известных безопасных приложений.

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

16. Способ по п. 10, по которому в качестве характеристик приложения выступают по меньшей мере:

категория, к которой относится указанное приложение, при этом в качестве категории выступает по меньшей мере:

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

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

категория неизвестных приложений, включающая приложения, функционал которых неизвестен,

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

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

18. Способ по п. 10, по которому дополнительно на основании определенной степени вредоносности заданного приложения определяют по меньшей мере:

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

вредоносный код, внедренный в заданное приложение;

категорию заданного приложения.

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

Способ приготовления лака 1924
  • Петров Г.С.
SU2011A1
US 8161548 B1, 17.04.2012
Токарный резец 1924
  • Г. Клопшток
SU2016A1
Способ защиты переносных электрических установок от опасностей, связанных с заземлением одной из фаз 1924
  • Подольский Л.П.
SU2014A1
СПОСОБ ОБНАРУЖЕНИЯ КОДОВ ВРЕДОНОСНЫХ КОМПЬЮТЕРНЫХ ПРОГРАММ В ТРАФИКЕ СЕТИ ПЕРЕДАЧИ ДАННЫХ, В ТОМ ЧИСЛЕ ПОДВЕРГНУТЫХ КОМБИНАЦИЯМ ПОЛИМОРФНЫХ ПРЕОБРАЗОВАНИЙ 2016
  • Иванов Владимир Николаевич
  • Воронин Алексей Владимирович
  • Пономарев Дмитрий Владимирович
  • Трофименков Сергей Андреевич
RU2615317C1

RU 2 757 265 C1

Авторы

Кузнецов Игорь Игоревич

Минеев Сергей Александрович

Даты

2021-10-12Публикация

2020-09-24Подача