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

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

 

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

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

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

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

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

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

Безопасный файл - файл, представляющий собой компонент безопасной программы.

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

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

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

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

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

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

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

Нечеткая контрольная сумма (англ. fuzzy hash) - значение, рассчитанное по набору данных, и представляющее собой совокупность контрольных сумм (например, MD5 или SHA256), рассчитанных по некоторым выбранным частям этого набора данных.

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

В настоящий момент существует огромное количество разновидностей вредоносных программ. Одни крадут с устройств пользователей их персональные и конфиденциальные данные (например, логины и пароли, банковские реквизиты, электронные документы). Другие формируют из устройств пользователей так называемые бот-сети (англ. botnet) для атак таких как отказ в обслуживании (англ. DDOS) или для перебора паролей методом грубой силы (англ. bruteforce) на другие компьютеры или компьютерные сети. Третьи предлагают пользователям платный контент через навязчивую рекламу, платные подписки, отправку CMC на платные номера и т.д.

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

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

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

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

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

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

- обфускация кода для борьбы с сигнатурным анализом - приведение исходного текста (например, сценариев, таких как JavaScript) или исполняемого кода программ к виду, сохраняющему их функциональность, но затрудняющему анализ, понимание алгоритмов работы и модификацию при декомпиляции;

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

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

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

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

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

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

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

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

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

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

В другой публикации US 20150096023 А1 описана технология вычисления нечетких контрольных сумм (англ. fuzzy hashes) от анализируемых программ и использования их для обнаружения вредоносных программ. Нечеткие контрольные суммы используются в качестве идентификаторов вредоносных программ и, в отличие от обычных контрольных сумм (таких как MD5 или SHA256), позволяют описывать не только содержимое вредоносной программы, но и ее поведение (например, нечеткая контрольная сумма включает в себя части, отвечающие за исполнимый код вредоносной программы, ресурсы, журналы системных вызовов). Таким образом, появляется возможность обнаруживать вредоносные программы, у которых лишь часть ресурсов используется для вредоносной деятельности (например, зараженные вирусами файлы). Недостатком данной технологии является то, что использование контрольных сумм или нечетких контрольных сумм применимо лишь на узком, уже известном диапазоне вредоносных программ. Новые версии вредоносных программ с измененными ресурсами описанная выше технология обнаруживать не будет или эффективность обнаружения будет низкая (т.е. большое количество ложных срабатываний или низкое количество обнаруженных вредоносных файлов).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Средство анализа структуры файла 110 предназначено для:

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

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

- выделения данных из найденных в базе кластеров безопасных файлов 150 кластеров;

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

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

- параметры секции файла, такие как:

- код,

- название,

- тип заголовка,

- смещение на данные в секции,

- размер данных секции;

- параметры функции, выполняемой с помощью стековой виртуальной машины, такие как:

- индекс тела функции,

- позиция и длина кода функции в секции,

- индекс описателя функции,

- максимальная глубина стека при исполнении функции,

- количество используемых функцией локальных

переменных,

- название функции,

- количество операндов,

- возвращаемый тип данных.

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

- параметры секции файла, такие как:

- код секции,

- название секции,

- тип заголовка секции,

- смещение на данные в секции,

- размер данных секции;

- параметры функции, выполняемой с помощью стековой виртуальной машины, такие как:

- индекс тела функции,

- позиция и длина кода функции в секции,

- индекс описателя функции,

- максимальная глубина стека при исполнении функции,

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

- название функции,

- количество операндов,

- возвращаемый тип данных.

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

- значение одного из параметров секций файла, превышающее заданный порог (например, количество типов секций файла);

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

Средство кластеризации 120 предназначено для:

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

- передачи созданных кластеров средству вычисления контрольных сумм 130.

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

- собранные данные размещаются в кластерах последовательно в порядке их выделения из файла;

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

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

- данные, выделенные из кластеров, найденных в базе кластеров безопасных файлов, не участвуют в формировании кластера.

Средство вычисления контрольных сумм 130 предназначено для:

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

- передачи вычисленных контрольных сумм средству проверки 140.

