×
27.08.2013
216.012.657a

Результат интеллектуальной деятельности: СИСТЕМА И СПОСОБ ФОРМИРОВАНИЯ ЗАПИСЕЙ ДЛЯ ОБНАРУЖЕНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

Вид РИД

Изобретение

№ охранного документа
0002491615
Дата охранного документа
27.08.2013
Аннотация: Группа изобретений относится к системам и способам для формирования записей с целью обнаружения программного обеспечения, такого как неизвестные упаковщики, которые модифицируют вредоносные файлы. Техническим результатом изобретения является улучшение уровня обнаружения неизвестных упаковщиков за счет использования записей для обнаружения, сформированных на основании информации о высокоуровневых операциях, за выполнение которых ответственен данный неизвестный упаковщик. Способ содержит этапы, на которых: I. эмулируют исполнение объекта; II. записывают в журнал выполняемые операции с памятью во время эмуляции исполнения объекта; III. объединяют упомянутые операции с памятью в, по меньшей мере, один последовательный набор; IV. определяют высокоуровневые операции, которые были выполнены во время эмуляции исполнения объекта, по объединенным в, по меньшей мере, один последовательный набор операциям с памятью; V. формируют записи для обнаружения программного обеспечения на основании информации о высокоуровневых операциях. 2 н. и 21 з.п. ф-лы, 4 ил.

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

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

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

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

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

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

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

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

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

В патенте US 7418729 B2 описывается система и способ для эвристического обнаружения потенциально вредоносного ПО в рамках эмуляции. В данном патенте описывается использование отслеживания всех обращений к виртуальной памяти во время эмуляции файла. Выявление потенциально вредоносного кода основывается на анализе обращений эмулируемого файла к запрещенным диапазонам адресов. При этом запрещенный диапазон адресов - какая-либо часть памяти, к которой приложение, как правило, не имеет доступа, например, заголовки и другие разделы, которые не содержат исполняемого кода. Запрещенный диапазон адресов виртуальной памяти включает в себя часть виртуальной памяти, содержащей адреса API-функции. Но описанная система не позволяет вести запись информации об операциях с памятью, которые были осуществлены во время запуска запакованного упаковщиком программного кода.

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

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

В патенте US 7568233 B1 описывается система для обнаружения вредоносного ПО, зашифрованного каким-либо упаковщиком. Но в данной системе не используется эмуляция, а используется анализ дампа памяти.

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

Сущность изобретения

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

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

I. эмулируют исполнение объекта;

II. записывают в журнал выполняемые операции с памятью во время эмуляции исполнения объекта;

III. объединяют упомянутые операции с памятью в, по меньшей мере, один последовательный набор;

IV. определяют высокоуровневые операции, которые были выполнены во время эмуляции исполнения объекта, по объединенным в, по меньшей мере, один последовательный набор операциям с памятью;

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

Система формирования записи для обнаружения программного обеспечения, содержащая:

I. эмулятор, связанный с коллектором, и предназначенный для:

- эмуляции исполнения объекта;

II. упомянутый коллектор, связанный с обработчиком, и предназначенный для:

- записи в журнал выполняемых операций с памятью во время эмуляции исполнения упомянутого объекта эмулятором;

- объединения упомянутых операций с памятью в, по меньшей мере, один последовательный набор;

- передачи, по меньшей мере, одного последовательного набора на обработчик.

III. упомянутый обработчик, связанный с модулем формирования решения, и предназначенный для:

- определения высокоуровневых операций, которые были выполнены во время эмуляции исполнения объекта эмулятором по объеденным в, по меньшей мере, один последовательный набор коллектором операциям с памятью;

- передачи информации о высокоуровневых операциях на модуль формирования решения;

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

Краткое описание прилагаемых чертежей

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

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

Фиг.1 иллюстрирует общую схему системы защиты от вредоносного ПО.

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

Фиг.3 иллюстрирует алгоритм работы системы формирования записей для обнаружения программного обеспечения.

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

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

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

Фиг.1 иллюстрирует общую схему системы защиты от вредоносного ПО.

