Система и способ классификации объектов
SYSTEM AND METHOD OF CLASSIFICATION OF OBJECTS

Область техники.
Изобретение относится к антивирусным технологиям, а более конкретно к системам и способам обнаружения вредоносных файлов.
Уровень техники
Бурное развитие компьютерных технологий в последнее десятилетие, а также широкое распространение разнообразных вычислительных устройств (персональных компьютеров, ноутбуков, планшетов, смартфонов и т.д.) стали мощным стимулом для использования упомянутых устройств в разнообразных сферах деятельности и для огромного количества задач (от интернет-серфинга до банковских переводов и ведения электронного документооборота). Параллельно с ростом количества вычислительных устройств и развитием программного обеспечения, работающего на этих устройствах, быстрыми темпами росло и количество вредоносных программ.
В настоящий момент существует огромное количество разновидностей вредоносных программ. Одни крадут с устройств пользователей их персональные и конфиденциальные данные (например, логины и пароли, банковские реквизиты, электронные документы). Другие формируют из устройств пользователей так называемые бот-сети (англ. botnet) для таких атак, как отказ в обслуживании (англ. DDoS - Distributed Denial of Service) или для перебора паролей методом грубой силы (англ. bruteforce) на другие компьютеры или компьютерные сети. Третьи предлагают пользователям платный контент через навязчивую рекламу, платные подписки, отправку CMC на платные номера и т.д.
Для борьбы с вредоносными программами, включающей в себя обнаружение вредоносных программ, предотвращение заражения и восстановление работоспособности вычислительных устройств, зараженных вредоносными программами, применяются специализированные программы -антивирусы. Для обнаружения всего многообразия вредоносных программ антивирусные программы используют разнообразные технологии, такие как:
• статический анализ - анализ программ на вредоносность, исключающий запуск или эмуляцию работы анализируемых программ, на основании данных содержащихся в файлах, составляющих анализируемые программы, при этом при статистическом анализе могут использоваться:
о сигнатурный анализ - поиск соответствий какого-либо участка кода анализируемых программ известному коду (сигнатуре) из базы данных сигнатур вредоносных программ;
о белые и черные списки - поиск вычисленных контрольных сумм от анализируемых программ (или их частей) в базе данных контрольных сумм вредоносных программ (черные списки) или базе данных контрольных сумм безопасных программ (белые списки);
• динамический анализ - анализ программ на вредоносность на основании данных, полученных в ходе исполнения или эмуляции работы анализируемых программ, при этом при динамическом анализе могут использоваться:
о эвристический анализ - эмуляция работы анализируемых программ, создание журналов эмуляции (содержащих данные по вызовам API-функций, переданным параметрам, участкам кода анализируемых программ и т.д.) и поиск соответствий данных из созданных журналов с данными из базы данных поведенческих сигнатур вредоносных программ;
о проактивная защита - перехват вызовов API-функций запущенных анализируемых программ, создания журналов поведения анализируемых программ (содержащих данные по вызовам API-функций, переданным параметрам, участкам кода анализируемых программ и т.д.) и поиск соответствий данных из созданных журналов с данными из базы данных вызовов вредоносных программ.
И статический, и динамический анализ обладают своими плюсами и минусами. Статический анализ менее требователен к ресурсам вычислительного устройства, на котором выполняется анализ, а поскольку он не требует исполнения или эмуляции анализируемой программы, статистический анализ более производительный по скорости выполняемого анализа, но при этом менее эффективный по качеству выполняемого анализа, т.е. имеет более низкий процент обнаружения вредоносных программ и более высокий процент ложных срабатываний (т.е. вынесения решения о вредоносности файла, анализируемого средствами программы-антивируса, при том, что анализируемый файл является безопасным). Динамический анализ из-за того, что использует данные, получаемые при исполнении или эмуляции работы анализируемой программы, менее производительный по скорости выполняемого анализа и предъявляет более высокие требования к ресурсам вычислительного устройства на котором выполняется анализ, но при этом и более эффективный по качеству выполняемого анализа. Современные антивирусные программы используют комплексный анализ, включающий в себя как элементы статического, так и динамического анализа.
Поскольку современные стандарты информационной безопасности требуют оперативного реагирования на вредоносные программы (в особенности на ранее не известные), на первый план выходят автоматические средства обнаружения вредоносных программ. Для эффективной работы упомянутых средств зачастую применяются элементы искусственного интеллекта и разнообразные методы машинного обучения моделей обнаружения вредоносных программ (т.е. совокупности правил принятия решения о вредоносности файла на основании некоторого набора входных данных, описывающих вредоносный файл), позволяющие эффективно обнаруживать не только хорошо известные вредоносные программы или вредоносные программы с хорошо известным вредоносным поведением, но и новые вредоносные программы, обладающие неизвестным или слабо исследованным вредоносным поведением, а также оперативно адоптироваться (обучаться) к обнаружению новых вредоносных программ.
В патентной публикации US 9288220B2 описана технология обнаружения вредоносного ПО в сетевом трафике. С этой целью из данных, выбранных из сетевого трафика, выделяют характерные признаки (признаки, характеризующие тип исполняемого файла, поведение исполняемого файла, тип передаваемых по компьютерной сети данных, например тип и размер передаваемых по компьютерной сети данных, команды, выполняемые при исполнении файла, наличие заранее заданных сигнатур в файле и т.д.), в качестве которых может выступать признаковое описание выбранных данных, т.е. вектор (англ. feature vector), составленный из значений, соответствующих некоторому набору признаков для объекта, содержащего выбранные данные. Применяя модели обнаружения безопасных файлов, обнаружения вредоносных файлов и определения типов вредоносных файлов, предварительно обученные с использованием методов машинного обучения на основании шаблонов, составленных из схожих с упомянутыми характерных признаков, определяют, с каким весом и к какому типу вредоносного ПО относятся выбранные данные, и выносят решение об обнаружении вредоносного ПО в сетевом трафике.
Хотя описанная выше технология хорошо справляется с обнаружением вредоносных файлов, обладающих некоторыми характерными признаками (т.е. данными, описывающими некоторые особенности файлов из некоторой совокупности файлов, например, наличие графического интерфейса, шифрования данных, передачи данных по компьютерной сети и т.д.), схожими с характерными признаками уже известных вредоносных файлов, она не способна справиться с обнаружением вредоносных файлов, имеющих отличные характерные признаки (хотя и схожее поведение) от характерных признаков уже известных вредоносных файлов, кроме того описанная выше технология не раскрывает такие аспекты машинного обучения моделей, как тестирование и переобучение моделей, а также формирование и переформирование (в зависимости от результатов упомянутого выше тестирования) характерных признаков.
Настоящее изобретение позволяет решать задачу обнаружения вредоносных файлов.
Раскрытие изобретения
Изобретение предназначено для антивирусной проверки файлов.
Технический результат настоящего изобретения заключается в классификации объектов с использованием обученной модели обнаружения вредоносных объектов.
Еще один технический результат настоящего изобретения заключается в повышении скорости обнаружения вредоносных объектов за счет уменьшения количества данных, выделяемых из объектов, анализируемых на вредоносность, и требуемых для признания анализируемых объектов вредоносными.
Данные результаты достигаются с помощью использования системы классификации анализируемых объектов, которая содержит: средство выборки блока данных, предназначенное для: выборки по меньшей мере одного блока данных, содержащегося в анализируемом объекте, с помощью модели анализа, при этом модель анализа представляет собой совокупность правил поиска блоков данных, таким образом, чтобы каждый найденный блок данных увеличивал вероятность классифицировать анализируемый объект как вредоносный; передачи выбранных блоков данных средству статического анализа; средство статического анализа объекта, предназначенное для: формирования для каждого полученного блока данных набора признаков, описывающих упомянутый блок данных; вычисления свертки от сформированных наборов признаков; передачи сформированной свертки средству вычисления степени вредоносности; средство вычисления степени вредоносности, предназначенное для: вычисления степени вредоносности анализируемого объекта на основании анализа полученной свертки с помощью модели обнаружения вредоносных объектов; передачи вычисленной степени вредоносности средству классификации; средство классификации, предназначенное для: признания анализируемого объекта безопасным, в случае, когда полученная степень вредоносности не превышает заранее заданного порогового значения и при этом упомянутая степень вредоносности была вычислена на основании всех блоков данных, содержащихся в анализируемом объекте; признания анализируемого объекта вредоносным, в случае, когда полученная степень вредоносности превышает заранее заданное пороговое значение.
В другом частном случае реализации системы в качестве анализируемого объекта выступает по меньшей мере: исполняемый файл; сценарий; сетевой пакет.
Еще в одном частном случае реализации системы поиск блока данных в анализируемом объекте осуществляется на основании: параметров анализируемого объекта; признаков ранее найденных блоков данных.
В другом частном случае реализации системы в качестве признаков, формируемых для блока данных, выступает по меньшей мере: частотная характеристика нахождения в упомянутом блоке данных заранее заданных символов; частотная характеристика нахождения в упомянутом блоке данных хэш-сумм, вычисляемых по символам из упомянутого блока данных с использованием заранее заданных хэш-функций; количество обращений к внешним библиотекам; суммарный объем данных в упомянутом блоке данных.
Еще в одном частном случае реализации системы система дополнительно содержит средство переобучения модели анализа, предназначенное для переобучения после того, как анализируемый объект был признан вредоносным, модели анализа таким образом, чтобы признание анализируемого объекта вредоносным достигалось на основании анализа меньшего числа выделенных из анализируемого объекта блоков данных, чем это требовалось до переобучения упомянутой модели анализа.
В другом частном случае реализации системы поиск и выделение по меньшей мере одного блока данных и вычисление степени вредоносности выполняются последовательно одно за другим до тех пор, пока по меньшей мере: анализируемый объект не будет признан вредоносным; не будут найдены и выделены все блоки данных.
Еще в одном частном случае реализации системы вычисление свертки от сформированных наборов признаков выполняется на основании заранее заданной функции свертки, такой что результат обратной функции свертки от результата упомянутой функции свертки над всеми сформированными наборами признаков имеет степень схожести с упомянутым набором признаков больше заданного значения.
В другом частном случае реализации системы степень вредоносности представляет собой численное значение, характеризующее вероятность того, что анализируемый объект является вредоносным.
Еще в одном частном случае реализации системы модель обнаружения вредоносных объектов была предварительно обучена методом машинного обучения на по меньшей мере одном безопасном объекте и вредоносном объекте.
В другом частном случае реализации системы в качестве метода машинного обучения модели обнаружения вредоносных объектов выступает по меньшей мере метод: градиентный бустинг на деревьях принятия решений; деревья принятия решений; ближайших соседей kNN; опорных векторов.
Еще в одном частном случае реализации системы метод обучения модели обнаружения вредоносных объектов обеспечивает монотонность изменения степени вредоносности объекта в зависимости от изменения количества наборов признаков, сформированных на основании анализа блоков данных.
В другом частном случае реализации системы модель анализа была предварительно обучена методом машинного обучения на по меньшей мере одном вредоносном объекте.
Данные результаты достигаются с помощью использования способа классификации анализируемых объектов, при этом способ содержит этапы, которые реализуются с помощью средств из системы классификации анализируемых объектов и на которых: выбирают по меньшей мере один блок данных, содержащийся в анализируемом объекте, с помощью модели анализа, при этом модель анализа представляет собой совокупность правил поиска блоков данных, таким образом, чтобы каждый найденный блок данных увеличивал вероятность классифицировать анализируемый объект как вредоносный; формируют для каждого выбранного блока данных набора признаков, описывающих упомянутый блок данных; вычисляют свертку от всех сформированных наборов признаков; вычисляют степень вредоносности анализируемого объекта на основании анализа вычисленной свертки с помощью модели обнаружения вредоносных объектов; признают анализируемый объект безопасным, в случае, когда вычисленная степень вредоносности не превышает заранее заданного порогового значения и при этом упомянутая степень вредоносности была вычислена на основании всех блоков данных, содержащихся в анализируемом объекта; признают анализируемый объект вредоносным, в случае, когда вычисленная степень вредоносности превышает заранее заданное пороговое значение.
В другом частном случае реализации способа в качестве анализируемого объекта выступает по меньшей мере: исполняемый файл; сценарий; сетевой пакет.
Еще в одном частном случае реализации способа поиск блока данных в анализируемом объекте осуществляется на основании: параметров анализируемого объекта; признаков ранее найденных блоков данных.
В другом частном случае реализации способа в качестве признаков, формируемых для блока данных, выступает по меньшей мере: частотная характеристика нахождения в упомянутом блоке данных заранее заданных символов; частотная характеристика нахождения в упомянутом блоке данных хэш-сумм, вычисляемых по символам из упомянутого блока данных с использованием заранее заданных хэш-функций; количество обращений к внешним библиотекам; суммарный объем данных в упомянутом блоке данных.
Еще в одном частном случае реализации способа дополнительно переобучают после того, как анализируемый объект был признан вредоносным, модель анализа таким образом, чтобы признание анализируемого объекта вредоносным достигалось на основании анализа меньшего числа выделенных из анализируемого объекта блоков данных, чем это требовалось до переобучения упомянутой модели анализа.
В другом частном случае реализации способа поиск и выделение по меньшей мере одного блока данных и вычисление степени вредоносности выполняются последовательно одно за другим до тех пор, пока по меньшей мере: анализируемый объект не будет признан вредоносным; не будут найдены и выделены все блоки данных.
Еще в одном частном случае реализации способа вычисление свертки от сформированных наборов признаков выполняется на основании заранее заданной функции свертки, такой что результат обратной функции свертки от результата упомянутой функции свертки над всеми сформированными наборами признаков имеет степень схожести с упомянутым набором признаков больше заданного значения.
В другом частном случае реализации способа степень вредоносности представляет собой численное значение, характеризующее вероятность того, что анализируемый объект является вредоносным.
Еще в одном частном случае реализации способа модель обнаружения вредоносных объектов была предварительно обучена методом машинного обучения на по меньшей мере одном безопасном объекте и вредоносном объекте.
В другом частном случае реализации способа в качестве метода машинного обучения модели обнаружения вредоносных объектов выступает по меньшей мере метод: градиентный бустинг на деревьях принятия решений; деревья принятия решений; ближайших соседей kNN; опорных векторов.
Еще в одном частном случае реализации способа метод обучения модели обнаружения вредоносных объектов обеспечивает монотонность изменения степени вредоносности объекта в зависимости от изменения количества наборов признаков, сформированных на основании анализа блоков данных.
В другом частном случае реализации способа модель анализа была предварительно обучена методом машинного обучения на по меньшей мере одном вредоносном объекте.
Краткое описание чертежей
Фиг. 1 представляет структурную схему системы машинного обучения модели обнаружения вредоносных файлов.
Фиг. 2 представляет структурную схему способа машинного обучения модели обнаружения вредоносных файлов.
Фиг. 3 представляет примеры динамики изменения степени вредоносности от количества шаблонов поведения.
Фиг. 4 представляет пример схемы связей между элементами шаблонов поведения.
Фиг. 5 представляет структурную схему системы классификации объектов.
Фиг. 6 представляет структурную схему способа классификации объектов.
Фиг. 7 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер.
Хотя изобретение может иметь различные модификации и альтернативные формы, характерные признаки, показанные в качестве примера на чертежах, будут описаны подробно. Следует понимать, однако, что цель описания заключается не в ограничении изобретения конкретным его воплощением. Наоборот, целью описания является охват всех изменений, модификаций, входящих в рамки данного изобретения, как это определено приложенной формуле.
Описание вариантов осуществления изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, необходимыми для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется в объеме приложенной формулы.
Введем ряд определений и понятий, которые будут использоваться при описании вариантов осуществления изобретения.
Вредоносный файл - файл, исполнение которого заведомо способно привести к несанкционированному уничтожению, блокированию, модификации, копирования компьютерной информации или нейтрализации средств защиты компьютерной информации.
Вредоносное поведение исполняемого файла - совокупность действий, которые могут быть выполнены при исполнении упомянутого файла и которые заведомо способны привести к несанкционированному уничтожению, блокированию, модификации, копированию информации или нейтрализации средств защиты компьютерной информации.
Вредоносная активность исполняемого файла - совокупность действий, выполненных упомянутым файлом в соответствии с его вредоносным поведением.
Вычислительное устройство среднестатистического пользователя гипотетическое (теоретическое) вычислительное устройство, обладающее усредненными характеристиками вычислительных устройств заранее выбранной группы пользователей, на котором исполняются те же приложения, что и на вычислительных устройствах упомянутых пользователей.
Команда, исполняемая вычислительным устройством - совокупность машинных инструкций или инструкций сценариев, исполняемых вычислительным устройством на основании параметров упомянутых инструкций, называемых параметрами команды или параметрами, описывающими упомянутую команду.
Лексический анализ («токенизация», от англ. tokenizing) - процесс аналитического разбора входной последовательности символов на распознанные группы (далее - лексемы), с целью формирования на выходе идентификационных последовательностей (далее - токены).
Токен - идентификационная последовательность, формируемая из лексемы в процессе лексического анализа.
Фиг. 1 представляет структурную схему системы машинного обучения модели обнаружения вредоносных файлов.
Структурная схема системы машинного обучения состоит из средства подготовки обучающих выборок 111, средства формирования журналов поведения 112, средства формирования шаблонов поведения 121, средства формирования функций свертки 122, средства создания модели обнаружения 131, средства машинного обучения модели обнаружения 132, средства вычисления степени вредоносности 142, средства управления ресурсами 143.
В одном из вариантов реализации системы упомянутая система машинного обучения модели обнаружения представляет собой клиент-серверную архитектуру, в которой средство подготовки обучающих выборок 111, средство формирования журналов поведения 112, средство формирования шаблонов поведения 121, средство формирования функций свертки 122, средство создания модели обнаружения 131 и средство машинного обучения модели обнаружения 132 работают на стороне сервера, а средство формирования шаблонов поведения 121, средство вычисления степени вредоносности 142 и средство управления ресурсами 143 работают на стороне клиента.
Например, в качестве клиента могут выступать вычислительные устройства пользователя такие, как персональный компьютер, ноутбук, смартфон и т.д., а в качестве сервера могут выступать вычислительные устройства антивирусной компании такие, как распределенные системы серверов, с помощью которых кроме всего прочего предварительно осуществляют сбор и антивирусный анализ файлов, создание антивирусных записей и т.д., при этом система машинного обучения модели обнаружения вредоносных файлов будет использована для обнаружения вредоносных файлов на клиенте, тем самым повышая эффективность антивирусной защиты упомянутого клиента.
Еще в одном примере в качестве как клиента, так и сервера могут выступать вычислительные устройства только антивирусной компании, при этом система машинного обучения модели обнаружения вредоносных файлов будет использована для автоматизированного антивирусного анализа файлов и создания антивирусных записей, тем самым повышая эффективность работы антивирусной компании.
Средство подготовки обучающих выборок 111 предназначено для:
• выборки по меньшей мере одного файла из базы файлов согласно заранее заданным правилам формирования обучающей выборки файлов, впоследствии на основании анализа выбранных файлов средство машинного обучения модели обнаружения 132 будет выполнять обучение модели обнаружения;
• передачи выбранных файлов средству формирования журналов поведения 112.
В одном из вариантов реализации системы в базе файлов хранится по меньшей мере один безопасный файл и один вредоносный файл.
Например, в базе файлов в качестве безопасных файлов могут храниться файлы операционной системы «Windows», а в качестве вредоносных - файлы бэкдоров (англ. backdoor), приложений, осуществляющих несанкционированный доступ к данным и удаленному управлению операционной системой и компьютером в целом. При этом обученная на упомянутых файлах с помощью методов машинного обучения модель обнаружения вредоносных файлов будет способна с высокой точностью (точность тем выше, чем больше файлов было использовано для обучения упомянутой модели обнаружения) обнаруживать вредоносные файлы, обладающие функционалом, схожим с функционалом упомянутых выше бэкдоров.
Еще в одном из вариантов реализации системы дополнительно в базе файлов хранятся по меньшей мере:
• подозрительные файлы (англ. riskware) - файлы, не являющиеся вредоносными, но способные выполнять вредоносные действия;
• неизвестные файлы - файлы, вредоносность которых не была определена и остается неизвестной (т.е. файлы, не являющиеся безопасными, вредоносными, подозрительными и т.д.).
Например, в базе файлов в качестве подозрительных файлов могут выступать файлы приложений удаленного администрирования (к примеру, RAdmin), архивации или шифрования данных (к примеру, WinZip) и т.д.
Еще в одном из вариантов реализации системы в базе файлов хранятся файлы по меньшей мере:
• собранные антивирусными поисковыми роботами (англ. web crawler);
• переданные пользователями.
При этом упомянутые файлы анализируются антивирусными экспертами, в том числе с помощью автоматических средств анализа файлов, для последующего вынесения решение о вредоносности упомянутых файлов.
Например, в базе файлов могут храниться файлы, переданные пользователями со своих вычислительных устройств антивирусным компаниям для проверки на вредоносность, при этом переданные файлы могут быть как безопасными, так и вредоносными, при этом распределение между количеством упомянутых безопасных и вредоносных файлов близко к распределению между количеством всех безопасных и вредоносных файлов, расположенных на вычислительных устройствах упомянутых пользователей (т.е. отношение количества упомянутых безопасных к количеству упомянутых вредоносных файлов отличается от отношения количества всех безопасных к количеству всех вредоносных файлов, расположенных на вычислительных устройствах упомянутых пользователей на величину меньше заданного порогового значения
). В отличии от файлов, переданных пользователями (т.е. файлов, субъективно подозрительных), файлы, собранные антивирусными поисковыми роботами, созданными для поиска подозрительных и вредоносных файлов, чаще оказываются вредоносными.
Еще в одном из вариантов реализации системы в качестве критериев, согласно которым выбираются файлы из базы файлов, выступает по меньшей мере одно из условий:
• распределение между безопасными и вредоносными файлами, выбранными из базы файлов, соответствует распределению между безопасными и вредоносными файлами, расположенными на вычислительном устройстве среднестатистического пользователя;
• распределение между безопасными и вредоносными файлами, выбранными из базы файлов, соответствует распределению между безопасными и вредоносными файлами, собранными с помощью антивирусных поисковых роботов;
• параметры файлов, выбранных из базы файлов, соответствуют параметрам файлов, расположенных на вычислительном устройстве среднестатистического пользователя;
• количество выбранных файлов соответствует заранее заданному значению, а сами файлы выбраны случайным образом.
Например, база файлов содержит 100000 файлов, среди которых 40% безопасных файлов и 60% вредоносных файлов. Из базы файлов выбирают 15000 файлов (15% от общего количества файлов, хранящихся в базе файлов) таким образом, чтобы распределение между выбранными безопасными и вредоносными файлами соответствовало распределению между безопасными и вредоносными файлами, расположенными на вычислительном устройстве среднестатистического пользователя и составляло 95 к 5. С этой целью из базы файлов случайным образом выбирают 14250 безопасных файлов (35,63% от общего числа безопасных файлов) и 750 вредоносных файлов (1,25% от общего числа вредоносных файлов).
Еще в одном примере база файлов содержит 1250000 файлов, среди которых 95% безопасных файлов и 5% вредоносных файлов, т.е. распределение между безопасными и вредоносными файлами, хранящимися в базе файлов, соответствует распределению между безопасными и вредоносными файлами, расположенными на вычислительном устройстве среднестатистического пользователя. Среди упомянутых файлов случайным образом выбирают 5000 файлов, среди которых с большой вероятностью окажется ~4750 безопасных файлов и ~250 вредоносных файлов.
Еще в одном из вариантов реализации системы в качестве параметров файла выступает по меньшей мере:
• вредоносность файла, характеризующая, является ли файл безопасным, вредоносным, потенциально опасным или поведение вычислительной системы при исполнении файла не определено и т.д.;
• количество команд, выполненных вычислительным устройством во время исполнения файла;
• размер файла;
• приложения, использующие файл.
Например, из базы файлов выбирают вредоносные файлы, представляющие собой сценарии на языке «ActionScript», выполняемые приложением «Adobe Flash», и не превышающие размер в 5КБ.
Еще в одном из вариантов реализации системы дополнительно средство подготовки обучающих выборок 111 предназначено для:
• выборки по меньшей мере еще одного файла из базы файлов согласно заранее заданным правилам формирования тестовой выборки файлов, при этом впоследствии на основании анализа выбранных файлов средство машинного обучения модели обнаружения 132 будет выполнять проверку обученной модели обнаружения;
• передачи выбранных файлов средству формирования журналов поведения 112.
Например, база файлов содержит 75000 файлов, среди которых 20% безопасных файлов и 80% вредоносных файлов. Изначально из базы файлов выбирают 12500 файлов, среди которых 30% безопасных файлов и 70% вредоносных файлов, при этом впоследствии на основании анализа выбранных файлов средство машинного обучения модели обнаружения 132 будет выполнять обучение модели обнаружения, затем из оставшихся 62500 файлов выбирают 2500 файлов, среди которых 60% безопасных файлов и 40% вредоносных файлов, при этом впоследствии на основании анализа выбранных файлов средство машинного обучения модели обнаружения 132 будет выполнять проверку обученной модели обнаружения. Данные, сформированные описанным выше образом, называется набором данных для перекрестной проверки (англ. cross-validation set of data).
Средство формирования журналов поведения 112 предназначено для:
• перехвата по меньшей мере одной исполняемой команды по меньшей мере во время:
о исполнения полученного файла,
о эмуляции исполнения полученного файла, при этом эмуляция исполнения файла включает в том числе открытие упомянутого файла (например, открытие сценария интерпретатором);
• определения для каждой перехваченной команды по меньшей мере одного параметра, описывающего упомянутую команду;
• формирования на основании перехваченных команд и определенных параметров журнала поведения полученного файла, при этом журнал поведения представляет собой совокупность перехваченных команд (далее - команда) из файла, где каждой команде соответствует по меньшей мере один определенный параметр, описывающий упомянутую команду (далее - параметр).
Например, перехваченные во время исполнения вредоносного файла, собирающего пароли и передающего их по компьютерной сети, команды и вычисленные параметры упомянутых команд могут иметь вид:
В одном из вариантов реализации системы перехват команд из файла осуществляется с помощью по меньшей мере:
• специализированного драйвера;
• средства отладки (англ. debugger);
• гипервизора (англ. hypervisor).
Например, перехват команд при исполнении файла и определение их параметров осуществляется с помощью драйвера, использующего перехват сплайсингом (англ. splicing) точки входа (англ. entry point) WinAPI-функции.
Еще в одном примере перехват команд при эмуляции работы файла осуществляется непосредственно средствами эмулятора, выполняющего упомянутую эмуляцию, который определяет параметры команды, которую требуется эмулировать.
Еще в одном примере перехват команд при исполнении файла на виртуальной машине осуществляется средствами гипервизора, который определяет параметры команды, которую требуется эмулировать.
Еще в одном из вариантов реализации системы в качестве перехваченных команд из файла выступают по меньшей мере:
• API-функции;
• совокупности машинных инструкций, описывающих заранее заданный набор действий (макрокоманд).
Например, очень часто вредоносные программы осуществляют поиск некоторых файлов и модификацию их атрибутов, для чего выполняется последовательность команд, таких как:
, что может быть в свою очередь описано лишь одной командой
Еще в одном из вариантов реализации системы каждой команде ставится в соответствие свой уникальный идентификатор.
Например, всем WinAPI функциям могут быть поставлены в соответствие числа в диапазоне от 0x0000 до 0x8000. при этом каждой WinAPI-функции соответствует свое уникальное число (к примеру,
Еще в одном из вариантов реализации системы нескольким командам, описывающим схожие действия, ставится в соответствие единый идентификатор.
Например, всем командам, таким как  и т.д., описывающим чтение данных из файла, ставится в соответствие идентификатор  (0x70F0).
Средство формирования шаблонов поведения 121 предназначено для:
• формирования по меньшей мере одного шаблона поведения на основании команд и параметров, выбранных из журнала поведения, при этом журнал поведения представляет собой совокупность исполняемых команд (далее - команда) из файла, где каждой команде соответствует по меньшей мере один параметр, описывающий упомянутую команду (далее - параметр), шаблон поведения представляет собой набор из по меньшей мере одной команды и такого параметра, который описывает все команды из упомянутого набора (далее - элементы шаблона поведения);
• передачи сформированных шаблонов поведения средству формирования функций свертки 122;
i
i
Например, из журнала поведения выбирают следующие команды c (от англ. command) и параметры p (от англ. parameter):
1
1
2
3
{c, p, p, p},
2
1
4
{c, p, p},
3
5
{c, p},
2
5
{c, p},
1
5
6
{c, p, p},
3
2
{с, p}.
На основании выбранных команд и параметров формируют шаблоны поведения, содержащие по одной команде и одному параметру, описывающему упомянутую команду:
1
1
1
2
1
3
1
5
1
6
{c, p}, {c, p}, {c, p}, {c, p}, {c, p},
2
1
2
4
2
5
{c, p}, {c, p}, {c, p},
3
2
3
5
{c, p}, {c, p}.
Затем на основании сформированных шаблонов дополнительно формируют шаблоны поведения, содержащие по одному параметру и все команды, описываемые упомянутым параметром:
1
2
1
{c, c, p},
1
3
2
{c, c, p},
1
2
3
5
{c, с, с, р},
Затем на основании сформированных шаблонов дополнительно формируют шаблоны поведения, содержащие по несколько параметров и все команды, одновременно описываемые упомянутыми параметрами:
1
2
1
5
{c, c, p, p}.
В одном из вариантов реализации системы команды и параметры из журнала поведения выбирают на основании правил, по которым по меньшей мере выбирают:
• последовательно каждую i-ую команду и описывающие ее параметры, при этом шаг i является заранее заданным;
• команды, выполненные через заранее заданный промежуток времени (например, каждую десятую секунду) после предыдущей выбранной команды, и описывающие их параметры;
• команды и описывающие их параметры, выполненные в заранее заданном временном диапазоне с начала исполнения файла;
• команды из заранее заданного списка и описывающие их параметры;
• параметры из заранее заданного списка и описываемые упомянутыми параметрами команды;
• первые или случайные к параметров команд, в случае, когда количество параметров команд больше заранее заданного порогового значения.
Например, из журнала поведения выбирают все команды для работы с жестким диском (такие как, CreateFile, ReadFile, WriteFile, DeleteFile, GetFileAttribute и т.д.) и все параметры, описывающие выбираемые команды.
Еще в одном примере из журнала поведения выбирают каждую тысячную команду и все параметры, описывающие выбираемые команды.
В одном из вариантов реализации системы журналы поведения заранее сформированы из по меньшей мере двух файлов, один из которых - безопасный файл, а другой - вредоносный файл.
Еще в одном из вариантов реализации системы каждому элементу шаблона поведения ставится в соответствие такая характеристика, как тип элемента шаблона поведения. В качестве типа элемента шаблона поведения (команды или параметра) выступает по меньшей мере:
• в случае, если элемент шаблона поведения может быть выражен в виде числа - «численный диапазон»
html
например, для элемента шаблона поведения, представляющего собой параметр port=80 команды connect, тип упомянутого элемента шаблона поведения может быть «численное значение от 0x0000 до 0xFFFF»,
• в случае, если элемент шаблона поведения может быть выражен в виде строки - «строка»
например, для элемента шаблона поведения, представляющего собой команду connect, тип упомянутого элемента шаблона поведения может быть «строка размером менее 32 символов»,
• в случае, если элемент шаблона поведения может быть выражен в виде данных, описываемых заранее заданной структурой данных, тип упомянутого элемента шаблона поведения может быть «структура данных»
например, для элемента шаблона поведения, представляющего собой параметр src=0x336b9a480d490982cdd93e2e49fdeca7 команды find_record, тип упомянутого элемента шаблона поведения может быть «структура данных MD5».
Еще в одном из вариантов реализации системы дополнительно в шаблон поведения в качестве элементов шаблона поведения включаются токены, сформированные на основании лексического анализа упомянутых элементов шаблона поведения с использованием по меньшей мере:
• заранее заданных правил формирования лексем,
• заранее обученной рекурсивной нейронной сети (англ. recurrent neural network).
Например, с помощью лексического анализа параметра
на основании правил формирования лексем:
• если строка содержит путь к файлу, определить диск, на котором расположен файл;
• если строка содержит путь к файлу, определить папки, в которых расположен файл;
• если строка содержит путь к файлу, определить расширение файла;
где в качестве лексем выступают:
• пути к файлу;
• папки, в которых расположены файлы;
• имена файлов;
• расширения файлов; могут быть сформированы токены:
«пути к файлу» →
«папки, в которых расположены файлы» →
«расширения файлов» →
Еще в одном примере с помощью лексического анализа параметров
на основании правила формирования лексемы:
• если параметры представляют собой IP-адреса, определить битовую маску (или ее аналог, выраженный через метасимволы), описывающую упомянутые IP-адреса (т.е. такую битовую маску М, для которой верно равенство М∧IP=const для всех упомянутых IP);
может быть сформирован токен:
Еще в одном примере из всех доступных параметров, в качестве которых выступают числа, формируют токены чисел в заранее заданных диапазонах:
23, 16, 7224, 6125152186, 512, 2662162, 363627632, 737382, 52, 2625, 3732, 812, 3671, 80. 3200
сортируют по диапазонам чисел:
от 0 до 999
→ {16, 23, 52, 80.512,812},
от 1000 до 9999
→ {2625, 3200. 3671,7224},
от 10000
→ {737382,2662162, 363627632, 6125152186}
Еще в одном из вариантов реализации системы токены формируются из элементов шаблона поведения, в качестве которых выступают строки.
Например, шаблон поведения представляет собой путь к файлу, содержащему названия диска, директории, файла, расширения файла и т.д. В этом случае токен может представлять собой название диска и расширение файла.
Средство формирования функций свертки 122 предназначено для:
• формирования такой функции свертки от шаблона поведения, что результат обратной функции свертки от результата такой функции свертки над полученным шаблоном поведения будет иметь степень схожести с полученным шаблоном поведения больше заданного значения, т.е.
-1
r~g(g(r))
где:
j
r - шаблон поведения,
g - функция свертки,
-1
g - обратная функция свертки.
• передачи сформированной функции свертки средству машинного обучения модели обнаружения 132.
В одном из вариантов реализации системы средство формирования функций свертки дополнительно предназначено для:
• вычисления признакового описания (англ. feature vector) шаблона поведения на основании полученного шаблона поведения, при этом признаковое описание шаблона поведения может быть выражено как сумма хэш-сумм от элементов шаблона поведения;
• формирования функции свертки от признакового описания шаблона поведения, при этом функция свертки представляет собой хэш-функцию, такую, что степень схожести вычисленного признакового описания и результата обратной хэш-функции от результата упомянутой хэш-функции от вычисленного признакового описания больше заранее заданного значения.
Еще в одном из вариантов реализации системы функция свертки формируется методом метрического обучения (англ. metric learning), т.е. таким образом, что расстояние между свертками, полученными с помощью упомянутой функции свертки для шаблонов поведения имеющих степень схожести больше заранее заданного порогового значения было меньше заранее заданного порогового значения, а для шаблонов поведения имеющих степень схожести менее заранее заданного порогового значения -больше заранее заданного порогового значения.
Например, признаковое описание шаблона поведения может вычисляться следующим образом:
• предварительно создают пустой битовый вектор, состоящий из 100000 элементов (где для каждого элемента вектора зарезервирован один бит информации);
i
i
• для хранения данных о командах c из шаблона поведения r отводят 1000 элементов, оставшиеся 99000 элементов отводят для параметров c из шаблона поведения r, при этом для строковых параметров отводят 50000 элементов (с 1001 элемента по 51000 элемент), для численных - 25000 элементов (с 51001 элемента по 76000 элемент);
j
i
• каждой команде c из шаблона поведения r ставят в соответствие некоторое число x от 0 до 999, и устанавливают соответствующий бит в созданном векторе
i
v[x]=true;
i
• для каждого параметра p из шаблона поведения r вычисляют хэш-сумму по формуле:
i
i
о для строк: y=1001+crc32(p) (mod 50000)
i
i
о для чисел: y=51001+crc32(p) (mod 25000)
i
i
о для остального: y=76001+crc32(p) (mod 24000)
, и в зависимости от вычисленной хэш-суммы устанавливают
соответствующий бит в созданном векторе
i
v[y] = true;
Описанный битовый вектор с установленными элементами представляет собой признаковое описание шаблона поведения r.
Еще в одном из вариантов реализации системы признаковое описание шаблона поведения вычисляется согласно формуле:
где:
b - основание позиционной системы счисления (например, для бинарного вектора b=2, для вектора, представляющего собой строку, т.е. совокупность символов, b=8),
i
r - i-ый элемент шаблона поведения,
i
h - хэш-функция, при этом 0≤h(r)<b.
Например, признаковое описание шаблона поведения может вычисляться следующим образом:
• предварительно создают еще один (отличный от предыдущего примера) пустой битовый вектор, состоящий из 1000 элементов (где для каждого элемента вектора зарезервирован один бит информации);
• для каждого элемента шаблона из шаблона поведения r вычисляют хэш-сумма по формуле:
i
crc32(ri) (mod 1000)
x=2
, и в зависимости от вычисленной хэш-суммы устанавливают соответствующий бит в созданном векторе
i
v[x]=true;
Еще в одном из вариантов реализации системы признаковое описание шаблона поведения представляет собой фильтр Блума.
Например, признаковое описание шаблона поведения может вычисляться следующим образом:
• предварительно создают еще один (отличный от предыдущих примеров) пустой вектор, состоящий из 100000 элементов;
i
j
• для каждого элемента шаблона r из шаблона поведения r вычисляют по меньшей мере две хэш-суммы с помощью набора хэш-функций {h} по формуле:
ij
j
i
x=h(r)
где:
j
j
i
h(r)=crc32(r),
j
j
h(0)=const
, и в зависимости от вычисленных хэш-сумм устанавливают соответствующие элементы в созданном векторе
ij
v[x]=true.
Еще в одном из вариантов реализации системы размер результата сформированной функции свертки от признакового описания шаблона поведения меньше размера упомянутого признакового описания шаблона поведения.
Например, признаковое описание представляет собой битовый вектор, содержащий 100000 элементов, и тем самым имеет размер 12500 байт, а результат функции свертки от упомянутого признакового описания представляет собой набор из 8 MD5 хэш-сумм и тем самым имеет размер 256 байт, т.е. ~2% от размера признакового описания.
Еще в одном из вариантов реализации системы степень схожести признакового описания и результата обратной хэш-функции от результата упомянутой хэш-функции от вычисленного признакового описания представляет собой численное значение в диапазоне от 0 до 1 и вычисляется согласно формуле:
где:
i
i
i
i
h(r)∧g обозначает совпадение h(r) с g
и
i
{h(r)} - совокупность результатов хэш-функций от элементов шаблона поведения,
i
{g} - совокупность результатов обратной хэш-функции от результата хэш-функции от элементов шаблона поведения,
i
r - i-ый элемент шаблона поведения,
h - хэш-функция,
w - степень схожести.
Например, вычисленное признаковое описание представляет собой битовый вектор
, результат функции свертки от упомянутого признакового описания
, а результат обратной функции свертки от полученного выше результата
(где жирным шрифтом отмечены элементы, отличные от признакового описания). Таким образом, схожесть признакового описания и результата обратной функции свертки составляет 0.92.
Еще в одном из вариантов реализации системы упомянутая хэш-функция, принимающая в качестве параметра элемент шаблона поведения, зависит от типа элемента шаблона поведения:
i
ri
i
h(r)=h(r).
Например, для вычисления хэш-суммы от параметра из шаблона поведения, представляющего собой строку, содержащую путь к файлу, используется хэш-функция CRC32, любую другую строку - алгоритм Хаффмана, набор данных - хэш-функция MD5.
Еще в одном из вариантов реализации системы формирование функции свертки от признакового описания шаблона поведения выполняется через автокодировщик (англ. autoencoder), при этом в качестве входных данных выступают элементы упомянутого признакового описания шаблона поведения, а в качестве выходных данных - данных, имеющие коэффициент схожести с входными данными выше заранее заданного порогового значения.
Средство создания модели обнаружения 131 предназначено для:
• создания модели обнаружения вредоносных файлов, которое включает в себя по меньшей мере:
о выбор метода машинного обучения модели обнаружения;
о инициализации параметров модели обучения, при этом параметры модели обучения, проинициализированные до начала машинного обучения модели обнаружения, называются гиперпарамерами (англ. hyperparameter); в зависимости от параметров файлов, выбранных средством подготовки обучающих выборок 111;
• передачи созданной модели обучения средству машинного обучения модели обнаружения 132.
Например, при выборе метода машинного обучения модели обнаружения вначале выносится решение следует ли использовать в качестве модели обнаружения искусственную нейронную сеть или случайные леса (англ. random forest), затем, в случае выбора случайного леса, выбирается разделяющий критерий для узлов случайного леса; или в случае выбора искусственной нейронной сети, выбирается метод численной оптимизации параметров искусственной нейронной сети. При этом решение о выборе того или иного метода машинного обучения принимается на основании эффективности упомянутого метода при обнаружении вредоносных файлов (т.е. количества ошибок первого и второго рода, возникающих при обнаружении вредоносных файлов) с использованием входных данных (шаблонов поведения) заранее заданного вида (т.е. структуры данных, количества элементов шаблонов поведения, производительности вычислительного устройства на котором выполняется поиск вредоносных файлов, доступных ресурсов вычислительного устройства и т.д.).
Еще в одном примере метод машинного обучения модели обнаружения выбирают на основании по меньшей мере:
• перекрестной проверки, скользящего контроля, кросс-валидации (англ. cross-validation, CV);
• математического обоснования критериев AIC, BIC и т.д.;
• А/В тестирования (англ. А/В testing, split testing);
• стекинга.
Еще в одном примере в случае невысокой производительности вычислительного устройства выбирают случайные леса, в противном случае -искусственную нейронную сеть.
В одном из вариантов реализации системы выполняется машинное обучение заранее созданной необученной модели обнаружения (т.е. модели обнаружения, у которой параметры упомянутой модели не позволяют получить на основании анализа входных данных выходных данных с точностью выше заранее заданного порогового значения).
Еще в одном из вариантов реализации системы в качестве метода машинного обучения модели обнаружения выступает по меньшей мере метод:
• градиентный бустинг на деревьях принятия решений (англ. decision-tree-based gradient boosting);
• деревья принятия решений (англ. decision trees);
• ближайших соседей kNN (англ. K-nearest neighbor method);
• опорных векторов (англ. support vector machine, SVM).
Еще в одном из вариантов реализации системы дополнительно средство создания модели обнаружения 131 предназначено для создания модели обнаружения по запросу от средства машинного обучения 132, при этом определенные гиперпараметры и методы машинного обучения выбираются отличными от гиперпараметров и методов машинного обучения, выбранных для предыдущей модели обнаружения.
Средство машинного обучения модели обнаружения 132 предназначено для обучения модели обнаружения, в которой параметры модели обнаружения вычисляются с использованием полученной функции свертки над полученными шаблонами поведения, где модель обнаружения представляет собой совокупность правил вычисления степени вредоносности файла на основании по меньшей мере одного шаблона поведения с использованием вычисленных параметров упомянутой модели обнаружения.
Например, модель обнаружения обучают на известном наборе файлов, выбранных средством подготовки обучающих выборок 111, при этом упомянутый набор файлов содержит 60% безопасных файлов и 40% вредоносных файлов.
В одном из вариантов реализации системы степень вредоносности файла представляет собой численное значение от 0 до 1, при этом 0 означает, что упомянутый файл безопасный, 1 - вредоносный.
Еще в одном из вариантов реализации системы выбирается метод обучения модели обнаружения, обеспечивающий монотонность изменения степени вредоносности файла в зависимости от изменения количества шаблонов поведения, сформированных на основании анализа журнала поведения.
Например, монотонное изменение степени вредоносности файла приводит к тому, что при анализе каждого последующего шаблона поведения, вычисленный степень вредоносности оказывается не меньше чем, вычисленный ранее степень вредоносности (к примеру, после анализа 50ого шаблона поведения вычисленный степень вредоносности равен 0.2, после анализа 50ого шаблона поведения - 0.4, а после анализа 50ого шаблона поведения - 0.7).
Еще в одном из вариантов реализации системы дополнительно средство машинного обучения модели обнаружения 132 предназначено для:
• выполнения проверки обученной модели обнаружения на полученных журналах поведения, сформированных на основании анализа файлов из тестовой выборки файлов, с целью определить корректность определения вредоносности файлов из тестовой выборки файлов;
• в случае отрицательного результата проверки передачи запроса по меньшей мере:
о средству подготовки обучающих выборок 111 для подготовки выборки файлов, отличной от текущей, на которой производилось обучение модели обнаружения;
о средству создания модели обнаружения 131 для создания новой модели обнаружения, отличной от текущей.
При этом проверка обученной модели обнаружения заключается в следующем. Упомянутая модель обнаружения была обучена на основании набора выбранных средством подготовки обучающих выборок 111 файлов для которых было известно являются ли они безопасными или вредоносными. Для того, чтобы проверить, что модель обнаружения вредоносных файлов была обучена корректно, т.е. упомянутая модель обнаружения сможет обнаруживать вредоносные файлы и пропускать безопасные файлы выполняется проверка упомянутой модели. С этой целью с помощью упомянутой модели обнаружения определяют являются ли файлы из другого набора выбранных средством подготовки обучающих выборок 111 файлов вредоносными, при этом являются ли упомянутые файлы вредоносными известно заранее. Таким образом, определяют сколько вредоносных файлов было «пропущено» и сколько безопасных файлов было обнаружено. Если количество пропущенных вредоносных и обнаруженных безопасных файлов больше заранее заданного порогового значения, то упомянутая модель обнаружения считается некорректно обученной и требуется выполнить ее повторное машинное обучение (например, на другой обучающей выборке файлов, с использованием отличных от предыдущих значений параметров модели обнаружения и т.д.).
Например, при выполнении проверки обученной модели проверяется количество ошибок первого и второго рода при обнаружении вредоносных файлов из тестовой выборки файлов. Если количество упомянутых ошибок превышает заранее заданное пороговое значение, то выбирается новая обучающая и тестовая выборка файлов и создается новая модель обнаружения.
Еще в одном примере обучающая выборка файлов содержала 10000 файлов из которых 8500 было вредоносными, а 1500 - безопасными. После того как модель обнаружения была обучена, ее проверили на тестовой выборке файлов, содержащей 1200 файлов, из которых 350 было вредоносными, а 850 - безопасными. По результатам выполненной проверки 15 из 350 вредоносных файлов обнаружить не удалось (4%), в тоже время 102 из 850 безопасных файлов (12%) ошибочно было признано вредоносными. В случае, когда количество не обнаруженных вредоносных файлов превышает 5% или случайно обнаруженных безопасных файлов превышает 0.1% обученная модель обнаружения признается некорректно обученной.
В одном из вариантов реализации системы дополнительно журнал поведения системы формируется на основании ранее сформированного журнала поведения системы и команд, перехваченных после формирования упомянутого журнала поведения системы.
Например, после начала исполнения файла, для которого требуется вынести вердикт о вредоносности или безопасности упомянутого файла, перехваченные выполняемые команды и описывающие их параметры записываются в журнал поведения. На основании анализа упомянутых команд и параметров вычисляется степень вредоносности упомянутого файла. Если по результатам анализа решения о признании файла вредоносным или безопасным вынесено не было, перехват команд может быть продолжен. Перехваченные команды и описывающие их параметры дописываются в старый журнал поведения или в новый журнал поведения. В первом случае степень вредоносности вычисляется на основании анализа всех команда и параметров, записанных в журнале поведения, т.е. и тех, которые ранее использовались для вычисления степени вредоносности.
Средство вычисления степени вредоносности 142 предназначено для:
• вычисления степени вредоносности на основании полученного от средства формирования журнала поведения 142 журнала поведения и от средства машинного обучения модели обнаружения 132 модели обнаружения, при этом степень вредоносности файла представляет собой количественную характеристику (например, лежащую в диапазоне от 0 - файл обладает исключительно безопасным поведением до 1 - упомянутый файл обладает заранее заданным вредоносным поведением), описывающую вредоносное поведение исполняемого файла;
• передачи вычисленного степени вредоносности средству управления ресурсами 143.
Средство управления ресурсами 143 предназначено для на основании анализа полученного степени вредоносности выделения вычислительных ресурсов компьютерной системы для использования их при обеспечении безопасности компьютерной системы.
В одном из вариантов реализации системы в качестве вычислительных ресурсов компьютерной системы выступают по меньшей мере:
• объем свободной оперативной памяти;
• объем свободного места на жестких дисках;
• свободное процессорное время (кванты процессорного времени), которое может быть потрачено на антивирусную проверку (например, с большей глубиной эмуляции).
Еще в одном из вариантов реализации системы анализ степени вредоносности заключается в определении динамики изменения значения степени вредоносности после каждого из предыдущих вычислений степени вредоносности и в случае по меньшей мере:
• увеличение значения степени вредоносности - выделения дополнительных ресурсов компьютерной системы;
• уменьшение значения степени вредоносности - освобождение ранее выделенных ресурсов компьютерной системы.
Фиг. 2 представляет структурную схему способа машинного обучения модели обнаружения вредоносных файлов.
Структурная схема способа машинного обучения модели обнаружения вредоносных файлов содержит этап 211, на котором подготавливают обучающие выборки файлов, этап 212, на котором формируют журналы поведения, этап 221, на котором формируют шаблоны поведения, этап 222, на котором формируют функции свертки, этапа 231, на котором создают модель обнаружения, этапа 232, на котором обучаю модель обнаружения, этапа 241, на котором отслеживают поведение компьютерной системы, этапа 242, на котором вычисляют степень вредоносности, этап 243, на котором управляют ресурсами компьютерной системы.
На этапе 211 с помощью средства подготовки обучающих выборок 111 выбирают по меньшей мере один файл из базы файлов согласно заранее заданным критериям, при этом на основании выбранных файлов на этапе 232 будут выполнять обучение модели обнаружения.
На этапе 212 с помощью средства формирования журналов поведения 112:
• перехватывают по меньшей мере одну команду по меньшей мере во время:
о исполнения выбранного на этапе 211 файла,
о эмуляции работы выбранного на этапе 211 файла;
• определяют для каждой перехваченной команды по меньшей мере один параметр, описывающий упомянутую команду;
• формируют на основании перехваченных команд и определенных параметров журнал поведения полученного файла, при этом журнал поведения представляет собой совокупность перехваченных команд (далее - команда) из файла, где каждой команде соответствует по меньшей мере один определенный параметр, описывающий упомянутую команду (далее - параметр).
На этапе 221 с помощью средства формирования шаблонов поведения 121 формируют по меньшей мере один шаблон поведения на основании команд и параметров, выбранных из журнала поведения, сформированного на этапе 212, при этом журнал поведения представляет собой совокупность исполняемых команд (далее - команда) из файла, где каждой команде соответствует по меньшей мере один параметр, описывающий упомянутую команду (далее - параметр), шаблон поведения представляет собой набор из по меньшей мере одной команды и такого параметра, который описывает все команды из упомянутого набора.
На этапе 222 с помощью средства формирования функций свертки 122 формируют такую функцию свертки от шаблона поведения, сформированного на этапе 221, что результат обратной функции свертки от результата такой функции свертки над упомянутым шаблоном поведения будет иметь степень схожести с упомянутым шаблоном поведения больше заданного значения.
На этапе 231 с помощью средства создания модели обнаружения 131 создают модель обнаружения для чего по меньшей мере:
• выбирают метод машинного обучения модели обнаружения;
• инициализируют параметры модели обучения, при этом параметры модели обучения, проинициализированные до начала машинного обучения модели обнаружения, называются гиперпарамерами (англ. hyperparameter), в зависимости от параметров файлов, выбранных на этапе 211.
На этапе 232 с помощью средства машинного обучения модели обнаружения 132 обучают модель обнаружения, созданную на этапе 231, в которой параметры упомянутой модели обнаружения вычисляются с использованием функции свертки, сформированной на этапе 222, над шаблонами поведения, сформированными на этапе 221, где модель обнаружения где модель обнаружения представляет собой совокупность правил вычисления степени вредоносности файла на основании по меньшей мере одного шаблона поведения с использованием вычисленных параметров упомянутой модели обнаружения.
На этапе 241 с помощью средства отслеживания поведения 141:
• перехватывают по меньшей мере одну команду, исполняемую файлами, работающими в компьютерной системе;
• формируют на основании перехваченных команд журнал поведения системы.
На этапе 242 с помощью средства вычисления степени вредоносности 142 вычисляют степень вредоносности на основании журнала поведения системы, сформированного на этапе 241, и модели обнаружения, обученной на этапе 232.
На этапе 243 с помощью средства управления ресурсами 143 на основании анализа степени вредоносности, вычисленного на этапе 242, выделяют вычислительные ресурсы для использования их при обеспечении безопасности компьютерной системы.
Фиг. 3 представляет примеры динамики изменения степени вредоносности от количества шаблонов поведения.
Примеры динамики изменения степени вредоносности от количества шаблонов поведения содержит график динамики произвольного изменения степени вредоносности от количества шаблонов поведения, сформированных во время исполнения вредоносного файла 311, график динамики монотонного изменения степени вредоносности от количества шаблонов поведения, сформированных во время исполнения вредоносного файла 312, график динамики произвольного изменения степени вредоносности от количества шаблонов поведения, сформированных во время исполнения безопасного файла 321, график динамики монотонного изменения степени вредоносности от количества шаблонов поведения, сформированных во время исполнения безопасного файла 322.
В одном из вариантов реализации системы степень вредоносности исполняемого файла принимает значение в диапазоне от 0 (упомянутый файл обладает исключительно безопасным поведением) до 1 (упомянутый файл обладает заранее заданным вредоносным поведением).
На графике 311 изображена динамика произвольного изменения степени вредоносности от количества шаблонов поведения, сформированных во время исполнения вредоносного файла.
Изначально, при исполнении упомянутого файла количество сформированных шаблонов поведения невелико, вдобавок вредоносная активность исполняемого файла может отсутствовать или быть минимальной (например, выполняется инициализация данных, свойственная многим, в том числе и безопасным файлам), поэтому вычисленный степень вредоносности незначительно отличается от 0 и не превышает заранее заданного порогового значения (далее - критерия безопасности) при превышении которого поведение исполняемого файла перестанет считать безопасным (на графике упомянутое пороговое значение обозначается пунктирной линией).
Однако со временем вредоносная активность исполняемого файла возрастает и степень вредоносности начинает стремиться к 1, превышая критерий безопасности, при этом степень вредоносности может не достигать заранее заданного порогового значения (далее - критерий вредоносности) при превышении которого поведение исполняемого файла будет считаться вредоносным (на графике упомянутое пороговое значение обозначается штриховой линией).
После периода роста вредоносная активность может прекращаться и степень вредоносности опять будет стремиться к 0 (момент А). В определенный момент степень вредоносности становится больше критерия вредоносности (момент В) и поведение исполняемого файла признается вредоносным и как следствие сам файл признается вредоносным.
При этом момент признания файла вредоносным может произойти значительно позже начала роста вредоносной активности, поскольку описанный подход хорошо реагирует на резкий рост степени вредоносности, что происходит чаще всего при длительной, явно выраженной вредоносной активности исполняемого файла.
В случае, когда вредоносная активность возникает эпизодически (левая сторона графика 311), вычисленный степень вредоносности может не достигать значения, после которого выносится решение о вредоносности поведения исполняемого файла и, следовательно, вредоносности самого исполняемого файла.
В случае, когда степень вредоносности вычисляется не на основании каждого сформированного шаблона поведения (например, из-за того, что производительность вычислительного устройства является невысокой), возможна ситуация, когда степень вредоносности будет вычислен в момент А (когда начинается вредоносная активность) и момент С (когда завершается вредоносная активность), и не будет вычислен в момент В (когда происходит вредоносная активность), из-за чего вычисленные степени вредоносности не превысят критерия вредоносности, активность исполняемого файла не будет признана вредоносной и, следовательно, вредоносный файл не будет обнаружен.
На графики 312 изображена динамика монотонного изменения степени вредоносности от количества шаблонов поведения, сформированных во время исполнения вредоносного файла.
Изначально, при исполнении упомянутого файла количество сформированных шаблонов поведения невелико, вдобавок вредоносная активность исполняемого файла может отсутствовать или быть минимальной (например, выполняется инициализация данных, свойственная многим, в том числе и безопасным файлам), поэтому вычисленный степень вредоносности незначительно отличается от 0 и не превышает заранее заданного порогового значения (далее - критерия безопасности) при превышении которого поведение исполняемого файла перестанет считать безопасным (на графике упомянутое пороговое значение обозначается пунктирной линией).
Однако со временем вредоносная активность исполняемого файла возрастает и степень вредоносности начинает стремиться к 1, превышая критерий безопасности, при этом степень вредоносности может не достигать заранее заданного порогового значения (далее - критерий вредоносности) при превышении которого поведение исполняемого файла будет считаться вредоносным (на графике упомянутое пороговое значение обозначается штриховой линией).
После периода роста (моменты А-В) вредоносная активность может прекращаться (моменты В-А), но степень вредоносности уменьшаться уже не будет, а при любой вредоносной активности исполняемого файла будет только продолжать расти. В определенный момент степень вредоносности становится больше критерия вредоносности (момент D) и поведение исполняемого файла признается вредоносным и как следствие сам файл признается вредоносным.
При этом момент признания файла вредоносным может произойти сразу после выявления вредоносной активности, поскольку описанный подход хорошо реагирует на плавный рост степени вредоносности, что происходит как при длительной, явно выраженной вредоносной активности исполняемого файла, так и при частых эпизодической слабовыраженной вредоносной активности.
В случае, когда вредоносная активность возникает эпизодически (левая сторона графика 312), вычисленный степень вредоносности со временем может достигать значения, после которого выносится решение о вредоносности поведения исполняемого файла и вредоносности самого исполняемого файла.
В случае, когда степень вредоносности вычисляется не на основании каждого сформированного шаблона поведения (например, из-за того, что производительность вычислительного устройства является невысокой), возможна ситуация, когда степень вредоносности будет вычислен в момент А (когда начинается вредоносная активность) и момент С (когда завершается вредоносная активность), и не будет вычислен в момент В (когда происходит вредоносная активность), тем, не менее, поскольку степень вредоносности меняется монотонно вычисленные степени вредоносности только увеличивают свои значения и в момент С степень вредоносности превысит критерий вредоносности, активность исполняемого файла будет признана вредоносной и, следовательно, вредоносный файл будет обнаружен.
На графике 321 изображена динамика произвольного изменения степени вредоносности от количества шаблонов поведения, сформированных во время исполнения безопасного файла.
Изначально, при исполнении упомянутого файла количество сформированных шаблонов поведения невелико, вдобавок вредоносная активность как таковая у исполняемого файла отсутствует, но могут выполняться «подозрительные» команды, выполняемые также и при исполнении вредоносных файлов (например, удаление файлов, передача данных по компьютерной сети и т.д.), поэтому вычисленный степень вредоносности отличается от 0 и не превышает заранее заданного порогового значения (далее - критерия безопасности) при превышении которого поведение исполняемого файла перестанет считать безопасным (на графике упомянутое пороговое значение обозначается пунктирной линией).
Однако со временем вредоносная активность исполняемого файла из-за выполнения большого количества «подозрительных» команд возрастает и степень вредоносности начинает стремиться к 1, при этом степень вредоносности может не достигать заранее заданного порогового значения (далее - критерий вредоносности) при превышении которого поведение исполняемого файла будет считаться вредоносным (на графике упомянутое пороговое значение обозначается штриховой линией), но может превышать критерий безопасности, таким образом файл может перестать считаться безопасным и стать «подозрительным».
После периода роста вредоносная активность может прекращаться и степень вредоносности опять будет стремиться к 0 (момент С).
В случае, когда степень вредоносности вычисляется не на основании каждого сформированного шаблона поведения (например, из-за того, что производительность вычислительного устройства является невысокой), возможна ситуация, когда степень вредоносности будет вычислен в момент В (когда активность наиболее схожа с вредоносной, т.е. становится «подозрительной») и не будет вычислен в момент А (когда «подозрительная» активность увеличивается) и в момент С (когда «подозрительная активность» уменьшается), из-за чего вычисленный степень вредоносности превысит критерий безопасности, активность исполняемого файла будет признана «подозрительной» (не будет признана безопасной) и, следовательно, безопасный файл не будет признан безопасным.
На графике 322 изображена динамика монотонного изменения степени вредоносности от количества шаблонов поведения, сформированных во время исполнения безопасного файла.
Изначально, при исполнении упомянутого файла количество сформированных шаблонов поведения невелико, вдобавок вредоносная активность как таковая у исполняемого файла отсутствует, но могут выполняться «подозрительные» команды, выполняемые также и при исполнении вредоносных файлов (например, удаление файлов, передача данных по компьютерной сети и т.д.), поэтому вычисленный степень вредоносности отличается от 0 и не превышает заранее заданного порогового значения (далее - критерия безопасности) при превышении которого поведение исполняемого файла перестанет считать безопасным (на графике упомянутое пороговое значение обозначается пунктирной линией).
Однако со временем вредоносная активность исполняемого файла из-за выполнения большого количества «подозрительных» команд возрастает и степень вредоносности начинает стремиться к 1, при этом степень вредоносности может не достигать заранее заданного порогового значения (далее - критерий вредоносности) при превышении которого поведение исполняемого файла будет считаться вредоносным (на графике упомянутое пороговое значение обозначается штриховой линией), а также может не превышать критерий безопасности, таким образом файл будет продолжать считаться безопасным.
После периода роста (моменты А-В) вредоносная активность может прекращаться (моменты В-А), но степень вредоносности уменьшаться уже не будет, а при любой вредоносной активности исполняемого файла будет только продолжать расти, но при этом не превышать коэффициент безопасности, таким образом активность исполняемого файла будет считаться безопасной и, следовательно, упомянутый файл будет считаться безопасным.
В случае, когда степень вредоносности вычисляется не на основании каждого сформированного шаблона поведения (например, из-за того, что производительность вычислительного устройства является невысокой), возможна ситуация, когда степень вредоносности будет вычислен в момент В (когда активность наиболее схожа с вредоносной, т.е. становится «подозрительной») и не будет вычислен в момент А (когда «подозрительная» активность увеличивается) и в момент С (когда «подозрительная активность» уменьшается), тем, не менее, поскольку степень вредоносности меняется монотонно вычисленные степени вредоносности только увеличивают свои значения, в моменты А, В, С степени вредоносности не превысят критерия безопасности, активность исполняемого файла будет признана безопасной и, следовательно, безопасный файл будет признан безопасным.
При этом момент признания файла «подозрительным» может не произойти после выявления «подозрительной» активности, поскольку описанный подход обеспечивает на плавный рост степени вредоносности, что позволяет избежать резких пиков при росте степени вредоносности.
Фиг. 4 представляет пример схемы связей между элементами шаблонов поведения.
Пример схемы связей между элементами шаблонов поведения содержит команды 411 (пустые кружки), параметры 412 (штрихованные кружки), пример шаблона поведения с одним параметром 421, пример шаблона поведения с одной командой 422.
Во время исполнения файла были перехвачены команды 411 и определены описывающие им параметры 412:
{c1, p1, p2}
{c2, p1, p2}
{c3, p1, p2, р3}
{c1, p2, р3, р5}
{с4, р3}
{с4, р3, р5, р6, р7}
{с5, р4, р5, р6}
{с2, р6, р7}
На основании упомянутых команд 411 и параметров 412 формируют шаблоны поведения (421, 422) и определяют связи между элементами шаблонов поведения.
На первом этапе формируют шаблоны, содержащие одну команду 411 и один параметр 412, описывающий упомянутую команду:
{c1, p1}
{c2, p1}
{c1, p2}
{с2, р2}
{c1, p3}
{с2, р6}
{c1, p5}
{с2, р7}
{c3, p1}
{с4, р6}
{с3, р2}
{с4, р7}
{с3, р3}
{с5, р4}
{с4, р3}
{с5, р5}
{с4, р5}
{с5, р6}
В приведенном примере на основании 8 перехваченных команд (с описывающими их параметрами) было сформировано 19 шаблонов поведения.
На втором этапе формируют шаблоны, содержащие один параметр 412 и все команды 411, описываемые упомянутым параметром 412:
{c1, с2, с3, p1}
{c1, с3, с4, р3}
{c1, c2, c3, p2}
{с5, р4}
{c1, с4, с5, р5}
{с2, с4, р7}
{с2, с4, с5, р6}
В приведенном примере на основании 8 перехваченных команд (с описывающими их параметрами) было дополнительно сформировано 7 шаблонов поведения.
На третьем этапе формируют шаблоны, содержащие несколько параметров 412 и все команды 411, описываемые упомянутыми шаблонами 412:
{c1, c2, c3, p1, p2}
{с2, с4, р6, р7}
{с4, с5, р5, р6}
В приведенном примере на основании 8 перехваченных команд (с описывающими их параметрами) было дополнительно сформировано 3 шаблона поведения.
Фиг. 5 представляет структурную схему системы классификации объектов.
Структурная схема системы классификации объектов состоит из анализируемого объекта 501, средства выборки блока данных 510. модели анализа 511, средства статического анализа объекта 520. средства вычисления степени вредоносности 530. модели обнаружения вредоносных объектов 531, средства классификации 540. средства переобучения модели анализа 550.
В качестве анализируемого объекта 501 выступает по меньшей мере:
• исполняемый файл;
• сценарий, а также файл, содержащий упомянутый сценарий;
• сетевой пакет.
Например, в качестве анализируемого объекта 501 может выступать исполнимый файл «word.exe», представляющий собой компонент программного обеспечения «Microsoft Office».
Еще в одном примере в качестве анализируемого объекта 501 может выступать файл «manual.pdf», представляющий собой электронный документ PDF.
Еще в одном примере в качестве анализируемого объекта 501 могут выступать данные, передаваемые по компьютерной сети Интернет (к примеру, от серверного приложения «OnlineBankingServer», представляющего собой сервис, работающий на стороне банка, и обрабатывающего клиентские запросы, клиентскому приложению «Online Banking Арр», работающему на вычислительном устройстве пользователя), и структурированные в виде сетевых пакетов.
Средство выборки блока данных 510 предназначено для:
• выборки по меньшей мере одного блока данных, содержащегося в анализируемом объекте 501, с помощью модели анализа 511;
• передачи выбранных блоков данных средству статического анализа 520.
В одном из вариантов реализации системы поиск блока данных (как один из элементов выборки данных) в анализируемом объекте 501, на основании результатов которого осуществляется выборка блока данных из анализируемого объекта 501, осуществляется на основании:
• параметров анализируемого объекта 501;
• признаков ранее найденных блоков данных.
Например, упомянутые параметры анализируемого объекта 501 или признаки ранее найденных блоков данных могут использоваться по меньшей мере как:
• ключи для поиска новых блоков данных;
• первичные данные для вычисления сверток, по которым осуществляется поиск новых блоков данных;
• формирования правил поиска новых блоков данных.
Например, модель анализа 511 представляет собой совокупность правил поиска и выборки блоков данных на основании данных, описанных выше.
Еще в одном из вариантов реализации системы выборка блоков данных представляет собой по меньшей мере:
• вычисление и передачу средству статического анализа 520 параметров блоков данных, при этом в качестве параметров выбираемого блока данных выступают по меньшей мере:
о размер выбираемого блока данных,
о позиция выбираемого блока данных в анализируемом объекте 501;
• копирование и передачу средству статического анализа 520 непосредственно данных, содержащихся в анализируемом объекте 501 на основании вычисленных параметров выбираемого блока (т.е. на основании параметров выбираемого блока, например, размеров и расположения, определяется каким именно способом выбираемый блок может быть скопирован из анализируемого объекта 501, каким способом он должен быть трансформирован, например, при копировании зашифрованных данных, медиа-данных и т.п. и т.д.).
Например, из исполняемого файла «explorer.exe» выбирается блок данных, описывающий заголовок упомянутого файла. С этой целью предварительно определяется тип файла «explorer.exe» (type=WindowsPE), на основании определенного типа файла вычисляется размер заголовка (size = 4096 байт) и позиция заголовка в упомянутом файле (pos = 0x120). После чего по предоставленному средством статического анализа 520 адресу копируется 4096 байт с 0x120 позиции анализируемого файла «explorer.exe». Вообще информация о структуре файлов разных типов известна заранее и может храниться в отдельной БД и использоваться по мере надобности, таким образов исполняемый файл (РЕ-файл) будет обрабатываться с помощью одного алгоритма на основании информации о структуре заголовка исполняемых файлов, а PDF-файл будет обрабатываться с помощью другого алгоритма на основании информации о структуре заголовка PDF-файла и т.д.
Еще в одном примере копирование тех же данных, что и в примере выше, выполняет само средство статического анализа 520 на основании параметров, вычисленных и переданных средством выборки блока данных 510.
Еще в одном из вариантов реализации системы в качестве параметров анализируемого объекта 501 выступают по меньшей мере:
• тип анализируемого объекта (например, исполняемый файл, сценарий, сетевой пакет);
• данные, записанные в анализируемом объекте 501 и формирующие структуру упомянутого объекта 501, т.е. совокупность связанных друг с другом данных.
Например, блоки данных из анализируемого объекта 501, представляющего собой исполняемый файл «explorer.exe», выбирают последовательно согласно структуре исполняемого файла, т.е. заголовок, секция кода, секция данных и т.д.
Еще в одном примере в качестве параметров электронного документа Microsoft Word выступают данные, записанные в этом документ и характеризующие используемые в документе шрифты (семейство, кегль, тип и т.д.).
Еще в одном из вариантов реализации системы в качестве признаков ранее найденного блока данных выступают по меньшей мере:
• параметры блока данных, использованные для выборки упомянутого блока данных из анализируемого объекта 501;
• тип данных, содержащихся в блоке данных (например, текст, числовые значения, медиа-данные, лексемы, сценарий, исполняемый код и т.д.);
• логическая или функциональная связь (например, в виде бинарного отношения) между упомянутым блоком данных и выбранным ранее блоком данных, при этом логическая связь может возникать, когда два блока данных (или двух типов блоков данных, например изображения и аудио) используются совместно, при том, что друг с другом они могут быть не связаны (например, изображения и текст), функциональная связь может возникать, когда данные из одного блока используются для анализа данных из второго блока (например, данные из РЕ-заголовка исполнимого файла и данные из секции ресурсов, информация о которой содержится в РЕ-заголовке);
• коэффициент вредоносности анализируемого объекта 501, вычисленный на основании упомянутого блока данных (данные из блока данных используются в качестве параметров формулы для вычисления коэффициента вредоносности, например, количество каждой команде из секции кода исполняемого файла соответствует свой вес, т.е. вес выступает в качестве параметра, суммарный вес всех команд из секции кода формирует коэффициент вредоносности).
Модель анализа 511 представляет собой совокупность правил поиска блоков данных, в соответствии с которыми поиск осуществляется таким образом, чтобы каждый найденный блок данных увеличивал вероятность классифицировать анализируемый объект 501 как вредоносный.
В одном из вариантов реализации системы правило поиска блока данных представляет собой правило вычисления параметров искомого блока данных.
Например, с помощью правила поиска блоков данных вычисляют позицию и размер блока данных в анализируемом объекте 501, таким образом, чтобы упомянутый блок данных начинался на той позиции в анализируемом файле 501, перед которой заканчивался выбранный ранее блок данных, а размер упомянутого блока данных не был менее размера выбранного ранее блока данных.
Еще одном из вариантов реализации системы правила поиска блоков данных зависят по меньшей мере от признаков ранее найденных блоков данных, при этом упомянутая зависимость может заключаться по меньшей мере в:
• выборе алгоритма (правила) поиска блоков данных;
• вычисления параметров с использованием ранее найденных блоков данных, которые будут использоваться в правилах поиска блоков данных;
• предсказание содержания нового блока данных на основании найденных ранее блоков данных, поиск предсказанного блока данных и определение степени схожести найденных блоков данных с предсказанным.
Например, в исполняемом файле «explorer.exe» 501 каждый выбранный блок данных должен содержать данные того же типа, что и выбранный ранее блок данных (т.е. медиа-данные → медиа-данные, текст → текст, исполняемый код → исполняемый код и т.д.), а в случае, если такие блоки отсутствуют, то данные, связанные с выбранными ранее блоков данных (т.е. медиа-данные → текст, текст → сценарий, сценарий → исполняемый код и т.д., но не текст → исполняемый код). Можно ввести понятие связанных типов данных в случае, когда данные #1 типа #1 всегда связаны с данными #2 типа #2, например, в видео-файле данные, отвечающие за изображение (тип: видеоданные) всегда связаны с данными, отвечающими за звук (тип: аудио-данные).
Еще одном из вариантов реализации системы модель анализа 511 была предварительно обучена методом машинного обучения на по меньшей мере одном вредоносном объекте.
Например, обучение осуществляется таким образом, чтобы обученная модель анализа 511 на обучающей выборке находила только блоки данных, содержащих вредоносные данные (например, вредоносный код).
Еще в одном из вариантов реализации системы в качестве метода машинного обучения модели анализа 511 выступает по меньшей мере метод:
• градиентный бустинг на деревьях принятия решений;
• деревья принятия решений;
• ближайших соседей kNN;
• опорных векторов.
Средство статического анализа 520 объекта предназначено для:
• формирования для каждого полученного блока данных набора признаков, описывающих упомянутый блок данных;
• вычисления свертки от сформированных наборов признаков;
• передачи сформированной свертки средству вычисления степени вредоносности 530.
В одном из вариантов реализации системы в качестве признаков, формируемых для блока данных, выступает по меньшей мере:
• частотная характеристика нахождения в упомянутом блоке данных заранее заданных символов;
• частотная характеристика нахождения в анализируемом объекте 501 хэш-сумм, вычисляемых по символам из упомянутого блока данных с использованием заранее заданных хэш-функций;
• количество обращений к внешним библиотекам;
• суммарный объем данных в упомянутом блоке данных.
Еще в одном из вариантов реализации системы вычисление свертки от сформированных наборов признаков выполняется на основании заранее заданной функции свертки, такой что результат обратной функция свертки от результата упомянутой функции свертки над всеми сформированными наборами признаков имеет степень схожести с упомянутым набором признаков больше заданного значения.
1
7
9
11
12
15
27
128
763
909
1
7
10
11
12
15
27
9
10
Например, на основании анализа блока данных были сформированы признаки {p, р, р, р, p, p, p}, на основании которых была вычислена свертка {h, h, h}. При применении обратной функции к вычисленной свертке были получены признаки {p, p, p. p, p, p, p}, в которых вместо первоначального признака р присутствовал признак р. а все остальные признаки были такими, что и признаки на основании которых была вычислена упомянутая свертка.
Средство вычисления степени вредоносности 530 предназначено для:
• вычисления степени вредоносности анализируемого объекта 501 на основании анализа полученной свертки с помощью модели обнаружения вредоносных объектов 531;
• передачи вычисленной степени вредоносности средству классификации 540.
В одном из вариантов реализации системы степень вредоносности представляет собой численное значение, характеризующее вероятность того, что анализируемый объект 501 является вредоносным.
Модель обнаружения вредоносных объектов 531 представляет собой совокупность правил вычисления коэффициента вредоносности анализируемого объекта 501 на основании анализа выбранных из анализируемого объекта 501 блоков данных.
В одном из вариантов реализации системы модель обнаружения вредоносных объектов 531 была предварительно обучена методом машинного обучения на по меньшей мере одном безопасном объекте и вредоносном объекте.
Еще в одном из вариантов реализации системы в качестве метода машинного обучения модели обнаружения вредоносных объектов 531 выступает по меньшей мере метод:
• градиентный бустинг на деревьях принятия решений;
• деревья принятия решений;
• ближайших соседей kNN;
• опорных векторов.
Еще в одном из вариантов реализации системы метод обучения модели обнаружения вредоносных объектов 531 обеспечивает монотонность изменения степени вредоносности объекта в зависимости от изменения количества наборов признаков, сформированных на основании анализа блоков данных.
Например, из вредоносного файла «video.avi.exe» было выбрано 10 блоков данных. После последовательного анализа с использованием модели обнаружения вредоносных объектов 531 каждого из выбранных блоков данных были вычислены коэффициенты вредоносности:
0.01, 0.02, 0.09, 0.17, 0.19, 0.21, 0.38, 0.53, 0.87, 0.88,
т.е. при каждом последующем вычислении коэффициента вредоносности упомянутый коэффициент вредоносности только увеличивался.
Еще в одном примере из безопасного файла «explorer.exe» было выбрано 15 блоков данных. После последовательного анализа с использованием модели обнаружения вредоносных файлов 532 каждого из выбранных блоков данных были вычислены коэффициенты вредоносности:
0.01, 0.02, 0.02, 0.02, 0.03, 0.08, 0.08, 0.08, 0.08, 0.08, 0.08, 0.09, 0.10. 0.10. 0.10.
т.е. при каждом последующем вычислении коэффициента вредоносности упомянутый коэффициент вредоносности не уменьшался (оставался на том же уровне, что и при предыдущем вычислении, в случае, если выбранный блок данных не содержал никаких данных, связанных с потенциальной вредоносной активностью, увеличивался, в случае, если выбранный блок данных содержал данные, связанные с потенциальной вредоносной активностью).
Средство классификации 540 предназначено для:
• признания анализируемого объекта 501 безопасным, в случае, когда полученная степень вредоносности не превышает заранее заданного порогового значения и при этом упомянутая степень вредоносности была вычислена на основании всех блоков данных, содержащихся в анализируемом объекте 501;
• признания анализируемого объекта 501 вредоносным, в случае, когда полученная степень вредоносности превышает заранее заданное пороговое значение.
Для признания анализируемого объекта 501 вредоносным достаточно проанализировать ограниченное число выбранных блоков данных, поскольку как только полученная на основании анализа упомянутых блоков данных степень вредоносности превысит заранее заданное пороговое значение, анализируемый объект 501 будет признан вредоносным. С другой стороны, безопасным объект считается в том случае, когда он не был признан вредоносным. Для гарантированного признания анализируемого объекта 501 безопасным требуется анализ всех блоков данных, содержащихся в анализируемом объекта 501, поскольку только если степень вредоносности, полученная на основании анализа всех упомянутых блоков данных, не будет превышать заранее заданного порогового значения можно будет признать анализируемый объект 501 безопасным иначе, при анализе лишь ограниченного числа выбранных блоков данных нет гарантии, что анализ следующего выбранного блока данных не приведет к превышению полученной степени вредоносности заранее заданного порогового значения.
Например, при анализе исполняемого файла «explorer.exe» средство выборки блока данных 510 последовательно выбирает блоки данных, содержащиеся в «explorer.exe», после каждой выборки блока данных средство вычисления степени вредоносности 530 производит вычисление текущей степени вредоносности, каждый раз вычисленная степень вредоносности не превышает 0.76 (заранее заданное пороговое значение). После того, как все блоки данных (1542 итерации) были выбраны, а степень вредоносности так и не превысила 0.76 средство классификации 540 признает исполняемый файл «explorer.exe» безопасным.
Еще в одном примере описываемая система при анализе исполняемого файла «video.avi.exe» средство выборки блока данных 510 последовательно выбирает блоки данных, содержащиеся в «explorer.exe», после каждой выборки блока данных средство вычисления степени вредоносности 530 производит вычисление текущей степени вредоносности, при этом вычисленная степень вредоносности постоянно растет (с каждым выбранным блоком данных): 0.01, … 0.17, … 0.34, … 0.69, … 0.81, и на 35 итерации начинает превышать 0.76 (заранее заданное пороговое значение). Как только вычисленная степень вредоносности превышает заранее заданное пороговое значение средство классификации 540 признает исполняемый файл «video.avi.exe» вредоносным.
В одном из вариантов реализации системы средство классификации 540 признает анализируемый объект в зависимости того, в какой числовой диапазон входит вычисленная степень вредоносности (далее w) по меньшей мере:
clean
• безопасным - w  [0.0, limit),
т.е. такой анализируемый объект 501, который гарантированно не причинит вычислительному устройству пользователя вред;
clean
unknown
• неизвестный - w  [limit,limit),
т.е. такой анализируемый объект 501, который с большой долей вероятности не причинит вычислительному устройству пользователя вред;
unknown
suspicious
• подозрительный - w  [limit, limit),
т.е. такой анализируемый объект 501, который с большой долей вероятности причинит вычислительному устройству пользователя вред;
suspicious
• вредоносным - w  [limit, 1.0),
т.е. такой анализируемый объект 501, который гарантированно причинит вычислительному устройству пользователя вред;
где
w - вычисленная степень вредоносности,
clean
limit - заранее заданное пороговое значение, выше которого анализируемый объект не может классифицировать как безопасный,
unknown
limit - заранее заданное пороговое значение, выше которого анализируемый объект не может классифицировать как неизвестный,
suspicious
limit - заранее заданное пороговое значение, выше которого анализируемый объект не может классифицировать как подозрительный.
suspicious
В описанном выше варианте реализации системы вместо 2 кластеров объектов (безопасные и вредоносные), которые могут быть разделены одним заранее заданным пороговым значением коэффициента вредоносности, описаны 4 кластера (безопасные, неизвестные, подозрительные и вредоносные), которые могут быть разделены уже тремя заранее заданными пороговыми значениями. При этом заранее заданное пороговое значение limit соответствует заранее заданному пороговому значению из двухкластерной системы, описанной выше, выше которого анализируемые объекты признаются вредоносными.
Например, исполняемый файл «radmin.exe», представляющий собой компонент программного обеспечения «Remote Administrator», предназначенного для удаленного управления вычислительными устройствами, имея коэффициент вредоносности 0.56 будет считаться подозрительным (w  [0.50,0.80)), поскольку позволяет управлять вычислительными устройствами скрыто от пользователей упомянутых вычислительных устройств, в связи с чем часто используется для осуществления вредоносной активности. Коэффициент вредоносности определяется на основании данных, выбираемых из анализируемого объекта 501, выбираемые же данные обеспечивают функционал анализируемого объекта 501, таким образом вычисляемый коэффициент вредоносности связан с функционалом анализируемого объекта 501, обеспечиваемым выбираемыми данными.
Еще в одном из вариантов реализации системы поиск и выделение по меньшей мере одного блока данных и вычисление степени вредоносности выполняются последовательно одно за другим до тех пор, пока по меньшей мере:
• анализируемый объект 501 не будет признан вредоносным;
• не будут найдены и выделены все блоки данных.
Например, из анализируемого объекта 501 средство выборки блока данных 510 выбирает несколько блоков данных, на основании которых средство вычисления степени вредоносности 530 вычисляет степень вредоносность, а средство классификации 540 признает анализируемый объект 501 безопасным или вредоносным.
Еще в одном примере из анализируемого объекта 501 средство выборки блока данных 510 выбирает только один блок данных, на основании которого средство вычисления степени вредоносности 530 вычисляет степень вредоносность, а средство классификации 540 признает анализируемый объект 501 вредоносным, в случае, если признать анализируемый объект 501 вредоносным не удается (вычисленная степень вредоносности не превышает заранее заданное пороговое значение) описанный выше цикл выполняется еще раз - выбирается еще один блок данных и т.д. до тех пор, пока анализируемый объект 501 не будет признан вредоносным или не будут выбраны все блоки данных, после чего анализируемый объект 501 будет признан безопасным.
Средство переобучения модели анализа 550 предназначено для переобучения после того, как анализируемый объект 501 был признан вредоносным, модели анализа 511 таким образом, чтобы признание анализируемого объекта 501 вредоносным достигалось на основании анализа меньшего числа выделенных из анализируемого объекта 501 блоков данных, чем это требовалось до переобучения упомянутой модели анализа 511.
Например, при классификации исполняемый файл «video.avi.exe», представляющий собой вредоносный шифровальщик файлов, средством классификации 540 был признан вредоносным после выполнения 512 итераций выборки блоков данных из упомянутого файла, при этом окончательный вычисленный коэффициент вредоносности был равен 0.87 (при заранее заданном пороговом значении в 0.78, после которого анализируемый объект признается вредоносным). После переобучения модели анализа 511 при повторной классификации файл «video.avi.exe» был признан вредоносным после выполнения 260 итераций выборки блоков данных из упомянутого файла, при этом окончательный вычисленный коэффициент вредоносности был равен 0.79. Такой результат был достигнут за счет того, что переобученная модель анализа 511 чаще выбирала такие блоки данных, на основании которых вычисленный коэффициент вредоносности был выше.
То, что в некоторых случаях вычисленный коэффициент вредоносности после выполнения итерации N может быть значительно меньше заранее заданного порогового значения (например, 0.60 против 0.75), а после выполнения итерации N+1 - значительно больше (например, 0,85 против 0.75) объясняется тем, что функция роста коэффициента вредоносности не гладкая, а дискретная из-за конечного числа итераций, поэтому может меняться большими шагами, при этом чем лучше обучается модель анализа 511, тем больше размер упомянутого шага.
Еще в одном из вариантов реализации системы переобучение модели анализа 511 выполняется после завершения классификации анализируемого объекта 501 средством классификации 550 вне зависимости от результата классификации упомянутого объекта 501 таким образом, чтобы при повторном анализе упомянутого объекта 501 с использованием переобученной модели анализа 511 при каждой итерации выборки блока данных из анализируемого объекта 501 вычисленный коэффициент вредоносности на основании упомянутого блока данных был не ниже, чем при использовании непереобученной модели анализа 511.
Например, при классификации исполняемый файл «explorer.exe», представляющий собой вредоносный шифровальщик файлов, средством классификации 540 был признан безопасным после выполнения 10240 итераций выборки блоков данных из упомянутого файла (т.е. всех блоков данных из анализируемого файла), при этом окончательный вычисленный коэффициент вредоносности был равен 0.09. После переобучения модели анализа 511 при повторной классификации файл «explorer.exe» был признан безопасным, при этом коэффициент вредоносности равный 0.09 был вычислен уже после 2050 итерации, после чего уже не изменялся. Такой результат был достигнут за счет того, что переобученная модель анализа 511 чаще выбирала такие блоки данных, на основании которых вычисленный коэффициент вредоносности был выше.
Поскольку модель анализа 511 постоянно переобучают на основании результатов анализа анализируемых объектов 501, то в среднем при каждом последующем анализе вредоносного объекта 501 будет выбираться и анализироваться меньшее число блоков данных (выполняться меньше итераций) чем для ранее рассмотренных вредоносных объектов 501, потому что для вредоносного объекта все раньше и раньше вычисленный коэффициент вредоносности будет превышать заранее заданное пороговое значение и анализируемый объект 501 будет признаваться вредоносным. Если же анализируемый объект 501 не является вредоносным, то будут выбраны все доступные блоки данных, но и в этом случае после анализа всех выбранных блоков данных модель анализа 511 будет переобучена так, чтобы даже при анализе безопасного объекта 501 вычисленный коэффициент вредоносности как можно быстрее пытался превысить заранее заданное пороговое значение (хотя упомянутый коэффициент и не превысит), при этом скорость роста упомянутого коэффициенты вредоносности будет стремиться к максимальной, а значит при анализе уже вредоносного объекта 501 будет количество выбираемых блоков данных будет стремиться к минимуму.
Переобучение модели анализа 511 на безопасных файлах позволяет таким образом повысить ее эффективность и при анализе вредоносных файлов.
После выполнения классификации анализируемого объекта 501 в случае, если объект 501 признается вредоносным, сторонними средствами может быть выполнена процедура лечения вычислительного устройства на котором упомянутый объект был обнаружен.
Фиг. 6 представляет структурную схему способа классификации объектов.
Структурная схема способа классификации объектов содержит этап 610. на котором выбирают блоки данных, этап 620. на котором формируют наборы признаков, этап 630. на котором вычисляют свертку, этап 640. на котором вычисляют степень вредоносности, этап 650(A), на котором признают объект безопасным, этап 650(B), на котором признают объект вредоносным и этап 660. на котором переобучают модель анализа.
На этапе 610 выбирают по меньшей мере один блок данных, содержащийся в анализируемом объекте 501, с помощью модели анализа 511, при этом модель анализа 511 представляет собой совокупность правил поиска блоков данных, правила формируются таким образом, чтобы каждый найденный блок данных увеличивал вероятность классифицировать анализируемый объект 501 как вредоносный.
На этапе 620 формируют для каждого выбранного на этапе 610 блока данных набора признаков, описывающих упомянутый блок данных.
На этапе 630 вычисляют свертку от всех сформированных на этапе 620 наборов признаков.
На этапе 640 вычисляют степень вредоносности анализируемого объекта 501 на основании анализа вычисленной на этапе 630 свертки с помощью модели обнаружения вредоносных объектов 531;
На этапе 650(A) признают анализируемый объект 501 безопасным, в случае, когда вычисленная на этапе 640 степень вредоносности не превышает заранее заданного порогового значения и при этом упомянутая степень вредоносности была вычислена на основании всех блоков данных, содержащихся в анализируемом объекта 501.
На этапе 650(B) признают анализируемый объект 501 вредоносным, в случае, когда вычисленная на этапе 640 степень вредоносности превышает заранее заданное пороговое значение.
На этапе 660 после того, как анализируемый объект 501 был признан вредоносным переобучают модель анализа 511 таким образом, чтобы признание анализируемого объекта 501 вредоносным достигалось на основании анализа меньшего числа выделенных из анализируемого объекта 501 блоков данных, чем это требовалось до переобучения упомянутой модели анализа 511.
Фиг. 7 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 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. представленного на Фиг. 7. В вычислительной сети могут присутствовать также и другие устройства, например, маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.
Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.
В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой.