Система и способ выявления вредоносных файлов с использованием модели обучения, обученной на одном вредоносном файле
SYSTEM AND METHOD OF DETECTING MALICIOUS FILES USING A TRAINING MODEL TRAINED ON ONE MALICIOUS FILE

Область техники
Изобретение относится к решениям для выявления вредоносных файлов, а более конкретно к системам и способам выявления вредоносных файлов с использованием модели обучения, обученной на одном вредоносном файле.
Уровень техники
В настоящее время растет количество вредоносного программного обеспечения (например, компьютерные вирусы, трояны, сетевые черви), направленного на причинение ущерба как данным пользователя, так и самому пользователю электронного устройства, зараженного вредоносным программным обеспечением. Ущерб может быть причинен повреждением или удалением файлов пользователя, использованием ресурсов вычислительного устройства пользователя для "добычи" (англ. mining) криптовалют, кражей конфиденциальных данных пользователя (переписки, изображений, логинов, паролей, данных банковских карт) и прочими действиями. Кроме того, вредоносное программное обеспечение постоянно изменяется, так как его авторы прибегают к новым способам атак и защиты от приложений безопасности. Используются различные механизмы, например, обфускация (другими словами приведение исходного текста или исполняемого кода программы к виду, сохраняющему ее функциональность, но затрудняющему анализ, понимание алгоритмов работы и модификацию при декомпиляции, например) вредоносного кода или использование механизмов противодействия эмуляции (например, вредоносное программное обеспечение наделено функциями распознавания того, что оно исполняется в эмуляторе, и не проявляет свою вредоносную активность).
Кроме того, зачастую вредоносное программное обеспечение не проявляет свою вредоносную активность сразу, вместо этого производит множество (порядка миллионов вызовов) вызовов API-функций, огромные циклы (порядка миллиардов итераций), приостанавливает свою работу на некоторое время сразу после запуска (например, на 1 час использованием функции «Sleep()»). Вычислительные устройства пользователя в настоящее время имеют высокую производительность, используют многоядерные процессоры (есть и многопроцессорные системы), поэтому пользователь может не увидеть или не придать значения загруженности одного из ядер. Кроме того, обычно пользователь пользуется устройством после включения более одного часа. Поэтому вредоносному программному обеспечению, если оно запустилось, нет необходимости сразу проявлять свою активность.
Также известны так называемые атаки типа «целевая атака» (англ. advanced persistent threat, APT). Такие атаки выполняются на организации и компании в целом, осуществляются на инфраструктуру посредством эксплуатации программных уязвимостей и методов «социальной инженерии». Известны случаи, когда такие атаки производилась с использованием нескольких простых приложений, которые не проявляли никакой вредоносной активности по отдельности, но по мере попадания в инфраструктуру атакуемой компании выполнялись совместно, в общем образуя вредоносный функционал и нанося вред атакуемой компании.
Для борьбы с упомянутыми подходами производителями приложений безопасности (например, антивирусных приложений) используются подходы с использованием виртуальных машин в виде изолированной среды для безопасного исполнения файлов. Зачастую такие виртуальные машины называются "песочницами" (от англ. sandbox). Гипервизоры, под управлением которых работают такие виртуальные машины, содержат механизмы перехвата функций, вызываемых исполняемыми в виртуальных машинах приложениями.
Стоит отметить, что приложения безопасности используют различные методы выявления вредоносного программного обеспечения, например, такие технологии, как сигнатурный и/или эвристический анализ. Если в процессе анализа вредоносность файла не была определена, он может быть передан приложением безопасности на анализ поведения в упомянутую виртуальную машину (например, если не имеет цифровой подписи доверенного производителя программного обеспечения). Затем переданный файл исполняется в виртуальной машине, в процессе исполнения происходит перехват его действий и событий, возникающих в результате вызовов различных функций, информация о перехваченных событиях и действиях сохраняется в журнал и в дальнейшем анализируется приложением безопасности или экспертом по информационной безопасности с целью выявления вредоносного программного обеспечения.
Кроме того, известны способы, использующие нейронные сети для выявления вредоносного программного обучения.
Так, в публикации US 9762593 описана система, которая использует машинное обучение для выявления вредоносного программного обеспечения. Система выделяет кластеры семейств вредоносного программного обеспечения, использует набор деревьев принятия решений и создает правила обнаружения, с помощью которой потенциально вредоносный файл может быть отнесен к какому-либо семейству вредоносного программного обеспечения.
В публикации US 8838992 описана система, которая обучается на известных безопасных и вредоносных файлах сценариев. После обучения система позволяет выявлять на вычислительном устройстве потенциально опасные файлы сценариев в случае, если они содержат вредоносное содержимое, и предоставлять их на более глубокий анализ удаленным системам.
Однако, упомянутые способы выявления вредоносного программного обеспечения не могут эффективно решить задачу выявления, когда известен только один редко изменяемый злоумышленниками файл (один образец файла), выявленный вредоносным. Зачастую (например, в случае APT атаки) такой файл может быть подписан доверенным сертификатом и выполняет действия, которые нельзя однозначно трактовать вредоносными. Например, открыть «.DOC» файл, закрыть, не изменяя его, отослать пакет данных или электронное письмо. Упомянутые действия вполне безопасны с точки зрения приложения безопасности (есть множество программ, которые умеют открывать текстовые файлы и отсылать сообщения и/или электронные письма), но в результате их выполнения возможна кража конфиденциальных данных из упомянутого открытого файла. На основании такого единственного файла необходимо выявлять другие вредоносные файлы, похожие по функционалу на упомянутый единственный файл. Кроме того, по косвенным признакам файла в случае описанной выше АРТ-атаки необходимо выявлять другие файлы, используемые для атаки.
Настоящее изобретение позволяет решать подобные задачи выявления вредоносных файлов с использованием модели обучения, обученной на одном вредоносном файле.
Сущность изобретения
Настоящее изобретение предназначено для выявления вредоносных файлов.
Технический результат настоящего изобретения заключается в выявлении вредоносных файлов с использованием модели обучения, обученной на одном вредоносном файле.
Другой технический результат заключается в уменьшении количества ложных срабатываний при выявлении вредоносных файлов за счет переобучения модели обучения, обученной одном вредоносном файле.
Согласно одному из вариантов реализации предоставляется система выявления вредоносных файлов с использованием нейронной сети, обученной на одном вредоносном файле, которая содержит: средство выбора, предназначенное по меньшей мере для: выбора одного вредоносного файла или частей вредоносного файла, вредоносность которого выявлена ранее, из коллекции вредоносных файлов; выбора набора безопасных файлов или набора частей безопасных файлов из коллекции безопасных файлов; передачи выбранных файлов или их частей средству обучения; средство обучения, предназначенное по меньшей мере для: выделения вектора признаков из вредоносного файла или частей вредоносного файла; выделения вектора признаков из каждого безопасного файла или частей безопасного файла; обучения нейронной сети, при этом на основании упомянутых выделенных векторов признаков вредоносного и безопасных файлов с использованием функции потерь выделяется вектор существенных признаков для выявления вредоносного файла; формирования правил обнаружения на основании вектора существенных признаков для выявления вредоносного файла; передачи обученной нейронной сети и правил обнаружения средству анализа; средство анализа, предназначенное по меньшей мере для: проверки неизвестных файлов с целью выявления вредоносных файлов с использованием упомянутых правил обнаружения и обученной нейронной сети, при этом для неизвестного файла с помощью обученной нейронной сети выделяются существенные признаки для выявления вредоносного файла; выявления неизвестного файла вредоносным в случае, если выполняется условия обнаружения по меньшей мере одного правила обнаружения вредоносного файла.
Согласно другому частному варианту реализации предоставляется система, в которой выбирают безопасные файлы по различным отдельным критериям и комбинациям критериев.
Согласно еще одному частному варианту реализации предоставляется система, в которой средство обучения изменяет функцию потерь перед обучением нейронной сети.
Согласно еще одному частному варианту реализации предоставляется система, в которой правило обнаружения содержит по меньшей мере одно условие обнаружения.
Согласно еще одному частному варианту реализации предоставляется система, в которой условие обнаружения дополнительно использует по меньшей мере один из признаков, содержащийся в векторе признаков безопасного файла.
Согласно еще одному частному варианту реализации предоставляется система, в которой средство анализа дополнительно проверяет неизвестный файл, выявленный вредоносным.
Согласно еще одному частному варианту реализации предоставляется система, в которой средство анализа инициирует изменение функции потерь и переобучение нейронной сети средством обучения в случае, если неизвестный файл, выявленный с использованием обученной нейронной сети вредоносным, является безопасным.
Согласно еще одному частному варианту реализации предоставляется способ выявления вредоносных файлов с использованием нейронной сети, обученной на одном вредоносном файле, содержащий этапы, на которых: выбирают с помощью средства выбора один вредоносный файл из коллекции вредоносных файлов или части вредоносного файла и набор безопасных файлов из коллекции безопасных файлов или набор частей безопасных файлов; выделяют с помощью средства обучения вектор признаков из вредоносного файла или частей вредоносного файла и вектор признаков из каждого безопасного файла или частей безопасного файла; обучают с помощью средства обучения нейронную сеть, при этом на основании упомянутых выделенных векторов признаков вредоносного и безопасных файлов с использованием функции потерь выделяется вектор существенных признаков для выявления вредоносного файла; выделяют с помощью средства обучения правила обнаружения на основании вектора существенных признаков для выявления вредоносного файла; проверяют с помощью средства анализа неизвестные файлы с целью выявления вредоносных файлов с использованием упомянутых правил обнаружения и обученной нейронной сети, при этом для неизвестного файла с помощью обученной нейронной сети выделяются существенные признаки для выявления вредоносного файла; выявляют с помощью средства анализа неизвестный файл вредоносным в случае, если выполняются условия обнаружения по меньшей мере одного правила обнаружения вредоносного файла.
Согласно еще одному частному варианту реализации предоставляется способ, в котором выбирают безопасные файлы по различным отдельным критериям и комбинациям критериев.
Согласно еще одному частному варианту реализации предоставляется способ, в которой средство обучения изменяет функцию потерь перед обучением нейронной сети.
Согласно еще одному частному варианту реализации предоставляется способ, в котором правило обнаружения содержит по меньшей мере одно условие обнаружения.
Согласно еще одному частному варианту реализации предоставляется способ, в котором условие обнаружения дополнительно использует по меньшей мере один из признаков, содержащийся в векторе признаков безопасного файла.
Согласно еще одному частному варианту реализации предоставляется способ, в котором средство анализа дополнительно проверяет неизвестный файл, выявленный вредоносным.
Согласно еще одному частному варианту реализации предоставляется способ, в котором средство анализа инициирует изменение функции потерь и переобучение нейронной сети средством обучения в случае, если неизвестный файл, выявленный с использованием обученной нейронной сети вредоносным, является безопасным.
Краткое описание чертежей
Дополнительные цели, признаки и преимущества настоящего изобретения будут очевидными из прочтения последующего описания осуществления изобретения со ссылкой на прилагаемые чертежи, на которых:
Фиг. 1 отображает структуру системы выявления вредоносных файлов на основании одного вредоносного файла.
Фиг. 2 отображает способ выявления уязвимостей с использованием перехвата вызовов функций.
Фиг. 3 отображает структуру способа выявления вредоносных файлов на основании одного вредоносного образца.
Фиг. 4 представляет пример компьютерной системы общего назначения, на которой может быть реализовано настоящее изобретение.
Описание вариантов осуществления изобретения
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, обеспеченными для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется только в объеме приложенной формулы.
Под средствами системы в настоящем изобретении понимаются реальные устройства, системы, компоненты, группы компонентов, реализованные с использованием аппаратных средств, таких как интегральные микросхемы (англ. application-specific integrated circuit, ASIC) или программируемые вентильные матрицы (англ. field-programmable gate array, FPGA) или, например, в виде комбинации программных и аппаратных средств, таких как микропроцессорная система и набор программных инструкций, а также на нейроморфных чипах (англ. neurosynaptic chips) Функциональность указанных средств системы может быть реализована исключительно аппаратными средствами, а также в виде комбинации, где часть функциональности средств системы реализована программными средствами, а часть аппаратными. В некоторых вариантах реализации часть средств, или все средства, могут быть исполнены на процессоре компьютера общего назначения (например, который изображен на Фиг. 4). При этом компоненты (каждое из средств) системы могут быть реализованы в рамках как одного вычислительного устройства, так и разнесены между несколькими, связанными между собой вычислительными устройствами.
Фиг. 1 отображает структуру системы выявления вредоносных файлов на основании одного вредоносного файла.
Система выявления вредоносных файлов на основании одного файла состоит из средства выбора 110, средства обучения 120, средства анализа 130.
В общем случае средство выбора 110 исполняется на удаленном сервере или в качестве облачного сервиса. Средство выбора 110 выбирает из коллекции вредоносных файлов один вредоносный файл 160. Выбранный файл в общем случае является образцом, на основании которого в результате работы настоящей системы другие файлы могут быть признаны вредоносными. Коллекция вредоносных файлов - набор файлов, которые были признаны вредоносными ранее. В одном из вариантов реализации упомянутые файлы признаны вредоносными средством анализа 130. В другом варианте реализации упомянутые файлы признаны вредоносными специалистом по информационной безопасности. Вредоносность в общем случае может быть выявлена известными из уровня техники способами (например, эвристическим или сигнатурным анализом). В одном из вариантов реализации средство выбора 110 выбирает не вредоносный файл целиком, а его отдельные части, одну или более. Например, выбираются части файла, содержащие только исполняемый или текстовый (в случае файла-сценария) код; части, не содержащие ресурсов (изображений, строк); части, не содержащие обфусцированный код, добавленный злоумышленниками.
Кроме того, средство выбора 110 выбирает из коллекции безопасных файлов по меньшей мере два файла. Безопасные файлы - файлы, не признанные вредоносными (специалистом по информационной безопасности или средством анализа 130). В одном из вариантов реализации может быть выбрана вся коллекция. В другом варианте реализации могут быть выбраны файлы по различным отдельным критериям и комбинациям критериев как выбранного вредоносного файла, так и безопасных файлов. Например, выбираются безопасные текстовые файлы-сценарии (того же типа, как у выбранного вредоносного файла), распространенность которых на компьютерах пользователей - более 10000 копий, а размер файлов - менее 4 килобайт. В одном из вариантов реализации средство выбора 110 выбирает не безопасный файл целиком, а его части по аналогии с упомянутым выше.
В общем случае реализации коллекции вредоносных и безопасных файлов хранятся в базе данных 190.
В одном из вариантов реализации результатом выбора файлов (вредоносного и безопасных) могут быть идентификаторы этих файлов в коллекциях.
В общем случае выбранные файлы, или их части, или их идентификаторы средство выбора 110 передает средству обучения 120.
Средство обучения 120 формирует (создает) на основании методов машинного обучения модель обучения, использующую нейронную сеть (далее по тексту обученная нейронная сеть). В общем случае используются известные из уровня техники методы машинного обучения. При этом средство обучения 120 выбирает по меньшей мере следующие параметры нейронной сети: количество слоев, количество нейронов в слоях, функцию потерь. В частном варианте реализации средство обучения 120 дополнительно выбирает коэффициенты связей между нейронами (веса), коэффициенты функции потерь.
В частном случае используется известный метод обратного распространения ошибки (англ. back propagation. Упомянутый метод машинного обучения представляет собой итеративный градиентный алгоритм, особенностью которого является минимизации ошибки работы многослойной нейронной сети.
Общий случай работы средства обучения представлен на Фиг. 2.
in
Средство обучения 120 формирует вектор p[N] 220, содержащий N признаков, выделенных из вредоносного файла 160 или его частей. Признаки вредоносного файла 160 в одном из вариантов реализации выделяются из метаданных вредоносного файла 160 (например, размер, время создания и/или изменения, атрибуты, права доступа). В другом варианте реализации признаки выделяются на основании денных вредоносного файла 160, при этом выполняется анализ содержимого вредоносного файла 160. Например, наличие сертификата, последовательность байт, вызов какой-либо функции в коде.
out
Результатом работы обученной нейронной сети 140 в общем случае является сформированный вектор результирующих признаков p[Q] 240, содержащий Q результирующих признаков.
out
В частном случае для решения задачи выявления вредоносного файла вектор результирующих признаков p[1] 240 имеет размерность 1 и содержит численное значение - коэффициент вредоносности. Коэффициент вредоносности характеризует вероятность того, что файл окажется вредоносным (например, от 0 до 1), чем коэффициент вредоносности выше, тем выше эта вероятность.
K×K
in
in
out
out
Задача определения коэффициента вредоносности файла с использованием обученной нейронной сети 140 сводится к решению системы уравнений из K неизвестных, которое может быть математически представлено как перемножение матриц M. Нейронная сеть 230 содержит по меньшей мере 3 слоя (два внешних и один скрытый). На первом (входящем) внешнем слое происходит преобразование (развертки) вектора признаков вредоносного файла p 220 в матрицу слоя нейронной сети M. На последнем (выходящем) внешнем слое происходит отображение матрицы нейронной сети M в вектор результирующих признаков p 240.
Где:
- отображение вектора в внешний первый слой;
- отображение первого слоя во внешний внутренний и из внутреннего в последний;
- отображение внешнего последнего слоя в вектор;
- отображение внутренних слоев от первого к последнему, при этом верна абстракция:
i
т.е. при использовании обученной модели внутренний слой один, но при обучении упомянутой модели внутренний слой может представлять совокупность слоев, каждый из которых характеризуется своей матрицей M, элементы (коэффициенты) которой могут быть скорректированы.
out
Задача обучения нейронной сети 230 в общем случае сводится к определению количественного вклада каждого из признаков вредоносного файла 160 в формирование вектора результирующих признаков p 240, по результатам которого в частном случае также дополнительно определяется:
i
i
in
out
i
out
in
- пороговое значение вклада каждого ζ признака из совокупности признаков {ζ} вредоносного файла p в вектор результирующих признаков p, ниже которого считается, что i-ый признак ζ вредоносного файла оказывает минимальное влияние на вектор результирующих признаков p и может быть при последующем анализе файлов исключен из используемого нейронной сетью вектора признаков вредоносного файла p;
out
out
out
- диапазон значений результирующих признаков, нахождение в котором относит файл к вредоносным min(p)>p>max(p),
out
i
in
i
p(ζ)=ƒ(p({ζ}))
i
где {ζ} - совокупность признаков файла, на основании которых формируется вектор.
Более подробно:
Из выделенных N признаков вредоносного файла 160 в процессе обучения определяются М признаков вредоносных файлов, оказывающих существенное влияние на результат выявления вредоносного файла 160 (существенные признаки вредоносного файла 160).
Остальные О=M-N признаков вредоносных файлов 160 считаются несущественными признаками, влияние которых на выявление вредоносного файла 160 минимально, а использование упомянутых признаков в значительной мере лишь расходует вычислительные ресурсы без существенного улучшения результата, и исключаются из дальнейшего анализа.
in
N×N
Изначально допускается, что М=N, все признаки поступают во входной слой нейронной сети 230. Входной слой преобразует вектор признаков p в матрицу M.
Скрытые слои (в частном случае достаточно одного внутреннего слоя, а в общем количество скрытых слоев неограниченно) в зависимости функции потерь выявляют закономерности и связи нейронов для обнаружения вредоносного файла.
out
Выходной слой формирует результат работы нейронной сети 230, представляющий собой вектор результирующих признаков p, в частном случае формирует упомянутый коэффициент вредоносности.
В одном из вариантов реализации средство обучения 120 выбирает функцию потерь, например, на основании метода градиента ошибки функции потерь (известен из уровня техники). Обучение нейронной сети 230 происходит после выбора функции потерь.
Из каждого выбранного безопасного файла 180 или его частей средство обучения 120 также выделяет вектор N признаков 220 и передает их начальному входному слою обучаемой нейронной сети.
В результате обучения выделяются несущественные для выявления вредоносного файла 160 признаки О. Количество существенных признаков М становится меньше N (M<N), что уменьшает размер матриц [М, М] и уменьшает время вычислений в нейронной сети 230.
При этом безопасный файл 180 не должен быть выявлен вредоносным (например, коэффициент вредоносности для безопасного файла не должен превышать пороговое значение). В случае, если безопасный файл 180 выявлен вредоносным (происходит ложное срабатывание), средство обучения 120 выбирает другую функцию потерь и производит переобучение нейронной сети 230.
В результате вышеописанных действий средством обучения 120 формируется обученная (в одном из вариантов реализации переобученная) нейронная сеть 140. В общем случае обученная нейронная сеть 140 имеет компактное описание по сравнению с необученной (матрица [М, М] меньше матрицы [N, N]), при этом она содержит только закономерности и связи нейронов для обнаружения вредоносного программного обеспечения (выбранного средством выбора 110 вредоносного файла 160).
В одном из вариантов реализации средство обучения 120 формирует правила обнаружения 250 вредоносного файла 160 на основании вектора результирующих признаков 240, при этом правило обнаружения 250 содержит по меньшей мере одно условие обнаружения. Как было упомянуто ранее, вектор результирующих признаков 240 может иметь размерность [1]. В общем случае правило обнаружения 250 (даже для одномерного вектора результирующих признаков 240) может содержать несколько условий обнаружения. Например, если коэффициент вредоносности больше 0.9, то следует считать файл вредоносным. Но если коэффициент вредоносности больше 0.6, но менее 0.9, следует провести дополнительную проверку. В еще одном из вариантов реализации правило выявления 250 использует дополнительно по меньшей мере один из признаков, содержащихся в векторе признаков 220. Например, если тип файла «исполняемый» и коэффициент вредоносности более 0.8, то следует считать файл вредоносным. Если коэффициент вредоносности менее 0.5 и тип файла «текстовый» (например, файл сценариев), то следует считать такой файл безопасным. Таким образом, в результате обучения нейронной сети 230 средство обучения 120 формирует обученную нейронную сеть 140 и правила обнаружения 250.
В частном варианте реализации обученные нейронные сети 140 и правила обнаружения 250 могут быть сохранены средством обучения 120 в базе данных 190.
В общем случае средство обучения 120 передает обученную нейронную сеть 140 и правила обнаружения 250 средству анализа 130.
Средство анализа 130 в общем случае выполняется и на вычислительных устройствах пользователей 150. В частном варианте реализации средство анализа 130 выполняется на сервере. Средство анализа 130 выполняет проверку на вредоносность неизвестных файлов 170 с использованием обученной нейронной сети 140 и правил обнаружения 250. В общем случае, если в результате формирования средством анализа 130 вектора результирующих признаков 240 неизвестного файла 170 выполняются условия обнаружения вредоносного файла, содержащиеся в правиле обнаружения 250, неизвестный файл 170 признается вредоносным. В одном из вариантов реализации средство анализа 130 дополнительно проверяет неизвестный файл 170 на вредоносность с использованием известных из уровня техники способов. В случае, если неизвестный файл 170 был признан вредоносным с использованием обученной нейронной сети 140 и правил обнаружения 250, а с использованием известных из уровня техники способов неизвестный файл 170 является безопасным (например, имеет цифровой сертификат, выданный доверенным центром сертификации, или находится в белом списке, или признан безопасным с участием специалиста по информационной безопасности), выявляется ложное срабатывание обученной нейронной сети 140 и правил обнаружения 250. В этом случае файл, на котором было выявлено ложное срабатывание 175, добавляется средством анализа 130 в выборку безопасных файлов 180, выбранную средством выбора 110. После этого средство анализа 130 инициирует процесс выбора функции потерь и переобучения нейронной сети 230 средством обучения 120 с учетом добавленного в выборку безопасных файлов файла, на котором было выявлено ложное срабатывание 175.
В одном из вариантов реализации средство анализа 130 дополнительно производит проверку других вредоносных файлов 160. В случае, если с использованием обученной нейронной сети 140 и правил обнаружения средство анализа 130 выявляет другой вредоносный файл вредоносным, нейронная сеть, обученная для обнаружения другого вредоносного файла, может быть исключена из набора обученных нейронных сетей 140 для выявления вредоносных файлов.
Фиг. 3 отображает структуру способа выявления вредоносных файлов на основании одного вредоносного файла.
На этапе 310 с помощью средства 110 выбирают из коллекции вредоносных файлов один вредоносный файл (образец). Коллекция вредоносных файлов - набор файлов, вредоносность которых была выявлена ранее. В другом варианте реализации вредоносность файла выявлена специалистом по информационной безопасности. Вредоносность в общем случае может быть выявлена известными из уровня техники способами (например, эвристическим или сигнатурным анализом). В одном из вариантов реализации средство выбора 110 выбирает не вредоносный файл целиком, а его отдельные части, одну или более.
На этапе 315 с помощью средства выбора 110 выбирают из коллекции безопасных файлов по меньшей мере два файла. Безопасные файлы - файлы, которые в результате проверки на вредоносность не были выявлены, как вредоносные. В одном из вариантов реализации может быть выбрана вся коллекция. В другом варианте реализации могут быть выбраны файлы по различным отдельным критериям и комбинациям критериев. В одном из вариантов реализации результатом выбора файлов (вредоносного и безопасных) могут быть идентификаторы этих файлов в коллекциях. В одном из вариантов реализации средство выбора 110 выбирает не безопасный файл целиком, а его части.
На этапе 320 с помощью средства обучения 120 формируют (создают) модель обучения, использующую нейронную сеть. В общем случае при этом выбирают или изменяют по меньшей мере следующие параметры нейронной сети: количество слоев, количество нейронов в слоях, функцию потерь. В частном варианте реализации дополнительно выбирают коэффициенты связей между нейронами (веса), коэффициенты функции потерь.
В общем случае используются известные из уровня техники методы машинного обучения. В частном случае используется известный метод обратного распространения ошибки. Скрытые слои в зависимости функции потерь выявляют закономерности и связи нейронов для обнаружения вредоносного файла. В частном случае функцию потерь выбирают на основании метода градиента ошибки функции потерь.
На этапе 330 с помощью средства обучения 120 обучают модель с использованием выбранных файлов (процесс обучения подробно изображен на Фиг. 2) или их частей. Средство обучения 120 формирует вектор 220, содержащий N признаков, выделенных из вредоносного файла 160 или его частей. Из выделенных N признаков вредоносного файла 160 в процессе обучения определяются М признаков вредоносных файлов, оказывающих существенное влияние на результат выявления вредоносного файла 160 (существенные признаки вредоносного файла 160). В процессе обучения для каждого выбранного безопасного файла 180 или его частей средство обучения 120 также выделяет вектор N признаков 220 и передает их начальному входному слою обучаемой нейронной сети. В результате обучения выделяются несущественные для обнаружения вредоносного файла 160 признаки О. Количество существенных признаков М становится меньше N.
На этапе 335 с помощью средства обучения 120 проверяют безопасные файлы, выбранные средством выбора 110, на вредоносность. В случае, если безопасный файл 180 выявлен вредоносным (произошло ложное срабатывание), средство обучения 120 формирует (изменяет) модель обучения, использующую нейронную сеть, например, выбирая другую функцию потерь, возвращаясь на этап 320, и производит переобучение нейронной сети 230.
На этапе 340 после обучения нейронной сети с помощью средства обучения 120 формируют правила обнаружения 250 вредоносного файла 160 на основании вектора результирующих признаков 240, при этом правило обнаружения 250 содержит по меньшей мере одно условие выявления. Как было упомянуто ранее, вектор результирующих признаков 240 может иметь размерность [1]. В общем случае правило обнаружения 250 (даже для одномерного вектора результирующих признаков 240) может содержать несколько условий обнаружения. В еще одном из вариантов реализации правило выявления 250 использует дополнительно по меньшей мере один из признаков, содержащихся в векторе признаков 220.
На этапе 350 с помощью средства анализа 130 выполняют проверку на вредоносность неизвестных файлов 170 с использованием обученной нейронной сети 140 и правил обнаружения 250.
На этапе 355 в случае, если в результате формирования средством анализа 130 вектора результирующих признаков 240 неизвестного файла 170 выполняются условия обнаружения вредоносного файла, содержащиеся в правиле обнаружения 250, неизвестный файл 170 на этапе 360 признается вредоносным.
В одном из вариантов реализации на этапе 365 с помощью средства анализа 130 дополнительно проверяют (анализируют) неизвестный файл 170 на вредоносность с использованием известных из уровня техники способов. В случае, если неизвестный файл 170 был признан вредоносным с использованием обученной нейронной сети 140 и правил обнаружения 250, а с использованием известных из уровня техники способов неизвестный файл 170 является безопасным, на этапе 370 выявляют ложное срабатывание обученной нейронной сети 140 и правил обнаружения 250. В этом случае на этапе 375 файл, на котором было выявлено ложное срабатывание 175, добавляют с использованием средства анализа 130 в выборку безопасных файлов 180, выбранную средством выбора 110. После с помощью средства анализа 130 инициируют этап 320 формирования модели обучения, использующей нейронную сеть, и этап 330 переобучения нейронной сети 230 средством обучения 120 с учетом добавленного в выборку безопасных файлов файла, на котором было выявлено ложное срабатывание 175.
Фиг. 4 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 20, содержащий центральный процессор 21, системную память 22 и системную шину 23, которая содержит разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована, как любая известная из уровня техники шинная структура, содержащая в свою очередь память шины или контроллер памяти шины, периферийную шину и локальную шину, которая способна взаимодействовать с любой другой шинной архитектурой. Системная память содержит постоянное запоминающее устройство (ПЗУ) 24, память с произвольным доступом (ОЗУ) 25. Основная система ввода/вывода (BIOS) 26, содержит основные процедуры, которые обеспечивают передачу информации между элементами персонального компьютера 20, например, в момент загрузки операционной системы с использованием ПЗУ 24.
Персональный компьютер 20 в свою очередь содержит жесткий диск 27 для чтения и записи данных, привод магнитных дисков 28 для чтения и записи на сменные магнитные диски 29 и оптический привод 30 для чтения и записи на сменные оптические диски 31, такие как CD-ROM, DVD-ROM и иные оптические носители информации. Жесткий диск 27, привод магнитных дисков 28, оптический привод 30 соединены с системной шиной 23 через интерфейс жесткого диска 32, интерфейс магнитных дисков 33 и интерфейс оптического привода 34 соответственно. Приводы и соответствующие компьютерные носители информации представляют собой энергонезависимые средства хранения компьютерных инструкций, структур данных, программных модулей и прочих данных персонального компьютера 20.
Настоящее описание раскрывает реализацию системы, которая использует жесткий диск 27, сменный магнитный диск 29 и сменный оптический диск 31, но следует понимать, что возможно применение иных типов компьютерных носителей информации 56, которые способны хранить данные в доступной для чтения компьютером форме (твердотельные накопители, флеш карты памяти, цифровые диски, память с произвольным доступом (ОЗУ) и т.п.), которые подключены к системной шине 23 через контроллер 55.
Компьютер 20 имеет файловую систему 36, где хранится записанная операционная система 35, а также дополнительные программные приложения 37, другие программные модули 38 и данные программ 39. Пользователь имеет возможность вводить команды и информацию в персональный компьютер 20 посредством устройств ввода (клавиатуры 40, манипулятора «мышь» 42). Могут использоваться другие устройства ввода (не отображены): микрофон, джойстик, игровая консоль, сканнер и т.п. Подобные устройства ввода по своему обычаю подключают к компьютерной системе 20 через последовательный порт 46, который в свою очередь подсоединен к системной шине, но могут быть подключены иным способом, например, при помощи параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 47 или иной тип устройства отображения также подсоединен к системной шине 23 через интерфейс, такой как видеоадаптер 48. В дополнение к монитору 47, персональный компьютер может быть оснащен другими периферийными устройствами вывода (не отображены), например, колонками, принтером и т.п.
Персональный компьютер 20 способен работать в сетевом окружении, при этом используется сетевое соединение с другим или несколькими удаленными компьютерами 49. Удаленный компьютер (или компьютеры) 49 являются такими же персональными компьютерами или серверами, которые имеют большинство или все упомянутые элементы, отмеченные ранее при описании существа персонального компьютера 20, представленного на Фиг. 4. В вычислительной сети могут присутствовать также и другие устройства, например, маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.
Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.
В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой. Специалисту в данной области становится понятным, что могут существовать и другие варианты осуществления настоящего изобретения, согласующиеся с сущностью и объемом настоящего изобретения.