В качестве контрольных сумм, вычисленных по созданным кластерам, выступают нечеткие контрольные суммы от созданных кластеров.

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

Средство проверки 140 предназначено для:

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

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

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

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

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

Средство анализа структуры файла 110 выделяет из полученного для анализа файла данные:

- параметры секций (код, название и тип заголовка секции, смещение на данные и размер данных секции);

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

После этого средство анализа структуры файла 110 осуществляет поиск в базе кластеров безопасных файлов 150 кластеров, у которых ряд параметров секций файлов (например, code=69, type=short) и функций, исполняемых с помощью стековой виртуальной машины, (например, script0$init()) совпадает с параметрами секций и функций, выделенных из анализируемого файла launchme.swf.

У найденных кластеров безопасных файлов средство анализа структуры файла 110 выделяет:

- параметры секций (код, название и тип заголовка секции, смещение на данные и размер данных секции);

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

После чего выделенные данные передаются средству кластеризации 120.

Средство кластеризации 120 создает из полученных от средства анализа 110 данных три кластера:

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

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

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

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

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

После чего передает вычисленную нечеткую контрольную сумму средству проверки 140.

Средство проверки 140 осуществляет поиск в базе контрольных сумм кластеров вредоносных файлов 160 такой нечеткой контрольной суммы, которая представляла бы собой набор из минимум трех MD5 контрольных сумм, минимум две из которых совпадали бы с MD5 контрольных сумм от полученной от средства вычисления контрольных сумм 130 нечеткой контрольной суммы. В случае, если такая нечеткая сумма была найдена, выносится вердикт о том, что анализируемый файл launchme.swf является вредоносным.

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

Структурная схема способа обнаружения вредоносных файлов, исполняемых с помощью стековой виртуальной машины, состоит из следующих этапов: этап 210, на котором с помощью средства анализа структуры файла 110 выделяют данные из анализируемого файла; этап 220, на котором с помощью средства анализа структуры файла 110 осуществляют поиск кластеров в базе данных кластеров безопасных файлов 150; этап 230, на котором с помощью средства кластеризации 120 собирают кластеры анализируемого файла; этап 240, на котором с помощью средства вычисления контрольных сумм 130 вычисляют контрольную сумму по собранным кластерам; этап 250, на котором с помощью средства проверки 140 проверяют контрольную сумму в базе данных контрольных сумм вредоносных файлов 150; и этап 260, на котором с помощью средства проверки 140 выносят вердикт о том, является ли файл вредоносным.

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

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

- параметры секции файла;

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

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

- значение одного из параметров секций файла, превышающего заданный порог (например, количество типов секций файла);

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

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

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

- параметры секции файла;

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

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

- собранные данные размещаются в кластере последовательно в порядке их выделения из файла;

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

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

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

На этапе 240 вычисляют контрольную сумму по созданным на этапе 230 кластерам. В качестве контрольной суммы, вычисленной по созданному на этапе 230 кластеру, выступает нечеткая контрольная сумма от созданного кластера. В качестве нечеткой контрольной суммы, вычисленной по созданному на этапе 230 кластеру, выступает набор контрольных сумм (например, MD5 или SHA256) от выделенных на этапе 210 данных разного типа (например, набор MD5 от названий секций файла и от названий функции, выполняемых с помощью стековой виртуальной машины).

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

На этапе 260 выносят вердикт о том, является ли анализируемый файл вредоносным. В случае обнаружения на этапе 250 нечеткой контрольной суммы, полученной на этапе 240, в базе контрольных сумм кластеров вредоносных файлов 160 выносится вердикт о том, что анализируемый файл является вредоносным.

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

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

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

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



 

Похожие патенты:
Изобретение относится к области обнаружения вредоносных программ для ЭВМ на электронных устройствах. Техническим результатом является повышение эффективности защиты ЭВМ от воздействия вредоносных программ для ЭВМ.

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

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

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

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

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

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

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

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