Системой защиты от вредоносного ПО является антивирусное приложение 120, которое содержит ряд модулей защиты 130, позволяющих обнаружить и, например, удалить вредоносное ПО. Для работы модулей защиты 130 антивирусное приложение 120 в своем составе имеет антивирусную базу 140, которая содержит записи для обнаружения. При антивирусной проверке того или иного объекта 110 какой-либо модуль защиты из ряда модулей защиты 130 может использовать записи для обнаружения из антивирусной базы данных 140. Такими записями являются, например: сигнатуры, эвристики, средства родительского контроля и так далее. Следует отметить, что не все модули защиты из ряда модулей защиты 130 используют одни и те же записи. В зависимости от типа объекта 110 используется соответствующий модуль защиты, который использует записи для обнаружения при проверке данного объекта 110. Объектом 110 может являться, по меньшей мере, исполняемый файл, письмо, ссылка и так далее. Несколько модулей защиты могут также осуществлять проверку объекта 110 совместно.

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

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

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

Модифицированный неизвестным упаковщиком исполняемый файл 210 (далее-файл) при попадании на ПК с установленной системой защиты от вредоносного ПО будет проверен с помощью модуля эмуляции 150 на предмет наличия вредоносного кода. Модуль эмуляции 150 в текущей реализации системы состоит из эмулятора 220, коллектора 230 и обработчика 240. Следует отметить, что также возможна реализация системы, в которой эмулятор 220, коллектор 230 и обработчик 240 выполняют свои функции не в рамках модуля эмуляции 150, а как самостоятельные модули. В частном варианте реализации коллектор 230 может быть интегрирован в эмулятор 220. Эмулятор 220 предназначен, по меньшей мере, для:

- распаковки или расшифровки файла 210;

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

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

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

Модуль эмуляции 150, а именно эмулятор 220, связан с антивирусной базой 140, что необходимо, например, для исследования эмулятором 220 файла 210 на предмет содержания в нем участков вредоносного кода, а также обнаружения эмулятором 220 известных упаковщиков. Антивирусная база 140 также содержит предварительные записи, предназначенные для определения во время эмуляции исполнения файла 210 того факта, что данный файл 210 модифицирован неизвестным упаковщиком по тем признакам, которые свойственны для упаковщиков. Такими признаками могут быть, например, чтение памяти системных модулей, таких как kemel32.dll, user32.dll, ntdll.dll, а также чтение специфических системных структур, например PebLdrData. Данная системная структура содержит информацию обо всех загруженных модулях того или иного процесса. Наиболее часто эта структура используется упаковщиками для скрытого использования API-функций. Также у отдельных семейств упаковщиков существуют свои определенные операции, позволяющие их идентифицировать, и антивирусная база 140 может также содержать предварительные записи, позволяющие определить, что файл 210 модифицирован с помощью неизвестного упаковщика определенного семейства.

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

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

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

Ниже представлены две примерные цепочки операций, собранных и объединенных коллектором 230.

16871; WRITE; FRWD; (4): Address=40A5D8; Size=26BC0; Data=66EBF2B2B90ACCE8; Data=[0 - FFFFFFFF]; EIP=[431FBB - 431FD2]; TIME=[3F160 - 82DEE]; API=[4-4].

16870; READ; FRWD; (4): Address=40A5D8; Size=26BC0; Data=142DBA9052BD9EFF; Data=[7839 - FFFFB9F6]; EIP=[431FBD - 431FD2]; TIME=[3F161 - 82DEE]; API=[4-4].

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

- уникальный идентификатор цепочки;

- вид операции;

- направление операции;

- размер элемента данных, над которым осуществляется операции;

- адрес, по которому осуществляется операции;

- размер данных;

- хеш-сумма данных;

- размер минимального и максимального элемент в цепочке;

- минимальный и максимальный адрес регистра Eip;

- количество команд процессора, выполненных за время жизни цепочки;

- количество API-функций, выполненных за время жизни цепочки.

Обработчик 240, получив объединенные в цепочки операции от коллектора 230, определяет высокоуровневые операции, которые были выполнены при распаковке или расшифровке файла 210 во время эмуляции его исполнения эмулятором 220. Таким образом, обработчик 240 определяет те высокоуровневые операции при эмуляции исполнения файла 210, за выполнение которых ответственен неизвестный упаковщик, при помощи которого был модифицирован файл 210. Высокоуровневые операции определяются обработчиком 240 по анализу выполненных операций с памятью во время эмуляции исполнения файла 210 эмулятором 220, данные о которых были собраны и объединены коллектором 230. Высокоуровневые операции определяются обработчиком 240 на основании, например, эвристических правил, которые может содержать как сам обработчик 240, так и антивирусная база 140. Обработчик 240 сравнивает объединенные в цепочки операции с памятью с эвристическими правилами для определения высокоуровневой операции. Выполняемыми при распаковке или расшифровке файла 210 во время эмуляции его исполнения эмулятором 220 и определяемыми обработчиком 240 на основании эвристических правил высокоуровневыми операциями могут быть, по меньшей мере, такие операции как:

- расшифровка (decrypt) - изменение данных, размер массива-приемника данных равен размеру массива-источника данных;

- распаковка (unpack) - изменение данных, размер массива-приемника данных больше размера массива-источника данных;

- декодирование (decode) - изменение данных, размер массива-приемника данных меньше размера массива-источника данных;

- запись (put) - запись данных, источник неизвестен;

- фильтрация (filter) - применение оптимизирующего Е8/Е9 фильтра, позволяющего добиться лучшего сжатия данных за счет их предварительной обработки;

- импорт (import) - заполнение таблиц импорта системных модулей;

- копирование (memcpy) - копирование области памяти;

- запись (memset) - запись одинаковых данных в определенную область памяти;

- получение адресов функций (getprocaddr) - получение адресов системных функций через чтение таблиц экспорта системных модулей;

- настройка адресов (fixup) - настройка адресов объекта при его загрузке по адресу, отличному от базового.

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

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

- переход (branch) - переход в другой блок памяти;

- выделение (alloc) - выделение памяти;

- освобождение (free) - освобождение памяти;

- загрузка (load) - загрузка модуля или библиотеки.

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

Обработчик 240 определяет по полученным и обработанным цепочкам операций, какие высокоуровневые операции были выполнены при распаковке или расшифровке файла 210 во время эмуляции его исполнения эмулятором 220, и представляет обработанные данные в виде выражения. Выражение может быть представлено обработчиком 240 в следующем виде: address: operation(dst, dst_size, src, src_size, op_size, direction, type); <weight>, где:

- address - адрес операции;

- operation - название высокоуровневой операции;

- dst - адрес массива-приемника данных;

- dst_size - размер данных в массиве-приемнике;

- src - адрес массива-источника данных;

- src_size - размер данных в массиве-источнике;

- op_size - размер операции равен размеру одного элемента массива;

- direction - направление обработки данных;

- type - флаг, характеризующий операцию;

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

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

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

- image - модуль памяти под главный эмулируемый файл;

- mem - выделенная память;

- mod - подгруженные модули и библиотеки.

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

- Byte;

- Word;

- Dword;

- Qword.

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

- FRWD - вперед;

- BKWD - назад.

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

- DFLT - обычная операция;

- POLY - операция, на обработку которой уходило большое количество инструкций;

- API - возможное сокрытие операции, например, вызов API-функции при расшифровке.

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

image+0×00031FBD: decrypt(image+0×0000A5D8, image+0×0000A5D8, 0×00026 ВСО, DWORD, FRWD, DFLT); <000007>

Результатом работы обработчика 240 после обработки всех цепочек операций, переданных коллектором 230, будет последовательность выражений, отображающая порядок выполняемых высокоуровневых операций при распаковке или расшифровке файла 210 во время эмуляции его исполнения эмулятором 220, то есть описывает поведение неизвестного упаковщика, при помощи которого был модифицирован файл 210. Так, например, для известного упаковщика исполняемых файлов UPX (the Ultimate Packer for eXecutables) цепочка выражений, определяющая поведение данного упаковщика при распаковке или расшифровке во время эмуляции исполнения модифицированного данным упаковщиком файла, выглядит следующим образом:

Image+0×0083A180: unpack (image+0×00001000, 0×008384F6,

image+0×0048C000, 0×003AE15D); <000033>

Image+0×0083A256: filter (image+0×00001000, 0×00745С1С); <000005>

Image+0×0083A281: import (image+0×00001000, image+00836000, 0×00003328); <000024>

Далее набор выражений, описывающих поведение неизвестного упаковщика, при помощи которого был модифицирован файл 210, направляется обработчиком 240 на модуль формирования решения 250. Следует отметить, что модуль формирования решения 250 может находиться на стороне компании-поставщика антивирусных услуг. После получения от обработчика 240 указанного набора выражений, который определяет поведение неизвестного упаковщика, то есть информацию о высокоуровневых операциях, выполненных при распаковке или расшифровке файла 210 во время эмуляции его исполнения эмулятором 220, модуль формирования решения 250 способен формировать запись для обнаружения, позволяющую в дальнейшем точно и быстро выявить факт модификации исполняемого файла данным неизвестным упаковщиком по определенным характерным высокоуровневым операциям. Модуль формирования решения 250 формирует запись для обнаружения на основании полученного набора выражений, используя известные методы формирования записей для обнаружения. В частном варианте реализации в работу модуля формирования решения 250 могут вмешиваться аналитики для анализа поступающих наборов выражений, описывающих поведение неизвестного упаковщика. Аналитики могут отвечать за формирование записей для обнаружения неизвестного упаковщика в каких-либо случаях, требующих вмешательства эксперта.

На Фиг.3 изображен алгоритм работы системы формирования записей для обнаружения программного обеспечения.

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

Работа системы начинается на этапе 301, на котором с помощью модуля эмуляции 150 осуществляется проверка файла 210. Следует отметить, что модуль эмуляции 150 отвечает за проверку подозрительных файлов, а также таких файлов, которые могли быть модифицированы неизвестными упаковщиками. Модуль эмуляции 150 связан с антивирусной базой 140, в которой хранятся записи для обнаружения, позволяющие обнаружить тот факт, что файл 210 был модифицирован с помощью известного упаковщика. Модуль эмуляции имеет в своем составе эмулятор 220, предназначенный для выполнения на этапе 301 эмуляции исполнения файла 210.

Как было сказано ранее, антивирусная база 140 также содержит предварительные записи, предназначенные для определения во время эмуляции исполнения файла 210 с помощью эмулятора 220 того факта, что данный файл 210 модифицирован неизвестным упаковщиком по тем операциям, которые свойственны для упаковщиков. Если на этапе 302 при эмуляции исполнения файла 210 эмулятором 220 сработала подобная предварительная запись, то на этапе 303 процесс эмуляции файла 210, выполняемый эмулятором 220, начнется заново, при этом будет активирован коллектор 230 и обработчик 240, которые входят в состав модуля эмуляции 150. На этапе 303, когда эмулятор 220 начнет заново осуществлять эмуляцию исполнения файла 210, коллектор 230 будет записывать в журнал операции с памятью, выполняемые при эмуляции исполнения файла 210 эмулятором 220.

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

На этапе 305 обработчик 240, получив объединенные в цепочки операции от коллектора 230, определяет высокоуровневые операции, которые были произведены при распаковке или расшифровке файла 210 во время эмуляции его исполнения эмулятором 220. Обработчик 230 определяет те высокоуровневые операции, за которые ответственен неизвестный упаковщик, при помощи которого был модифицирован файл 110. Высокоуровневые операции определяются обработчиком 240 по анализу выполненных операций с памятью при эмуляции исполнения файла 210 эмулятором 220, данные о которых были собраны и объединены коллектором 230. Высокоуровневые операции определяются обработчиком 240 на основании, например, эвристических правил, которые может содержать как сам обработчик 240, так и антивирусная база 140. Обработчик 240 определяет по полученным и обработанным цепочкам операций, какие высокоуровневые операции были выполнены при распаковке или расшифровке файла 210 во время эмуляции его исполнения эмулятором 220 и представляет обработанные данные в виде выражения. Результатом работы обработчика 240 после обработки всех цепочек операций, переданных коллектором 230, будет последовательность выражений, отображающая последовательность выполняемых высокоуровневых операций при распаковке или расшифровке файла 210 во время эмуляции его исполнения эмулятором 220.

Далее, на этапе 306, набор выражений, описывающих поведение неизвестного упаковщика, при помощи которого был модифицирован файл 210, направляется обработчиком 240 на модуль формирования решения 250. После получения от обработчика 240 указанного набора выражений, который определяет поведение неизвестного упаковщика, то есть информацию о наборе высокоуровневых операций, выполненных при распаковке или расшифровке файла 210 во время эмуляции его исполнения эмулятором 220, модуль формирования решения 250 способен формировать запись для обнаружения, позволяющую в дальнейшем точно и быстро выявить факт модификации файла 210 данным неизвестным упаковщиком по данным характерным высокоуровневым операциям. Запись для обнаружения формируется модулем формирования решения 250, базируясь на полученном от обработчика 240 наборе выражений. В частном варианте реализации в работу модуля формирования решения 250 могут вмешиваться аналитики для анализа поступающих наборов выражений, описывающих поведение неизвестного упаковщика, а также для формирования записей для обнаружения. Модуль формирования решения 250 может находиться на стороне компании-поставщика антивирусных услуг, и набор выражений, описывающих поведение неизвестного упаковщика, может отправляться на сторону компании-поставщика антивирусных услуг в рамках существующего потока статистических данных. Работа системы завершается на этапе 307.

