Система и способ обучения модели обнаружения вредоносных контейнеров
SYSTEM AND METHOD FOR TRAINING HARMFUL CONTAINER DETECTION MODEL

Область техники
Изобретение относится к антивирусным технологиям, а более конкретно к системам и способам обучения моделей обнаружения вредоносных контейнеров.
Уровень техники
Бурное развитие компьютерных технологий в последнее десятилетие, а также широкое распространение разнообразных вычислительных устройств (персональных компьютеров, ноутбуков, планшетов, смартфонов и т.д.) стали мощным стимулом для использования упомянутых устройств в разнообразных сферах деятельности и для огромного количества задач (от интернет-серфинга до банковских переводов и ведения электронного документооборота). Параллельно с ростом количества вычислительных устройств и программного обеспечения, работающего на этих устройствах, быстрыми темпами росло и количество вредоносных программ.
В настоящий момент существует огромное количество разновидностей вредоносных программ. Одни крадут с устройств пользователей их персональные и конфиденциальные данные (например, логины и пароли, банковские реквизиты, электронные документы). Другие формируют из устройств пользователей так называемые бот-сети (англ. botnet) для атак, таких как отказ в обслуживании (англ. DDoS - Distributed Denial of Service) или перебор паролей методом грубой силы (англ. bruteforce), на другие компьютеры или компьютерные сети. Третьи предлагают пользователям платный контент через навязчивую рекламу, платные подписки, отправку CMC на платные номера и т.д.
Для борьбы с вредоносными программами, включающей в себя обнаружение вредоносных программ, предотвращение заражения и восстановление компьютерных систем, зараженных вредоносными программами, применяются специализированные программы - антивирусы. Для обнаружения всего многообразия вредоносных программ антивирусные программы используют разнообразные технологии, такие как:
- статический анализ - анализ программы на вредоносность, исключающей запуск или эмуляцию работы анализируемой программы, на основании данных, содержащихся в файлах, составляющих анализируемую программу, при этом при статистическом анализе могут использоваться:
- сигнатурный анализ - поиск соответствий какого-либо участка кода анализируемой программы известному коду (сигнатуре) из базы данных сигнатур вредоносных программ;
- белые и черные списки - поиск вычисленной контрольной суммы от анализируемой программы (или ее частей) в базе данных контрольных сумм вредоносных программ (черные списки) или базе данных контрольных сумм безопасных программ (белые списки);
- динамический анализ - анализ программы на вредоносность на основании данных, полученных в ходе исполнения или эмуляции работы анализируемой программы, при этом при динамическом анализе могут использоваться:
- эвристический анализ - эмуляция работы анализируемой программы, создание журналов эмуляции (содержащих данные по вызовам API-функций, переданным параметрам, участкам кода анализируемой программы и т.д.) и поиск соответствий данных из созданных журналов с данными из базы данных эмуляционных сигнатур вредоносных программ;
- проактивная защита - перехват вызовов API-функций запущенной анализируемой программы, создание журналов работы анализируемой программы (содержащих данные по вызовам API-функций, переданным параметрам, участкам кода анализируемой программы и т.д.) и поиск соответствий данных из созданных журналов с данными из базы данных вызовов вредоносных программ.
И статический, и динамический анализ обладают своими плюсами и минусами. Статический анализ менее требователен к ресурсам компьютерной системы, на которой выполняется анализ, а поскольку он не требует исполнения или эмуляции анализируемой программы, статистический анализ более быстрый, но при этом менее эффективен, т.е. имеет более низкий процент обнаружения вредоносных программ и более высокий процент ложных срабатываний (т.е. вынесения решения о вредоносности файла, анализируемого средствами программы-антивируса, при том, что анализируемый файл является безопасным). Динамический анализ из-за того, что использует данные, получаемые при исполнении или эмуляции работы анализируемой программы, более медленный и предъявляет более высокие требования к ресурсам компьютерной системы, на которой выполняется анализ, но при этом и более эффективен. Современные антивирусные программы используют комплексный анализ, включающий в себя как элементы статического, так и динамического анализа.
Основной проблемой антивирусной проверки до сих пор остается задача распределения вычислительных ресурсов для выполнения упомянутой проверки между анализируемыми программами. При большом потоке анализируемых программ и ограниченных вычислительных ресурсов возможно по меньшей мере:
- общее снижение качества антивирусной проверки анализируемых программ (например, использование только статического анализа, исключая динамический анализ);
- произвольное исключение из антивирусной проверки части анализируемых программ, среди которых могут быть вредоносные (например, очередь программ, ожидающих антивирусной проверки составляет N, при этом вычислительных ресурсов доступно только для выполнения антивирусной проверки М<N программ, таким образом последние N-М программ будут исключены из антивирусной проверки);
- при сохранении среднего качества антивирусной проверки анализируемых программ, высокое качество проверки безопасных программ и низкое качество проверки вредоносных программ (например, безопасные программы анализируются и статическим и динамическим анализом, а вредоносные только статическим);
- и т.д.
что в свою очередь приводит к появлению ошибок первого и второго рода.
Хотя описанная выше технология обнаружения хорошо справляется с обнаружением вредоносных сценариев заданного типа (сценарии, содержащие заранее заданные, известные объекты), она не справляется с обнаружением вредоносных объектов неизвестных типов (например, таких типов сценариев, на которых не проводилось обучение, к примеру, ActionScript). Кроме того, упомянутая технология не может использоваться для быстрого анализа большого кол-ва файлов (сценариев) при ограниченном доступе к вычислительным ресурсам, поскольку для начала анализа с использованием обученной модели обнаружения требуется предварительная обработка анализируемого сценария (вплоть до его выполнения, т.е. выполнения динамического анализа), что является ресурсоемкой операцией.
Настоящее изобретение позволяет решать задачу обнаружения вредоносных файлов с использованием элементов статистического анализа.
Раскрытие изобретения
Изобретение предназначено для обучения модели обнаружения вредоносных файлов.
Технический результат настоящего изобретения заключается в реализации назначения.
Еще один технический результат настоящего изобретения заключается в повышения обнаружения вредоносных файлов при использовании модели обнаружения вредоносных файлов за счет ей переобучения на ранее обнаруженных вредоносных файлах.
Данные результаты достигаются с помощью использования системы обучения модели обнаружения вредоносных контейнеров, при этом в качестве контейнера выступает файл, содержащий в себе по меньшей мере два и более объектов, представляющих собой логически обособленные области данных упомянутого контейнера (далее - объекты), которая содержит: средство определения параметров, предназначенное для определения параметров каждого объекта, выбранного из анализируемого контейнера, при этом один из параметров характеризует функциональную связь объектов между собой; средство формирования свертки, предназначенное для формирования свертки на основании параметров объектов, определенных средством определения параметров, в качестве которой выступает многомерный вектор, каждому элементу которого соответствует свой уникальный параметр из определенных параметров, а значение упомянутого элемента соответствует количеству объектов, для которых был определен упомянутый параметр; средство обучения, предназначенное для машинного обучения модели обнаружения вредоносных контейнеров на основании по меньшей мере одной свертки, сформированной для безопасного контейнера и одного вредоносного контейнера, при этом упомянутая модель обнаружения представляет собой алгоритм вычисления степени вредоносности контейнера, а степень вредоносности контейнера - численное значение, характеризующее вероятность того, что упомянутый контейнер является вредоносным.
В другом частном случае реализации системы дополнительно средство обучение предназначено для переобучения модели обнаружения вредоносных контейнеров в случае, когда вычисленная степень вредоносности контейнера находится в заранее заданном диапазоне пороговых значений таким образом, чтобы степень вредоносности, вычисленная на основании параметров объектов, выбранных с помощью переобученной модели определения параметров, была выше степени вредоносности контейнера, вычисленной на основании параметров объектов, выбранных с помощью непереобученной модели обнаружения вредоносных контейнеров.
Еще в одном частном случае реализации системы в качестве контейнера выступает по меньшей мере: документ PDF; дистрибутив; файловый архив.
В другом частном случае реализации системы в качестве объекта, выбранного из контейнера, выступает по меньшей мере: исполняемый файл; сценарий; медиа-данные; контейнер.
Еще в одном частном случае реализации системы в качестве параметров объекта выступает по меньшей мере: тип объекта; размер объекта; индекс объекта среди всех объектов, содержащихся в контейнере.
Данные результаты достигаются с помощью использования способа обучения модели обнаружения вредоносных контейнеров, при этом в качестве контейнера выступает файл, содержащий в себе по меньшей мере два и более объектов, представляющих собой логически обособленные области данных упомянутого контейнера (далее - объекты), при этом способ содержит этапы, которые реализуются с помощью средств из системы обучения модели обнаружения вредоносных контейнеров и на которых: с помощью средства определения параметров определяют параметры каждого объекта, выбранного из по меньшей мере одного безопасного контейнера и одного вредоносного контейнера, однозначно характеризующие функциональную связь упомянутого объекта с по меньшей мере одним выбранным объектом; с помощью средства формирования свертки формируют отдельно свертки для каждого контейнера на основании определенных параметров объектов, выбранных из упомянутого контейнера, при этом в качестве свертки выступает многомерный вектор, каждому элементу которого соответствует свой уникальный параметр из определенных параметров, а значение упомянутого элемента соответствует количеству объектов, для которых был определен упомянутый параметр; с помощью средства обучения осуществляют машинное обучение модели обнаружения вредоносных контейнеров на основании сформированных сверток, при этом упомянутая модель обнаружения представляет собой алгоритм вычисления степени вредоносности контейнера, а степень вредоносности контейнера - численное значение, характеризующее вероятность того, что упомянутый контейнер является вредоносным.
В другом частном случае реализации способа дополнительно переобучают модель обнаружения вредоносных контейнеров в случае, когда вычисленная степень вредоносности контейнера находится в заранее заданном диапазоне пороговых значений таким образом, чтобы степень вредоносности, вычисленная на основании параметров объектов, выбранных с помощью переобученной модели определения параметров, была выше степени вредоносности, вычисленной на основании параметров объектов, выбранных с помощью непереобученной модели обнаружения вредоносных контейнеров.
Еще в одном частном случае реализации способа в качестве контейнера выступает по меньшей мере: документ PDF; дистрибутив; файловый архив.
В другом частном случае реализации способа в качестве объекта, выбранного из контейнера, выступает по меньшей мере: исполняемый файл; сценарий; медиа-данные; контейнер.
Еще в одном частном случае реализации способа в качестве параметров объекта выступает по меньшей мере: тип объекта; размер объекта; индекс объекта среди всех объектов, содержащихся в контейнере.
Краткое описание чертежей
Фиг. 1 представляет структурную схему системы обучения модели обнаружения вредоносных контейнеров.
Фиг. 2 представляет структурную схему способа обучения модели обнаружения вредоносных контейнеров.
Фиг. 3 представляет структурную схему системы формирования задач антивирусной проверки.
Фиг. 4 представляет структурную схему способа формирования задач антивирусной проверки.
Фиг. 5 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер.
Хотя изобретение может иметь различные модификации и альтернативные формы, характерные признаки, показанные в качестве примера на чертежах, будут описаны подробно. Следует понимать, однако, что цель описания заключается не в ограничении изобретения конкретным его воплощением. Наоборот, целью описания является охват всех изменений, модификаций, входящих в рамки данного изобретения, как это определено приложенной формуле.
Описание вариантов осуществления изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, необходимыми для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется в объеме приложенной формулы.
Введем ряд определений и понятий, которые будут использоваться при описании вариантов осуществления изобретения.
Вектор - это абстрактный тип данных, представляющий собой упорядоченный набор значений, в котором некоторое значение может встречаться более одного раза, а все значения могут быть как одного, так и разного типа. Экземпляры значений, находящихся в векторе, называются элементами (компонентами) вектора.
Контейнер - тип, позволяющий инкапсулировать в себе объекты других типов. Контейнеры, в отличие от коллекций, реализуют конкретную структуру данных.
Машинное обучение (англ. machine learning, ML) - класс методов искусственного интеллекта, характерной чертой которых является не прямое решение задачи, а обучение в процессе применения решений множества сходных задач. Для построения таких методов используются средства математической статистики, численных методов, методов оптимизации, теории вероятностей, теории графов, различные техники работы с данными в цифровой форме.
Обучение без учителя (самообучение, спонтанное обучение) - один из способов машинного обучения, при котором испытуемая система спонтанно обучается выполнять поставленную задачу без вмешательства со стороны экспериментатора. С точки зрения кибернетики, это является одним из видов кибернетического эксперимента. Как правило, это пригодно только для задач, в которых известны описания множества объектов (обучающей выборки), и требуется обнаружить внутренние взаимосвязи, зависимости, закономерности, существующие между объектами.
Обучение с учителем (англ. supervised learning) - один из способов машинного обучения, в ходе которого испытуемая система принудительно обучается с помощью примеров «стимул-реакция». С точки зрения кибернетики, является одним из видов кибернетического эксперимента. Между входами и эталонными выходами (стимул-реакция) может существовать некоторая зависимость, но она неизвестна. Известна только конечная совокупность прецедентов - пар «стимул-реакция», называемая обучающей выборкой. На основе этих данных требуется восстановить зависимость (построить модель отношений стимул-реакция, пригодных для прогнозирования), то есть построить алгоритм, способный для любого объекта выдать достаточно точный ответ. Для измерения точности ответов, также, как и в обучении на примерах, может вводиться функционал качества.
Функциональная связь - тип отношения (связи) между объектами при котором изменения каждого из объектов сопутствуют друг другу. При функциональной связи отсутствуют главные признаки причинно-следственной связи - производительность (объекты не производят друг друга), асимметричность во времени (они сосуществуют, одно из них не предшествует другому), необратимость.
Фиг. 1 представляет пример структурную схему системы обучения модели обнаружения вредоносных контейнеров.
Структурная схема системы обучения модели обнаружения вредоносных контейнеров состоит из анализируемого контейнера 100, объектов контейнера 105, средства определения параметров 110, модели определения параметров 111, средства формирования свертки 120, средства обучения модели обнаружения 130, модели обнаружения 131 и средства переобучения модели определения параметров 140.
В качестве контейнера 100 выступает файл, содержащий в себе по меньшей мере два объекта 105, представляющие собой логически обособленные области данных упомянутого контейнера 100 (далее -объекты).
В одном из вариантов реализации системы в качестве контейнера 100 выступает по меньшей мере:
- документ PDF;
- приложение, содержащее SWF файлы (приложение Flash) или непосредственно сам SWF файл;
- электронный документ (например, документ Microsoft Office);
- апплет Java;
- дистрибутив (например, установщик Windows (англ. Microsoft Installer) - MSI);
- файловый архив (например, совокупность файлов, упакованных архиватором «WinZip»).
Электронный документ Microsoft Excel «квартальный_отчет.xlsx» 100 может содержать в себе текстовые данные (например, описывающие формулы функциональной связи ячеек таблицы Microsoft Excel друг с другом) 105.1, изображения или OLE вложения (графики, построенные на основании данных из таблиц упомянутого электронного документа) 105.2, а также другие электронные документы Microsoft Excel 105.3.
Другими словами, в качестве контейнера 100 может выступать любая структурированная совокупность данных, из которой на основании информации об упомянутой структуре технически возможно выделить в качестве независимых объектов 105 логически обособленные области данных.
Еще в одном из вариантов реализации системы в качестве объекта 105, выделенного из контейнера 100, выступает по меньшей мере:
- исполняемый файл (в том числе и библиотека DLL);
- медиа-данные (например, изображения, видео, аудио и т.д.);
- контейнер (например, файловый архив, вложенный в другой файловый архив);
- бинарные данные;
- текст.
Например, в файловом архиве «archive.zip» 100 могут содержаться исполняемый файл «viewer.exe» 105.4 и изображение «family.jpg» 105.5, при этом упомянутый исполняемый файл «viewer.exe» 105.4 также является контейнером 100, поскольку для него известна структура (структура РЕ-файлов), описывающая секции файла, и при этом в секции ресурсов содержится изображение «me.tiff» 105.5.
Другими словами, в качестве объекта 105 могут выступать данные, модификация которых (в том числе замена и удаление из контейнера 100) может быть выполнена без изменения функционала или структуры контейнера 100, в котором упомянутые данные хранятся, т.е. модификация упомянутых объектов 105 может быть выполнена без модификации других объектов 105, содержащихся в упомянутом контейнере 100.
Выборка объектов 105 из контейнера 100 может быть выполнена любым известным из уровня техники способом (более подробно см. Фиг. 3).
Средство определения параметров 110 предназначено для определения параметров объектов 105, выбранных из анализируемого контейнера 100, и передаче определенных параметров средству формирования свертки 120, при этом по меньшей мере один из параметров характеризует функциональную связь выбранных объектов 105 между собой.
В одном из вариантов реализации системы в качестве параметров объекта 105 выступает по меньшей мере:
- тип объекта 105 (например, изображение, текст, медиа-данные, контейнер и т.д.);
- размер объекта 105;
- суммарный размер выбранных объектов 105 определенного типа (например, суммарный размер изображений - 1020КБ, суммарный размер текстовых данных - 12КБ и т.д.);
- индекс объекта 105 среди всех объектов 105, содержащихся в контейнере 100.
Дополнительно в качестве параметров выступает по меньшей мере:
- тип контейнера 100 (например, zip-архив, swf-файл и т.д.);
- размер контейнера 100;
- количество выбранных объектов 105 в контейнере;
- суммарный размер всех выбранных объектов 105.
Например, контейнер «квартальный_отчет.xlsx» 100 может содержать изображения «chart_01.jpg» 105.6, «chart_02.jpg» 105.7 и сценарий VBScript «viewer.vbs» 105.8. В качестве параметров объектов 105 контейнера 100 могут выступать приведенные в таблицах ниже:
По соотношению размера контейнера 100 к сумме размеров объектов 105 упомянутого контейнера 100 дополнительно определяют степень распаковки упомянутого контейнера 100 - численную величину, характеризующую, по меньшей мере:
- сколько объектов 105 из хранящихся в контейнере 100 было выбрано, в том числе сколько объектов определенного (в том числе зависящего от типа контейнера 100) типа 105,
- суммарный размер выбранных объектов 105 относительно размера контейнера 100, содержащего упомянутые объекты;
(другие словами, насколько эффективно удалось извлечь из контейнера 100 содержащиеся в нем объекты 105). В случае, если вычисленная степень распаковки контейнера меньше заранее заданного порогового значения выносится решение о неполной распаковке упомянутого контейнера 100, на основании чего упомянутый контейнер 100 по меньшей мере:
- обрабатывают другими алгоритмами выборки объектов 105;
- передают на дополнительный анализ, проводимый любым известным из уровня техники способа.
Еще в одном из вариантов реализации системы для определения параметров объектов 105, выбранных из контейнера 100 используют обученную модель определения параметров 111, при этом упомянутая модель определения параметров 111 представляет собой совокупность правил определения параметров объектов 105, таким образом, чтобы каждый определенный параметр увеличивал вероятность классифицировать анализируемый контейнер как вредоносный (т.е. параметры, которые не могут влиять на вредоносность анализируемого объекта или уменьшают его вредоносность не рассматриваются).
Например, некоторый параметр X не является параметром, описывающим прямо (к примеру, хэш-сумма из черного списка) или косвенно (к примеру, маска на вредоносный IP адрес) данные вредоносного объекта 105 - такой параметр обученной моделью определения параметров 111 будет гарантированно игнорироваться и описываемый им объект 105 не будет извлекаться из контейнера 100. Другой параметр Y косвенно описывает данные вредоносного объекта 105, поэтому в зависимости от значения других параметров объект 105 может с какой-то вероятностью извлекаться из контейнера 100. А параметр Z прямо описывающий данные вредоносного объекта 105, поэтому упомянутый объект 105 гарантированно будет извлекаться из контейнера 100. Правильно обученная модель определения параметров 111 извлекает только те объекты 105 из контейнера 100, которые могут характеризоваться параметрами, описывающими вредоносные объекты 105 и, следовательно, влиять на степень вредоносности контейнера 100.
Средство формирования свертки 120 предназначено для формирования свертки (значения алгоритма свертки) на основании параметров объектов 105, определенных средством определения параметров 110, в качестве которой выступает многомерный вектор, каждому элементу которого ставится в соответствие свой параметр из совокупности определенных параметров, а значение упомянутого элемента соответствует количеству объектов 105, для которых был определен упомянутый параметр, и передаче сформированной свертки средству обучения модели обнаружения 130.
Алгоритм формирования свертки может быть выражен в математическом виде как:
где
с - сформированная свертка;
ei - база по i-ому параметру;
i
p - i-ый параметр;
p
n - количество определенных для объектов 105 параметров;
i
N(p) - количество объектов 105, для которых был определен i-ый параметр.
Например, по параметрам, приведенным в Таблице 1.2, будет сформирована свертке:
с=[2,95232,1,2048],
где с представляет собой вектор, каждый элемент которого зависит от одного определенного параметра:
с[0] - количество изображений, выбранных из контейнера 100;
с[1] - суммарный размер всех изображений, выбранных из контейнера 100;
с [2] - количество сценариев, выбранных из контейнера 100;
с[3] - суммарный размер всех сценариев, выбранных из контейнера 100;
В одном из вариантов реализации системы в качестве параметров объектов 105, на основании которых формируется свертка, могут выступать значения функций от определенных параметров объектов 105:
j
i
P=ƒ(p),
т.е. свертка может быть выражен в математическом виде как:
где
с - сформированная свертка;
j
e - база по j-ой функции обработки параметров;
i
{p} - совокупность параметров;
ƒ
i
n - количество заданных функций ƒ(p) обработки определенных для объектов 105 параметров;
j
i
_
ƒ({p}) -jая функция обработки определенных для объектов 105 параметров;
j
N(ƒ) - количество объектов 105, для которых было определено значение j-ой функции.
i
2
32
Например, если в качестве параметра выступает размер объекта 105, при этом размер объекта 105 может находиться в диапазоне [0×00000000, 0×FFFFFFFF], то вектор, который выступает в качестве формируемой свертки, в одном из вариантов реализации может содержать по меньшей мере (4294967296+1) элементов (1 для хранения суммарного размера объектов 105 и 4294967296 для хранения кол-ва объектов 105 заданного размера). Такое представление информации о контейнере 100 и его объектах 105 является избыточным и ресурсоемким, поэтому вместо размера объекта 105 может использоваться значение функции от размера объекта 105 ƒ(p). Например, если в качестве функции выступает двоичный логарифм ƒ=log, то вместо 4294967296 элементов вектора для хранения кол-ва объектов 105 заданного размера потребуется только 32 элемента вектора (2 = 4294967296).
i
Еще в одном варианте реализации системы функция ƒ({p}) может представлять собой математическую модель, в том числе объект, содержащий условные конструкции.
i
Например, если в качестве параметра выступает размер объекта 105, при этом размер объекта 105 может находиться в диапазоне [0×00000000, 0×FFFFFFFF], в качестве параметра объекта 105 может выступать индекс в заранее заданном диапазоне [0, max] (где max - заранее заданное значение больше 0, выбранное из соображений размера вектора, скорости обработки вектора и т.д.), вычисленный с помощью функции от размера объекта 105 ƒ(p):
Таким образом, вместо 4294967296 элементов вектора для хранения кол-ва объектов 105 заданного размера потребуется только 5 элементов вектора.
Другими словами, любой непрерывный параметр может быть отображен через дискретное преобразование на пространство дискретных параметров. Таким же образом любой дискретный параметр может быть отображен через дискретное преобразование на другое пространство дискретных параметров.
Еще в одном варианте реализации системы параметры описанного выше дискретного преобразования могут выбираться на основании ранее выполненного анализа контейнеров 100 таким образом, чтобы кол-во информации в сформированной свертке при заранее заданном размере свертки было максимальным.
Например, если в качестве параметра выступает размер объекта 105, при этом размер объекта 105 может находиться в диапазоне [0×00000000, 0×FFFFFFFF], в качестве параметра объекта 105 может выступать индекс в заранее заданном диапазоне [0, max], вычисленный с помощью функции от размера объекта 105
index=ƒ(p, {limits}),
где
ƒ - функция дискретного преобразования непрерывного параметра p в дискретный параметр index;
index - дискретный параметр;
p - непрерывный параметр;
{limits} - совокупность параметров, выраженных в виде пар {min, max} и описывающий связь непрерывного параметра р с дискретным параметром index;
i
i
i
i
ƒ(i)
Параметры {min, max} выбираются таким образом, чтобы распределение размеров объектов 105 было равномерным (при (max - min)=const распределение линейное, при (max - min)= e нормальное).
Средство обучения 130 предназначено для машинного обучения модели обнаружения вредоносных контейнеров 131 на основании по меньшей мере одной свертки, сформированной для безопасного контейнера, и одной свертки, сформированной для вредоносного контейнера, при этом упомянутая модель обнаружения 131 представляет собой алгоритм вычисления степени вредоносности контейнера 100, а степень вредоносности контейнера 100 - численное значение, характеризующее вероятность того, что упомянутый контейнер 100 является вредоносным.
Например, степень вредоносности может быть действительным численным значением в диапазоне от 0.0 до 1.0, где значение 0.0 означает, что анализируемый контейнер является гарантированно безопасным, а 1.0 - определенно вредоносным (т.е. при его использовании на компьютере будет выполняться вредоносная активность).
Еще в одном примере для бинарной классификации вредоносности анализируемых контейнеров используется сигмоида (англ. sigmoid function).
В одном из вариантов реализации системы дополнительно средство обучение 130 предназначено для переобучения модели обнаружения вредоносных контейнеров 131 в случае, когда вычисленная степень вредоносности контейнера 100 находится в заранее заданном диапазоне пороговых значений таким образом, чтобы степень вредоносности, вычисленная с помощью переобученной модели обнаружения вредоносных контейнеров 131, была выше степени вредоносности, вычисленной с помощью непереобученной модели обнаружения вредоносных контейнеров 131.
Например, если степень вредоносности контейнера находится в диапазоне [0,80..0,85] (к примеру, 0,805), а вредоносным контейнер 100 считается начиная с порогового значения 0,82, то происходит переобучение модели обнаружения вредоносных контейнеров 131 таким образом, чтобы степень вредоносности, вычисленная с помощью переобученной модели обнаружения вредоносных контейнеров 131 стала выше упомянутого значения 0,805 (к примеру 0,815).
Еще в одном примере переобучение модели обнаружения вредоносных контейнеров 131 происходит каждый раз, когда вычисленная степень вредоносности контейнера 100 превышает заранее заданное пороговое значение: если степень вредоносности контейнера 100 равна 0,2, то вычисленная с помощью переобученной модели обнаружения вредоносных контейнеров 131 стала выше упомянутого значения 0,2 (к примеру 0,21), а если степень вредоносности контейнера 100 равна 0,95, то вычисленная с помощью переобученной модели обнаружения вредоносных контейнеров 131 стала выше упомянутого значения 0,95 (к примеру 0,99). Т.е. чем ближе степень вредоносности контейнера 100 к 1.0, тем эффективнее переобучается модели обнаружения вредоносных контейнеров 131.
Средство переобучения модели определения параметров 140 предназначено для переобучения модели определения параметров 111 находится в заранее заданном диапазоне пороговых значений таким образом, чтобы степень вредоносности, вычисленная на основании параметров объектов 105, выбранных с помощью переобученной модели определения параметров 111, была выше степени вредоносности, вычисленной на основании параметров объектов 105, выбранных с помощью непереобученной модели определения параметров 111.
Еще в одном из вариантов реализации системы средство переобучения модели определения параметров 140 предназначено для по меньшей мере:
- повторного обучения модели определения параметров 111,
- добавления по меньшей мере одного контейнера 100 в обучающую выборку модели определения параметров 111,
- удаления из обучающей выборки модели определения параметров 111 по меньшей мере одного контейнера.
Еще в одном из вариантов реализации для переобучения модели определения параметров 111 используются по меньшей мере способы машинного обучения:
- обучения с учителем, такие как искусственная нейронная сеть, метод коррекции ошибок, метод обратного распространения ошибок, метод опорных векторов и т.д.;
- обучения без учителя, такие как альфа-система подкрепления, гамма-система подкрепления, метод ближайших соседей и т.д.
Фиг. 2 представляет пример структурной схемы способа обучения модели обнаружения вредоносных контейнеров.
Структурная схема способа обучения модели обнаружения вредоносных контейнеров состоит из этапа 210, на котором определяют параметры объектов, этапа 220, на котором формируют свертки, этапа 230, на котором обучают модель обнаружения вредоносных контейнеров и этапа 240, на котором переобучают модель определения параметров.
На этапе 210 с помощью средства определения параметров 110 определяют параметры объектов 105, выбранных из по меньшей мере одного безопасного контейнера 100.1 и одного вредоносного контейнера 100.2, однозначно характеризующие функциональную связь упомянутого объекта с по меньшей мере одним выбранным объектом.
В одном из вариантов реализации контейнеры 100 выбираются из совокупности контейнеров, представляющих собой по меньшей мере:
- обучающую выборку, содержащую безопасные и вредоносные контейнеры 100;
- совокупность контейнеров, предназначенных для проведения антивирусной проверки (определения вредоносности упомянутых контейнеров 100), при этом принадлежность упомянутых контейнеров 100 к безопасным или вредоносным контейнерам заранее неизвестно.
Например, обучающая выборка контейнеров может быть подготовлена аналитиками с целью обучения модели определения параметров 111 или модели обнаружения 131.
Еще в одном примере совокупность контейнеров, предназначенных для проведения антивирусной проверки, может быть сформирована на основании собранных с помощью любых известных из уровня техники средств (например, у пользователей, с сайтов, с помощью поискового робота).
На этапе 220 с помощью средства формирования свертки 120 формируют отдельно свертки для каждого контейнера 100 на основании определенных параметров объектов 105, выбранных из упомянутого контейнера 100, при этом в качестве свертки выступает многомерный вектор, каждому элементу которого соответствует свой уникальный параметр из определенных параметров, а значение упомянутого элемента соответствует количеству объектов 105, для которых был определен упомянутый параметр.
На этапе 230 с помощью средства обучения осуществляют машинное обучение 130 модели обнаружения вредоносных контейнеров 131 на основании сформированных сверток, при этом упомянутая модель обнаружения 131 представляет собой алгоритм вычисления степени вредоносности контейнера 100, а степень вредоносности контейнера 100 -численное значение, характеризующее вероятность того, что упомянутый контейнер 100 является вредоносным.
На этапе 240 с помощью средства переобучения модели определения параметров 140 переобучают модель определения параметров 111 в случае, когда вычисленная степень вредоносности контейнера 100 выше заранее заданного порогового значения таким образом, чтобы степень вредоносности, вычисленная на основании параметров объектов 105, выбранных с помощью переобученной модели определения параметров 111, была выше степени вредоносности, вычисленной на основании параметров объектов 105, выбранных с помощью непереобученной модели определения параметров 111.
Фиг. 3 представляет пример структурной схемы системы формирования задач антивирусной проверки.
Структурная схема системы формирования задач антивирусной проверки состоит из группы контейнеров 300, анализируемого контейнера 100, объектов контейнера 105, средства выборки 310, средства определения параметров 110, модели определения параметров 111, средства формирования свертки 120, модели обнаружения 131, средства переобучения модели определения параметров 140, средства анализа 320, средства формирования задач антивирусной проверки 330.
Назначение и устройство анализируемого контейнера 100, по меньшей мере одного объекта контейнера 105, средства определения параметров 110, модели определения параметров 111, средства формирования свертки 120, модели обнаружения 131 и средства переобучения модели определения параметров 140 подробно описано выше на Фиг. 1, Фиг. 2.
Группа контейнеров 300 содержит по меньшей мере два контейнера. Описываемая на Фиг. 3 схема решает задачу распределения вычислительных ресурсов для анализа на вредоносность контейнеров из группы контейнеров 300.
Средство выборки 310 предназначено для выборки по меньшей мере одного объекта контейнера 105 из анализируемого контейнера 100 и передаче выбранных объектов 105 средству определения параметров 110.
В одном из вариантов реализации системы выборка объекта контейнера 105 из анализируемого контейнера 100 осуществляется на основании информации о структуре упомянутого контейнера 100 любым известным из уровня техники способом.
Еще в оном из вариантов реализации системы выборка объектов 105 осуществляется на основании заранее заданных правил выборки, по меньшей мере таких как:
- размер контейнера находится в заранее заданном диапазоне значений;
- контейнер имеет определенный тип;
- степень вредоносности контейнера (определенная любым известным из уровня техники способом) находится в заранее заданном диапазоне значений.
Дополнительный анализ контейнера 100 на вредоносность притом, что степень вредоносности уже вычислена для упомянутого контейнера 100, требуется для повышения эффективности антивирусной проверки, уменьшения ошибок первого и второго рода. Кроме того, описанный выше способ определения степени вредоносности обладает высокой скоростью, невысокими требованиями к вычислительным ресурсам, но при этом и не самой высокой эффективностью (англ. detection rate).
Например, динамический анализ в виртуальной среде, «песочнице» (англ. sandbox) файла PDF показывает, что при его открытии могут сохраняться на диск новые файлы - возможно, при открытии упомянутого файла PDF срабатывает шелл-код, в связи с чем упомянутый файл PDF требует дополнительной проверки.
Средство формирования свертки 120 дополнительно предназначено для передачи сформированной свертки для средства анализа 320.
Средство анализа 320 предназначено для вычисления степени вредоносности анализируемого контейнера 100 на основании сформированной свертки с помощью обученной модели обнаружения 131 и передаче вычисленной степени вредоносности средству формирования задач антивирусной проверки.
Средство формирования задач антивирусной проверки 330 предназначено для определения параметров антивирусной проверки анализируемого контейнера 100, при этом параметры антивирусной проверки характеризуют выделяемые для выполнения в заданное время антивирусной проверки упомянутого контейнера 100 ресурсы вычислительной системы, на которой будет выполнена упомянутая антивирусная проверка.
В одном из вариантов реализации в качестве параметров антивирусной проверки выступают по меньшей мере:
- порядок выполнения антивирусной проверки контейнеров из группы контейнеров 300;
- вычислительные ресурсы, выделяемые для выполнения антивирусной проверки каждого контейнера из группы контейнеров 300;
- время начала и завершения выполнения антивирусной проверки каждого контейнера из группы контейнеров 300;
- способ антивирусной проверки каждого контейнера из группы контейнеров 300.
Цель формирования задачи антивирусной проверки контейнеров, для которых уже вычислены степени вредоносности заключается в следующем: преимущество описанного выше метода определения степени вредоносности контейнера заключается в его высокой скорости и небольших требованиях к вычислительным ресурсам. Таким образом, можно корректно обнаруживаются гарантированно чистые (с очень низкой степенью вредоносности) и гарантированно вредоносные (с очень высокой степенью вредоносности) контейнеры. Остальные контейнеры требуют дополнительной проверки более медленными, более ресурсоемкими, но и более надежными средствами проверки, известными из уровня техники. При этом чем более вредоносным может оказаться контейнер, тем быстрее он должен быть проверен. С этой целью и формируются задачи антивирусной проверки. Описанный выше способ вкупе с известными из уровня техники способами антивирусной проверки способен снизить ошибки первого и второго рода при выполнении упомянутой антивирусной проверки и при этом увеличить итоговую скорость выполнения антивирусной проверки и снизить используемые вычислительные ресурсы.
Например, чем выше степень вредоносности анализируемого контейнера, тем ближе к началу очереди контейнеров на проведение антивирусной проверки он помещается. При этом сама очередь контейнеров на проведение антивирусной проверки может динамически меняться таким образом, что вновь добавленные в очередь контейнеры с более высокой степенью вредоносности уходили на антивирусную проверку раньше, чем контейнеры с более низкой степенью вредоносности, несмотря на то что упомянутые контейнеры с более низкой степенью вредоносности находятся в очередь дольше. Таким образом, имеет место динамическая очередь контейнеров, отсортированная по степени вредоносности, полученной от других источников.
Еще в одно примере время начала и завершения выполнения антивирусной проверки вычисляется таким образом, чтобы по меньшей мере:
- антивирусная проверка всех контейнеров из очереди контейнеров на антивирусную проверку будет закончено за время, не превышающее заранее заданного;
- использование вычислительных ресурсов для упомянутой антивирусной проверки не превысит заранее заданных объектов.
Еще в одном из вариантов реализации часть контейнеров из группы контейнеров 300 может быть исключена из очереди на проведения антивирусной проверки.
Например, если контрольная сумма, вычисленная на основании контейнера (к примеру, MD5), входит в «белый список» (базу контрольных сумм, вычисленных на основании безопасных контейнеров), то такой контейнер исключается из очереди на проведение антивирусной проверки и признается безопасным. С другой стороны, если упомянутая контрольная сумма входит в «черный список» (базу контрольных сумм, вычисленных на основании вредоносных контейнеров), то такой контейнер также исключается из очереди на проведение антивирусной проверки и признается вредоносным.
Фиг. 4 представляет пример структурной схемы способа формирования задач антивирусной проверки.
Структурная схема способа формирования задач антивирусной проверки состоит из этапа 410, на котором выбирают объект контейнера, этапа 420, на котором формируют свертку, этапа 430, на котором вычисляют степень вредоносности и этапа 440, на котором формируют задачи антивирусной проверки.
На этапе 410 с помощью средство выборки 310 выбирают по меньшей мере один объект контейнера 105 из анализируемого контейнера 100.
В одном из вариантов реализации контейнеры 100 выбираются из совокупности контейнеров, представляющих собой по меньшей мере:
- обучающую выборку, содержащую безопасные и вредоносные контейнеры 100;
- совокупность контейнеров, предназначенных для проведения антивирусной проверки (определения вредоносности упомянутых контейнеров 100), при этом принадлежность упомянутых контейнеров 100 к безопасным или вредоносным контейнерам заранее неизвестно.
Например, обучающая выборка контейнеров может быть подготовлена аналитиками с целью обучения модели определения параметров 111 или модели обнаружения 131.
На этапе 420 с помощью средства формирования свертки 120 на основании выбранных объектов контейнера 105 формируют свертку.
В качестве свертки, сформированной на основании параметров объектов 105, выбранных на этапе 410, выступает многомерный вектор, каждому элементу которого ставится в соответствие свой параметр из совокупности определенных параметров, а значение упомянутого элемента соответствует количеству объектов 105, для которых был определен упомянутый параметр, и передаче сформированной свертки средству обучения модели обнаружения 130.
Алгоритм формирования свертки может быть выражен в математическом виде как:
где
с - сформированная свертка;
ei - база по i-ому параметру;
i
p - i-ый параметр;
p
n - количество определенных для объектов 105 параметров;
i
N(p) - количество объектов 105, для которых был определен i-ый параметр.
На этапе 430 с помощью средства анализа 320 вычисляют степень вредоносности анализируемого контейнера 100 на основании сформированной на этапе 420 свертки с помощью обученной модели обнаружения 131.
На этапе 440 с помощью средства формирования задач антивирусной проверки 330 определяют на основании вычисленной на этапе 430 степени вредоносности контейнера 100 параметры антивирусной проверки анализируемого контейнера 100, при этом параметры антивирусной проверки характеризуют выделяемые для выполнения в заданное время антивирусной проверки упомянутого контейнера 100 ресурсы вычислительной системы, на которой будет выполнена упомянутая антивирусная проверка.
Фиг. 5 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 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, представленного на Фиг. 5. В вычислительной сети могут присутствовать также и другие устройства, например, маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.
Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.
В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой.