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

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

 

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

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

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

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

В настоящий момент существует огромное количество разновидностей вредоносных программ. Одни крадут с устройств пользователей их персональные и конфиденциальные данные (например, логины и пароли, банковские реквизиты, электронные документы). Другие формируют из устройств пользователей так называемые бот-сети (англ. 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. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.

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

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, по которому дополнительно на основании определенной степени вредоносности заданного приложения определяют по меньшей мере:

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

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

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



 

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

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

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

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

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

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

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

Группа изобретений относится к технологии Интернета вещей (IoT). Технический результат заключается в повышении безопасности устройств в IoT-окружении.

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

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

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

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