Изобретение относится к области техники связи, в частности к управлению соединениями. Технический результат заключается в повышении уровня безопасности доступа к сетям беспроводной связи.
Изобретение относится к области обнаружения скрытого программного обеспечения в вычислительных системах, работающих под управлением POSIX-совместимых операционных систем, например Solaris, Android и др. Техническим результатом является повышение защищенности вычислительной системы. Раскрыт способ обнаружения скрытого программного обеспечения в вычислительной системе, работающей под управлением POSIX-совместимой операционной системы, причем операционная система, помимо ядра, включает следующие программные средства: 1-е средство, выполненное с возможностью определять количество инсталлированных приложений в вычислительной системе, 2-е средство, выполненное с возможностью определять количество запущенных процессов в вычислительной системе, 3-е средство, выполненное с возможностью определять для процессов статусы pid, name, uid, groups, state, 4-е средство, выполненное с возможностью сравнивать результаты работы 1-го, 2-го и 3-го средств; при этом способ заключается в том, что получают с помощью 1-го средства количество инсталлированных приложений в вычислительной системе; получают с помощью 2-го средства количество запущенных процессов в вычислительной системе; получают с помощью 3-го средства значения статусов pid, name, uid, groups, state каждого процесса; выполняют с помощью 4-го средства для каждого процесса, список которых получен с помощью 3-го средства, следующие действия: сравнивают значение статуса groups, полученное из 3-го средства, с нулем; если значение статуса groups равно нулю - приложение считается скрытым и сведения о приложении заносятся в отчет о наличии скрытых приложений и процессов; сравнивают значения статусов uid и name, полученные из 3-го средства, с соответствующими значениями uid и name, полученными из 1-го средства; если хотя бы одно из значений одноименных статусов не существует или не совпадает - приложение считается скрытым и сведения о приложении заносятся в отчет о наличии скрытых приложений и процессов; сравнивают значения статусов pid, name и state, полученные из 3-го средства, с соответствующими значениями pid, name и state, полученными из 2-го средства; если хотя бы одно из значений одноименных статусов не существует или не совпадает - процесс считается скрытым и сведения о процессе заносятся в отчет о наличии скрытых приложений и процессов; предоставляют отчет о наличии скрытых приложений и процессов; удаляют из вычислительной системы выявленные скрытые приложения.

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

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

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

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

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

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

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

Настоящее изобретение относится к устройству управления доступом к компьютерной системе, устройство содержит по меньшей мере один многофункциональный порт (Ui), который может быть соединен с различными категориями периферийных устройств, и интерфейс доступа (INT), который может быть соединен с компьютерной системой, при этом устройство содержит средство управления доступом (Масс), соединенное между многофункциональным портом (Ui) и интерфейсом (INT), указанное средство управления доступом физически выполнено с возможностью авторизации доступа к интерфейсу со стороны периферийного устройства (Р), соединенного с многофункциональным портом (Ui), только если указанное периферийное устройство принадлежит к категории периферийных устройств, индивидуально и постоянно ассоциированной с многофункциональным портом (Ui), соединенным с периферийным устройством. Настоящее устройство относится к соответствующему способу управления доступом. 3 н. и 10 з.п. ф-лы, 5 ил.

Изобретение относится к устройству обработки информации преимущественно в игровом автомате. Технический результат – обеспечение возможности регистрации нескольких пользователей с возможностью получения каждым из них награды. Изобретение содержит секцию 102 связи, устройство 10 обработки информации, секцию 150 хранения информации о зарегистрированных пользователях для хранения биометрической информации пользователя, зарегистрированную в устройстве 10 обработки информации, участок 140 биометрической аутентификации, секцию 150 хранения информации зарегистрированных пользователей для определения, является ли пользователь, изображение которого получено, пользователем, зарегистрированным в устройстве 10 обработки информации. После определения, что пользователь, изображение которого получено, является пользователем, зарегистрированным в устройстве 10 обработки информации, контроллер 120 входа в систему выполняет процесс входа пользователя в систему или, более конкретно, сохраняет информацию для идентификации устройства, содержащегося в полученном изображении, и информацию для идентификации пользователя в участок 142 хранения информации для входа пользователей в систему, связывая эти элементы информации друг с другом. 4 н. и 4 з.п. ф-лы, 11 ил.
Наверх