Фиг.4 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 20, содержащий центральный процессор 21, системную память 22 и системную шину 23, которая содержит разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована, как любая известная из уровня техники шинная структура, содержащая в свою очередь память шины или контроллер памяти шины, периферийную шину и локальную шину, которая способна взаимодействовать с любой другой шинной архитектурой. Системная память содержит постоянное запоминающее устройство (ПЗУ) 24, память с произвольным доступом (ОЗУ) 25. Основная система ввода/вывода (BIOS) 26, содержит основные процедуры, которые обеспечивают передачу информации между элементами персонального компьютера 20, например, в момент загрузки операционной системы с использованием ПЗУ 24.

Персональный компьютер 20 в свою очередь содержит жесткий диск 27 для чтения и записи данных, привод магнитных дисков 28 для чтения и записи на сменные магнитные диски 29 и оптический привод 30 для чтения и записи на сменные оптические диски 31, такие как CD-ROM, DVD-ROM и иные оптические носители информации. Жесткий диск 27, привод магнитных дисков 28, оптический привод 30 соединены с системной шиной 23 через интерфейс жесткого диска 32, интерфейс магнитных дисков 33 и интерфейс оптического привода 34 соответственно. Приводы и соответствующие компьютерные носители информации представляют собой энергонезависимые средства хранения компьютерных инструкций, структур данных, программных модулей и прочих данных персонального компьютера 20.

Настоящее описание раскрывает реализацию системы, которая использует жесткий диск 27, сменный магнитный диск 29 и сменный оптический диск 31, но следует понимать, что возможно применение иных типов компьютерных носителей информации 56, которые способны хранить данные в доступной для чтения компьютером форме (твердотельные накопители, флеш карты памяти, цифровые диски, память с произвольным доступом (ОЗУ) и т.п.), которые подключены к системной шине 23 через контроллер 55.

Компьютер 20 имеет файловую систему 36, где хранится записанная операционная система 35, а также дополнительные программные приложения 37, другие программные модули 38 и данные программ 39. Пользователь имеет возможность вводить команды и информацию в персональный компьютер 20 посредством устройств ввода (клавиатуры 40, манипулятора «мышь» 42). Могут использоваться другие устройства ввода (не отображены): микрофон, джойстик, игровая консоль, сканнер и т.п.Подобные устройства ввода по своему обычаю подключают к компьютерной системе 20 через последовательный порт 46, который в свою очередь подсоединен к системной шине, но могут быть подключены иным способом, например, при помощи параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 47 или иной тип устройства отображения также подсоединен к системной шине 23 через интерфейс, такой как видеоадаптер 48. В дополнение к монитору 47, персональный компьютер может быть оснащен другими периферийными устройствами вывода (не отображены), например, колонками, принтером и т.п.

Персональный компьютер 20 способен работать в сетевом окружении, при этом используется сетевое соединение с другим или несколькими удаленными компьютерами 49. Удаленный компьютер (или компьютеры) 49 являются такими же персональными компьютерами или серверами, которые имеют большинство или все упомянутые элементы, отмеченные ранее при описании существа персонального компьютера 20, представленного на Фиг.4. В вычислительной сети могут присутствовать также и другие устройства, например, маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.

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

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


СИСТЕМА И СПОСОБ ФОРМИРОВАНИЯ ЗАПИСЕЙ ДЛЯ ОБНАРУЖЕНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
СИСТЕМА И СПОСОБ ФОРМИРОВАНИЯ ЗАПИСЕЙ ДЛЯ ОБНАРУЖЕНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
СИСТЕМА И СПОСОБ ФОРМИРОВАНИЯ ЗАПИСЕЙ ДЛЯ ОБНАРУЖЕНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
СИСТЕМА И СПОСОБ ФОРМИРОВАНИЯ ЗАПИСЕЙ ДЛЯ ОБНАРУЖЕНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Источник поступления информации: Роспатент

Showing 71-80 of 158 items.
20.12.2015
№216.013.9ca3

Система и способ полнодискового шифрования с проверкой совместимости загрузочного диска

Изобретение относится к области полнодискового шифрования с проверкой совместимости загрузочного диска со средством шифрования. Технический результат - обеспечение совместимости загрузочного диска со средством шифрования. Способ полнодискового шифрования с проверкой совместимости загрузочного...
Тип: Изобретение
Номер охранного документа: 0002571724
Дата охранного документа: 20.12.2015
20.12.2015
№216.013.9ca4

Система и способ управления параметрами приложений на компьютерных устройствах пользователя

Изобретение относится к вычислительной технике. Технический результат заключается в повышении эффективности управления параметрами приложений на множестве разнообразных компьютерных устройств. Способ настройки приложений безопасности на множестве различных устройств, в котором устанавливают...
Тип: Изобретение
Номер охранного документа: 0002571725
Дата охранного документа: 20.12.2015
20.12.2015
№216.013.9ca5

Система и способ проверки целесообразности установки обновлений

Изобретение относится к установке обновлений на компьютерные системы. Технический результат настоящего изобретения заключается в оптимизации процесса обновления компьютерной системы. Система проверки целесообразности установки обновлений содержит: по крайней мере одну компьютерную систему, в...
Тип: Изобретение
Номер охранного документа: 0002571726
Дата охранного документа: 20.12.2015
27.01.2016
№216.014.bc80

Система и способ применения правил доступа к файлам при их передаче между компьютерами

Изобретение относится к области защиты компьютерных устройств и данных конечных пользователей от несанкционированного доступа. Техническим результатом является повышение уровня защиты информации от неавторизованного доступа путем применения правил доступа к файлам при их передаче между...
Тип: Изобретение
Номер охранного документа: 0002573785
Дата охранного документа: 27.01.2016
27.01.2016
№216.014.bd6d

Система и способ запуска виртуальной машины

Изобретение относится к области управления виртуальными машинами. Технический результат настоящего изобретения заключается в обновлении виртуальной машины путем запуска виртуальной машины из шаблона виртуальной машины с обновленным программным обеспечением. Способ запуска виртуальной машины...
Тип: Изобретение
Номер охранного документа: 0002573789
Дата охранного документа: 27.01.2016
27.01.2016
№216.014.bd77

Система и способ изменения функционала приложения

Изобретение относится к вычислительной технике. Технический результат заключается в увеличении стабильности работы компьютера за счет изменения функционала приложения в зависимости от определенных событий и функциональных модулей. Система изменения функционала приложения содержит функциональные...
Тип: Изобретение
Номер охранного документа: 0002573783
Дата охранного документа: 27.01.2016
27.01.2016
№216.014.bd8c

Система и способ настройки компьютерной системы в соответствии с политикой безопасности

Изобретение относится к информационной безопасности. Технический результат заключается в обеспечении безопасности корпоративной сети. Система настройки компьютерной системы в соответствии с политикой безопасности содержит средство применения политик для определения данных о конфигурации...
Тип: Изобретение
Номер охранного документа: 0002573782
Дата охранного документа: 27.01.2016
20.06.2016
№217.015.02e7

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

Изобретение относится к области защиты от компьютерных угроз, а именно к системам и способам оценки надежности правила категоризации. Технический результат настоящего изобретения заключается в автоматизации анализа надежности правила категоризации на основании сравнения комбинации степеней...
Тип: Изобретение
Номер охранного документа: 0002587429
Дата охранного документа: 20.06.2016
20.06.2016
№217.015.03eb

Система и способ обеспечения безопасности онлайн-транзакций

Изобретение относится к системам проведения онлайн-транзакций. Технический результат заключается в обеспечении безопасности проведения онлайн-транзакций. Реализуемая компьютером система содержит средство управления, предназначенное для определения начало проведения онлайн-транзакции,...
Тип: Изобретение
Номер охранного документа: 0002587423
Дата охранного документа: 20.06.2016
20.06.2016
№217.015.03f7

Система и способ обнаружения направленных атак на корпоративную инфраструктуру

Изобретение относится к области защиты от компьютерных угроз. Технический результат изобретения заключается в повышении безопасности вычислительного устройства. Способ обнаружения вредоносных объектов на вычислительном устройстве содержит этапы, на которых: а) получают информацию о по меньшей...
Тип: Изобретение
Номер охранного документа: 0002587426
Дата охранного документа: 20.06.2016
Showing 71-80 of 147 items.
20.12.2015
№216.013.9ca3

Система и способ полнодискового шифрования с проверкой совместимости загрузочного диска

Изобретение относится к области полнодискового шифрования с проверкой совместимости загрузочного диска со средством шифрования. Технический результат - обеспечение совместимости загрузочного диска со средством шифрования. Способ полнодискового шифрования с проверкой совместимости загрузочного...
Тип: Изобретение
Номер охранного документа: 0002571724
Дата охранного документа: 20.12.2015
20.12.2015
№216.013.9ca4

Система и способ управления параметрами приложений на компьютерных устройствах пользователя

Изобретение относится к вычислительной технике. Технический результат заключается в повышении эффективности управления параметрами приложений на множестве разнообразных компьютерных устройств. Способ настройки приложений безопасности на множестве различных устройств, в котором устанавливают...
Тип: Изобретение
Номер охранного документа: 0002571725
Дата охранного документа: 20.12.2015
20.12.2015
№216.013.9ca5

Система и способ проверки целесообразности установки обновлений

Изобретение относится к установке обновлений на компьютерные системы. Технический результат настоящего изобретения заключается в оптимизации процесса обновления компьютерной системы. Система проверки целесообразности установки обновлений содержит: по крайней мере одну компьютерную систему, в...
Тип: Изобретение
Номер охранного документа: 0002571726
Дата охранного документа: 20.12.2015
27.01.2016
№216.014.bc80

Система и способ применения правил доступа к файлам при их передаче между компьютерами

Изобретение относится к области защиты компьютерных устройств и данных конечных пользователей от несанкционированного доступа. Техническим результатом является повышение уровня защиты информации от неавторизованного доступа путем применения правил доступа к файлам при их передаче между...
Тип: Изобретение
Номер охранного документа: 0002573785
Дата охранного документа: 27.01.2016
27.01.2016
№216.014.bd6d

Система и способ запуска виртуальной машины

Изобретение относится к области управления виртуальными машинами. Технический результат настоящего изобретения заключается в обновлении виртуальной машины путем запуска виртуальной машины из шаблона виртуальной машины с обновленным программным обеспечением. Способ запуска виртуальной машины...
Тип: Изобретение
Номер охранного документа: 0002573789
Дата охранного документа: 27.01.2016
27.01.2016
№216.014.bd77

Система и способ изменения функционала приложения

Изобретение относится к вычислительной технике. Технический результат заключается в увеличении стабильности работы компьютера за счет изменения функционала приложения в зависимости от определенных событий и функциональных модулей. Система изменения функционала приложения содержит функциональные...
Тип: Изобретение
Номер охранного документа: 0002573783
Дата охранного документа: 27.01.2016
27.01.2016
№216.014.bd8c

Система и способ настройки компьютерной системы в соответствии с политикой безопасности

Изобретение относится к информационной безопасности. Технический результат заключается в обеспечении безопасности корпоративной сети. Система настройки компьютерной системы в соответствии с политикой безопасности содержит средство применения политик для определения данных о конфигурации...
Тип: Изобретение
Номер охранного документа: 0002573782
Дата охранного документа: 27.01.2016
20.06.2016
№217.015.02e7

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

Изобретение относится к области защиты от компьютерных угроз, а именно к системам и способам оценки надежности правила категоризации. Технический результат настоящего изобретения заключается в автоматизации анализа надежности правила категоризации на основании сравнения комбинации степеней...
Тип: Изобретение
Номер охранного документа: 0002587429
Дата охранного документа: 20.06.2016
20.06.2016
№217.015.03eb

Система и способ обеспечения безопасности онлайн-транзакций

Изобретение относится к системам проведения онлайн-транзакций. Технический результат заключается в обеспечении безопасности проведения онлайн-транзакций. Реализуемая компьютером система содержит средство управления, предназначенное для определения начало проведения онлайн-транзакции,...
Тип: Изобретение
Номер охранного документа: 0002587423
Дата охранного документа: 20.06.2016
20.06.2016
№217.015.03f7

Система и способ обнаружения направленных атак на корпоративную инфраструктуру

Изобретение относится к области защиты от компьютерных угроз. Технический результат изобретения заключается в повышении безопасности вычислительного устройства. Способ обнаружения вредоносных объектов на вычислительном устройстве содержит этапы, на которых: а) получают информацию о по меньшей...
Тип: Изобретение
Номер охранного документа: 0002587426
Дата охранного документа: 20.06.2016
+ добавить свой РИД