СПОСОБ И СИСТЕМА ВЫЯВЛЕНИЯ ОБФУСЦИРОВАННЫХ ВРЕДОНОСНЫХ КОМАНД В СИСТЕМНОЙ КОНСОЛИ ОПЕРАЦИОННОЙ СИСТЕМЫ Российский патент 2025 года по МПК G06F21/56 G06F12/14 

Описание патента на изобретение RU2838483C1

ОБЛАСТЬ ТЕХНИКИ

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

УРОВЕНЬ ТЕХНИКИ

[0002] С развитием информационных технологий IT-решения («information technology» - информационные технологии) стали оказывать существенное влияние на все сферы и отрасли жизнедеятельности. В настоящее время различные компании и организации активно внедряют и используют в своей структуре IТ-решения.

[0003] Обеспечение непрерывного функционирования и доступности инфраструктуры, а также безопасности данных и предотвращение несанкционированного доступа к инфраструктуре для крупных финансовых организаций (например, банков) всегда трудоемкий и кропотливый труд. Для этого, в частности, необходимо обеспечивать своевременное обнаружение и реагирование на запуск вредоносных команд и скриптов в системной консоли пользовательских компьютеров и серверов организации. Кроме того, с целью усложнения их обнаружения средствами мониторинга и защиты инфраструктуры организации к таким командам могут быть применены различные методы обфускации. Ручной анализ фактов ввода и исполнения в системной консоли обфусцированных вредоносных команд в масштабах даже маленькой организации крайне трудоемкий, а также не исключает ошибки человеческого фактора.

[0004] Из уровня техники известен патент KR 101027928 Bl "Apparatus and method for detecting obfuscated web page", патентообладатель: KOREA ELECTRONICS TELECOMM, опубл. 12.04.2011. В данном решении описывается устройство для поиска обфусцированных вредоносных веб сайтов и обфусцированного вредоносного кода.

[0005] Недостатком известных решений в данной области техники является отсутствие возможности автоматизированного выявления обфусцированных вредоносных команд в системной консоли ОС.

РАСКРЫТИЕ ИЗОБРЕТЕНИЯ

[0006] В заявленном техническом решении предлагается новый подход к выявлению обфусцированных вредоносных команд в системной консоли операционной системы (ОС). В данном решении используется алгоритм машинного обучения, который позволяет автоматизировать процесс выявления обфусцированных вредоносных команд в системной консоли ОС и значительно ускорить процесс их выявления.

[0007] Под обфусцированными вредоносными командами подразумевается набор команд или скриптов, (методы, классы, функции, функциональные блоки, строки, слова, переменные), часть программного кода программного обеспечения или иного вида вычислительных программ. Скрипт, или сценарий, - это набор команд, то есть строк кода, которые выполняют конкретную задачу. Это набор команд, в которых прописана некоторая последовательность действий. Все данные действия выполняются в автоматическом режиме.

[0008] Таким образом, решается техническая проблема автоматизированного выявления обфусцированных вредоносных команд, исполняемых в системной консоли ОС.

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

[0010] Указанный технический результат достигается благодаря осуществлению компьютерно-реализуемого способа выявления обфусцированных вредоносных команд в системной консоли ОС, выполняемый с помощью по меньшей мере одного процессора и содержащий этапы, на которых:

- получают данные об исполняемых командах в системной консоли ОС;

- представляют команды, как наборы категориальных переменных;

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

- получают представление команд в виде числового вектора;

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

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

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

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

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

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

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

- выявляют на основе предыдущего этапа обфусцированные вредоносные команды.

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

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

[0013] В другом частном варианте реализации способа выделение шаблонов и поиск категориальных переменных в командах выполняется после разбиения команды на части, содержащие логические единицы команды (путь, параметр, значение).

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

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

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

[0017] Кроме того, заявленный технический результат достигается за счет системы выявления вредоносных команд в операционной системе, содержащей:

- по меньшей мере один процессор;

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

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

[0018] Фиг. 1 иллюстрирует блок-схему заявленного способа.

[0019] Фиг. 2 иллюстрирует пример пошаговой работы классифицирующей модели машинного обучения.

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

ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ

[0001] Ниже будут описаны понятия и термины, необходимые для понимания данного технического решения.

[0002] Модель в машинном обучении (МО) - совокупность методов искусственного интеллекта, характерной чертой которых является не прямое решение задачи, а обучение в процессе применения решений множества сходных задач.

[0003] Системная консоль - среда или оболочка для исполнения команд или скриптов (например, PowerShell) с целью управления настройками ОС, управления службами и процессами, функциями настройки ролей и компонентов компьютера или сервера, управления установленным ПО через специальные интерфейсы, функциями встраивания исполняемых компонентов в сторонние программы, функциями работы с файловой системой и реестром ОС и т.д.

[0004] Обфускация - приведение исходного кода или исполняемого кода программы к виду, сохраняющему ее функциональность, но затрудняющему анализ, понимание алгоритмов работы и модификацию при декомпиляции.

[0005] F-1 мера представляет собой совместную оценку точности и полноты.

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

[0007] Матрица ошибок - это способ разбить классифицируемые объекты на четыре категории в зависимости от комбинации реального класса и ответа классификатора.

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

[0009] Техническое решение может быть реализовано в виде распределенной компьютерной системы.

[0010] В данном решении под системой подразумевается компьютерная система, ЭВМ (электронно-вычислительная машина), ЧПУ (числовое программное управление), ПЛК (программируемый логический контроллер), компьютеризированные системы управления и любые другие устройства, способные выполнять заданную, четко определенную последовательность вычислительных операций (действий, инструкций).

[ООП] Под устройством обработки команд подразумевается электронный блок либо интегральная схема (микропроцессор), исполняющая машинные инструкции (программы).

[0012] Устройство обработки команд считывает и выполняет машинные инструкции (программы) с одного или более устройства хранения данных, например, таких устройств, как оперативно запоминающие устройства (ОЗУ) и/или постоянные запоминающие устройства (ПЗУ). В качестве ПЗУ могут выступать, но, не ограничиваясь, жесткие диски (HDD), флеш-память, твердотельные накопители (SSD), оптические носители данных (CD, DVD, BD, MD и т.п.) и др.

[0013] Программа - последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины или устройством обработки команд.

[0014] Как показано на Фиг. 1 компьютерно-реализуемый способ выявления обфусцированных вредоносных команд в системной консоли операционной системы (ОС) (100) состоит из нескольких этапов, выполняемых по меньшей мере одним процессором.

[0015] На этапе (101) получают данные об исполняемых командах в ОС, содержащих имя исполняемой команды, папку или каталог его нахождения в ОС (Windows или Linux), параметры и их значения, передаваемые команде при запуске.

[0016] Всего было доступно заранее размеченных:

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

около 105700 примеров легитимных команд, собранных из различных источников, в том числе и открытых.

[0017] В одном из вариантов изобретения набор был дополнен аугментациями обфусцированных вредоносных команд и скриптови/или легитимных примеров. Аугментации проводились случайными перестановками параметров (флагов) команд и изменениями значений параметров.

[0018] Также набор может быть дополнен аугментациями обфусцированных вредоносных команд и скриптови/или легитимных примеров на основании увеличения (Oversampling) исходной выборки некоторого класса. Могут применяться такие методики как RandomOverSampler, случайное дублирование семплов и др.

[0019] В другом из вариантов изобретения набор был дополнен аугментациями обфусцированных вредоносных команд и скриптови/или легитимных примеров на основании уменьшения (Undersampling) исходной выборки некоторого класса. Применялись такие методики как: случайное исключение семплов RandomUnderSampler, NearMiss, EditedNearestNeighbours, RepeatedEditedNearestNeighbours, CondensedNearestNeighbour, OneSidedSelection, NeighbourhoodCleaningRule,

InstanceHardnessThreshold и др.

[0020] В другом из вариантов изобретения набор был дополнен аугментациями обфусцированных вредоносных команд и скриптови/или легитимных примеров на основании генерации новых семплов по исходной выборке некоторого класса. Применялись такие методики как: SMOTE (Synthetic Minority Over-sampling Technique), ADASYN (Adaptive Synthetic Sampling), наследуемые методы: BorderlineSMOTE, SVMSMOTE, KMeansSMOTE, SMOTEENN, SMOTETomek, TomekLinks, методы на основе генеративных нейронных сетей: GAN, WCGAN (Wasserstein conditional generative adversarial network), WCGAN-GP (Wasserstein conditional generative adversarial network with gradient penalty) и др.

[0021] В одном из вариантов изобретения набор был дополнен аугментациями обфусцированных вредоносных команд и скриптови/или легитимных примеров на основании комбинации всех методов.

[0022] Далее на этапе (102) представляют команды, как наборы категориальных переменных. На данном этапе каждый символ представляется как самостоятельная категориальная переменная. В данном случае каждая позиция в команде рассматривается как категориальная переменная. Каждая такая переменная на каждой позиции может реализоваться как одно и только одно значение данной переменной. При этом данная переменная не является числом или числовым вектором, а является именно категорией на позиции. Это категория может задаваться строковым значением или любым иным способом.

[0023] В одном из вариантов изобретения на этапе (102) перед подсчетом появления категориальных переменных в команде осуществляется перекодирование исходной кодировки команды в одну конкретную кодировку, например, UTF-8. Исходная команда может быть закодирована, по меньшей мере один раз, в форматах Basel6, Base32, Base64, Base85, UTF-16, UTF-32, UTF-16BE, UTF-32BE, UTF-16LE, UTF-32LE и др. Данная кодировка, в том числе и неоднократная, переводится в выбранный формат UTF-8. Подсчет категориальных переменных осуществляется в выбранной кодировке UTF-8.

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

[0025] В одном из вариантов изобретения в качестве категориальных переменных представляются n-skip-m-граммы символов.

[0026] В одном из вариантов изобретения в качестве категориальных переменных представляются n-skip-m-граммы логических слов в команде.

[0027] В одном из вариантов изобретения с помощью итеративного алгоритма команды и скрипты разбиваются на подстроки, содержащие логическую единицу команды и скрипта (параметры, значения и др.). Данные логические единицы и/или их n-skip-m-граммы представляются в качестве категориальных переменных.

[0028] Далее на этапе (103) осуществляют подсчет появления категориальных переменных в команде.

[0029] Далее на этапе (104) получают представления команды в виде числового вектора. На данном этапе на основе подсчета появления категориальных переменных в команде получают представления в виде числового вектора.

[0030] В одном из вариантов изобретения на этапе (104) в качестве метода получения числового вектора применялся метод векторизации TF-IDF (term-frequency times inverse document-frequency). Векторизатор обучался на обучающей выборке с/без использования стоп-слов (stop_words=None), с/без использования IDF, использовались n-skip-m-граммы категориальных переменных.

[0031] В одном из вариантов изобретения на этапе (104) в качестве метода получения числового вектора команды и скрипте применялся метод векторного представления категориальных переменных - «Embedding». Для получения Embedding типов могут быть использованы такие технологии как нейронные сети: Полносвязанные, Рекуррентные, Сверточные, Трансформеры. Или использоваться предобученные вектора: Word2Vec, Glove, FastText и др.

[0032] В одном из частных вариантов изобретения производится получение векторного вида (эмбединга) каждой категориальной переменной, в том числе и контекстуализированного (например, на основе нейронных сетей рекуррентных, трансформеров, сетей со слоем самовнимания (self-attention), взвешивания с соседними эмбедингами). Далее производится усреднение эмбедингов категориальных переменных, выбор максимального значения среди каждого параметра эмбединга.

[0033] В одном из частных вариантов изобретения последовательность эмбедингов категориальных переменных подается на нейронную сеть со сверточными слоями, такими как Convld Conv2d, Conv3d, ConvTransposeld, ConvTranspose2d, ConvTranspose3d, LazyConvld, LazyConv2d, LazyConv3d, LazyConvTransposeld, LazyConvTranspose2d, LazyConvTranspose3d, Unfold, Fold. Далее, в одном из частных вариантов изобретения идет 1 или более слой пудинга: MaxPoolld, MaxPool2d, MaxPool3d, MaxUnpoolld, MaxUnpool2d, MaxUnpool3d, AvgPoolld, AvgPool2d, AvgPool3d, FractionalMaxPool2d, FractionalMaxPool3d, LPPoolld, LPPool2d, AdaptiveMaxPoolld, AdaptiveMaxPool2d, AdaptiveMaxPool3d, AdaptiveAvgPoolld, AdaptiveAvgPool2d, AdaptiveAvgPooBd.

[0034] В одном из частных вариантов изобретения для получения векторного представления команды в виде последовательности категориальных переменных используются предобученные нейронные сети, такие как DistilBERT: smaller, faster, cheaper, lighter; ALBERT (Lite BERT Google); TinyBERT; T-NLG (Turing Natural Language Generation); USE (Universal Sentence Encoder); ELMo (Embeddings from Language Models), T5, GPT (Generative Pre-trained Transformer), GPT2, GPT3, GPT4, ChatGPT, GigaChat или наследуемые от них сети.

[0035] Пример

команда: Invoke-Command -ScriptBlock {Get-EventLog system -Newest 50} -ComputerName ServerOl.

[0036] 1) Создается нулевой вектор размерностью N (где N - число категориальных переменных для представления команд).

[0037] 2) Команда разбивается на подстроки, соответствующие заданным категориальным переменным. Например, изначально определен следующий перечень категориальных переменных, размером в 100 переменных: a, b, av, err, {, }, %,<,>, _, --, in, v, oke, com, ma, nd, scri, pt, bio, ck, get, ev, ent, log, sys, t, em, new, est, com, put, er, na, me, serv, script module, computer host, host name, (,), string,…и др.

[0038] В данной команде присутствуют следующие подстроки: in, v, oke, com, ma, а, nd, scri, pt, bio, ck, {,}, get, ev, ent, log, sys, t, em, new, est, com, put, er, na, me, serv, er.

[0039] 3) Увеличивается на 1 значение в соответствующей позиции последовательно для каждой категориальной переменной. Если для данной переменной позиция отсутствует - она пропускается, в результате получается вектор размером 100 с 27 не нулевыми элементами:

0,0,0,0…0…0…1…1…2…1, 2,…1…1,1…0…0,0,0,0. В этом случае для переменных «ег» и «com» будет значение 2, для остальных из команды будет значение 1, для тех переменных из перечня, которых нет в текущей команде будет значение 0.

4) Далее делится каждое значение в векторе на общее количество категориальных переменных в команде: 0,0,0,0,…,0,…,0,…,0.037,…,0.037,…,0.074,…0.037,…0.074,…0.037,…0.037, 0.037,..., 0, 0,0,0,0

[0040] Далее на этапе (105) производят кластеризацию команд и выделяют кластера с доминирующей долей (наибольшим количеством) обфусцированных вредоносных команд и с доминирующей долей (наибольшим количеством) легитимных команд.

[0041] Для получения кластеров могут быть использованы такие алгоритмы кластеризации как K-Means, Affinity propagation, Mean-shift, Spectral clustering, Ward hierarchical clustering, Agglomerative clustering, DBSCAN, OPTICS, Gaussian mixtures, Birch.

Конечным результатом кластеризации является соотнесение каждой команды и скрипта по меньшей мере к одному кластеру, при этом кластер может состоять только из одной команды и скрипта.

[0042] Далее на этапе (106) осуществляют обработку полученных числовых векторов с помощью модели машинного обучения, обученной классифицировать обфусцированные вредоносные команды, в ходе которой получают для команд значение оценки вероятности того, что команда является обфусцированной вредоносной командой. [0043] В одном из частных вариантов изобретения этап (106) осуществляется при помощи нейронных сетей: Полносвязанные, Рекуррентные, Сверточные, Трансформеры; или классификаторов: DecisionTree (дерево решений), LogRegression (логистическая регрессия), Bayes (Наивный байесовский классификатор), SVM (метод опорных векторов), K-means (к-соседей), RandomForest (случайный лес), градиентные бустинги: XGBoost, LightGBM.

[0044] В одном из частных вариантов изобретения классификатор содержит слой Embedding, обученный или случайно инициализированный. Если данный блок содержит обученные вектора, то могут использоваться вектора: Word2Vec, Glove, FastText. Вектора могут быть получены с помощью моделей предобученных нейронных сетей, таких как DistilBERT: smaller, faster, cheaper, lighter; ALBERT (Lite BERT Google); TinyBERT; T-NLG (Turing Natural Language Generation); USE (Universal Sentence Encoder); ELMo (Embeddings from Language Models), T5, GPT (Generative Pre-trained Transformer), GPT2, GPT3, GPT4, ChatGPT, GigaChat или наследуемые от них сети.

[0045] В одном из частных вариантов изобретения классификатор содержит нейронные сети: Полносвязанные, Рекуррентные, Сверточные, Трансформеры. В одном из частных вариантов изобретения блок энкодера представляет собой по меньше мере один слой нейронные сети из типов Рекуррентные нейронные сети (Recurrent neural networks, RNN), Долгая краткосрочная память (Long short term memory, LSTM), Управляемые рекуррентные нейроны (Gated recurrent units, GRU), Нейронные машины Тьюринга (Neural Turing machines, NMT), Двунаправленные RNN, LSTM и GRU (BiRNN, BiLSTM и BiGRU), Глубокие остаточные сети (Deep residual networks, DRN), Нейронные эхо-сети (Echo state networks, ESN), Машины неустойчивых состояний (Liquid state machines, LSM), самоорганизующаяся карта Кохонена (Kohonen networks, KN, или organising (feature) map, SOM, SOFM).

[0046] Обучение происходит следующим образом: набор обучающих данных из легитимных и обфусцированных вредоносных команд переводится в векторную форму в соответствии с этапами (102)-(104). Далее данные векторные формы подаются на выбранный классификатор, обучающийся в соответствии одной из функций потерь и по одному из алгоритмов обучения.

[0047] В одном из частных вариантов изобретения используется по меньше мере одна из функций потерь: KLD (Вычисляет потерю дивергенции Кулбека-Лейблера между истинным значением и предсказанным значением), МАЕ (Вычисляет среднюю абсолютную ошибку между метками и прогнозами), МАРЕ (Вычисляет среднюю абсолютную процентную ошибку между истинным значением и предсказанным значением), MSE (Вычисляет среднеквадратичную ошибку между метками и прогнозами), MSLE (Вычисляет среднеквадратичную логарифмическую ошибку между истинным значением и предсказанным значением), binary crossentropy (Вычисляет двоичную потерю кроссэнтропии), binary focal crossentropy (Вычисляет двоичную потерю фокальной кроссэнтропии), categoricalcrossentropy (Вычисляет категориальную потерю кроссэнтропии), categorical hinge (Вычисляет категориальную потерю «лассо» между истинным значением и предсказанным значением), cosinesimilarity (Вычисляет косинусное сходство между метками и предсказаниями), hinge (Вычисляет потери в шарнире между истинным значением и предсказанным значением), huber (Вычисляет величину потерь по Хуберу), kl divergence (Вычисляет потерю дивергенции Кулбека-Лейблера между истинным значением и предсказанным значением), kullback leibler divergence (Вычисляет потерю дивергенции Кулбека-Лейблера между истинным значением и предсказанным значением), logcosh (Логарифм гиперболического косинуса ошибки прогнозирования), logcosh (Логарифм гиперболического косинуса ошибки прогнозирования), mean absolute error (Вычисляет среднюю абсолютную ошибку между метками и прогнозами), mean_absolute_percentage_error (Вычисляет среднюю абсолютную процентную ошибку между истинным значением и предсказанным значением), mean squared error (Вычисляет среднеквадратичную ошибку между метками и прогнозами), meansquaredlogarithmicerror (Вычисляет среднеквадратичную логарифмическую ошибку между истинным значением и предсказанным значением), poisson (Вычисляет потери Пуассона между истинным значением и предсказанным значением), sparse categorical crossentropy (Вычисляет разреженную категориальную потерю кроссэнтропии), squared_hinge (Вычисляет квадрат потерь на «лассо» между истинным значением и предсказанным значением). Данные функции потерь часто имеют следующие обозначения: binarycrossentropy, binarycrossentropywithlogits, poissonnllloss, cosineembeddingloss, crossentropy, ctcloss, gaussian_nll_loss, hingeembeddingloss, kl div, 11 loss, mse loss, margin ranking loss, multilabel margin loss, multilabelsoft marginloss, multimarginloss, nllloss, huber_loss, smoothllloss, soft margin loss, triplet margin loss, triplet margin with distance loss.

[0048] В одном из частных вариантов изобретения используется по меньше мере один из алгоритмов обучения нейронных сетей: Adadelta, Adagrad, Adam, AdamW, SparseAdam, Adamax, ASGD, LBFGS, NAdam, RAdam, RMSprop, Rprop, FTRL, SGD, FastSGD, SGD-Nesterov, SAGA, SAGA+.

[0049] Пример получения оценки вредоносности на этапе (106)

[0050] Рассмотрим пример на векторе категориальных переменных: (in, v, oke, com, ma, a, nd, scri, pt, bio, ck, {, }, get, ev, ent, log, sys, t, em, new, est, com, put, er, na, me, serv, er). Для каждой категориальной переменной генерируется вектор некоторой размерности N. Значение каждого элемента этого вектора получается на основе нормального распределения с математическим ожиданием 0 и некоторой дисперсии q. Эти вектора называются «эмбедингами».

[0051] На Фиг. 2 представлен пример пошаговой работы классифицирующей модели машинного обучения (200) (модели для для классификации).

[0052] 1) На вход (201) классифицирующей модели машинного обучения (КММО) (200) поступает последовательность элементов ωi - вектор категориальный переменных (in, v, oke, com,…), по ней создается последовательность эмбедингов, где каждыйэто векторное представление элемента ωi.

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

[0054] 3) Полученный вектор подают (203) на вход в блок многомерного самовнимания (англ. multi-headed self-attention) где обучаемые

матрицы: Q для запроса, К для ключа, V для значения. Затем необходима конкатенация, чтобы вернуться в исходную размерность [0055] 4) Добавляют (204) сквозные связи (англ. skip connection) - добавление из входного вектора к выходному После осуществляют (204) нормализацию слоя (англ. layer normalization): У нее два обучаемых параметра, для каждой размерности вектора вычисляется среднее и дисперсия.

[0056] 5) Далее добавляют (205) преобразование, которое будет обучаемым -полносвязную двухслойную нейронную сеть (нейронную сеть с прямой связью, англ. Feed forward neural network): [0057] 6) Повторяют (206) шаг 4) еще раз: добавляют сквозную связь и нормализацию слоя:

[0058] В классифицирующей модели машинного обучения (200) шаги (203-206) повторяются еще несколько раз, преобразовывая друг за другом из контекста контекст. Тем самым обогащая модель и увеличивая в ней количество параметров.

[0059] Получаемый выход подают на полносвязанную нейронную сеть, которая имеет 2 нейрона на выходе. Первый нейрон позволяет рассчитать оценку что обфусцированная команда является легитимной, второй нейрон позволяет рассчитать оценку что обфусцированная команда является вредоносной. Данная полносвязанная нейронная сеть задается как умножение на матрицу Далее выход подается на функцию

софтмакса, например: Здесь оценка 0,85 является оценкой вероятности вредоносности обфусцированной команды и скрипта.

[0060] Далее на этапе (107) исключают из совокупности команд их оценки, полученные на предыдущем этапе, команды, значение оценки, которые ниже заданного порогового значения.

[0061] На данном этапе в соответствии с выбранным пороговом значением, исключают из совокупности команды с этапа (107) такие команды, оценки которых ниже заданного порогового значения. При этом пороговое значения значение может располагаться в интервале от 0 до 1 не включительно - (0; 1).

[0062] На этапе (108) исключают из набора команд, полученного на предыдущем этапе, по пороговому значению команды, которые находятся ближе к кластерам с доминирующей долей легитимных команд.

[0063] На данном этапе из полученной выборки с этапа (107), в соответствии с выбранным пороговом значением, исключают команды, которые находятся ближе этого порогового значения к кластерам с доминирующей долей легитимных команд, полученным на этапе (106).

[0064] При этом для расчета расстояний могут использоваться такие метрики как: Брая-Кертиса (braycurtis), Канберра (Canberra), Чебышева (chebyshev), Сити Блок (Манхэттенская метрика, метрика городских кварталов, cityblock), Корреляция (correlation), Косинусная (cosine), Эвклидова метрика и наследуюемые от нее (euclidean, seuclidean, sqeuclidean), Дивергенция Йенсена - Шеннона (jensenshannon), Дивергенция Кульбака-Лейблера (Kullback-Leibler), Махаланобиса (mahalanobis), Миньковского любой нормы р (minkowski), Dice-метрика, Хемминга (hamming), Джаккарда (jaccard), Коэффициент Кульчинского (kulczynskil), метрика Роджерса-Танимото (rogerstanimoto, Rogers-Tanimoto), метрика Рассела-Рао (russellrao, Russell-Rao), метрика Сокал-Миченера (sokalmichener, Sokal-Michener), метрика Сокала-Снифа (sokalsneath, Sokal-Sneath), метрика Юле-Уолкера (yule, Yule-Walker) и наследуемые от нее (YuleBonett, YuleCor, Yule2phi, Yule2tetra, Yule2tetra), и др.

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

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

[0067] На данном этапе к полученной выборки с этапа (108), в соответствии с выбранным пороговом значением, добавляют команды, которые находятся ближе этого порогового значения к кластерам с доминирующей долей обфусцированных вредоносных команд, полученных на этапе (105).

[0068] При этом в качестве метрики и координат кластеров могут использоваться по меньшей мере одна метрика и одна координата из вариантов этапа (105). [0069] В одном из вариантов изобретения на этапе (109) для сравнения команд используется метрика близости BLEU. Далее проводится отбор кластеров по пороговому значению для этой метрики.

[0070] В одном из вариантов изобретения на этапе (109) для сравнения команд используется метрика близости BLEU. Далее проводится отбор кластеров по пороговому значению для этой метрики.

[0071] Далее на этапе (ПО) для каждой команды из набора, сформированного на предыдущем этапе, получают значение оценки аномальности по отношению ко всей совокупности команд в этом наборе.

[0072] В одном из вариантов изобретения на этапе (ПО) для получения оценки аномальности команд используются методы понижения размерности и реконструкции исходной матрицы векторных представлений команд и скриптов. Далее вычисляется ошибка реконструкции исходной матрицы, на основании которой получается значение аномальности команд и скриптов.

[0073] В качестве методов снижения размерности на этапе (ПО) могут применяться такие методы как: матричное разложение, SVD (сингулярное матричное разложение), РСА (метод главных компонент), IncrementalPCA, KernelPCA, SparsePCA (Анализ разреженных основных компонентов), MiniBatchSparsePCA, ICA (независимый компонентный анализ), NMF или NNMF (неотрицательная матричная факторизация), LDA (Скрытое распределение Дирихле), FactorAnalysis (Факторный анализ), K-means квантизация для размерностей (К-средних), SOM для размерностей (Самоорганизующаяся карта Кохонена), LVQ (квантование векторов обучения), t-SNE (T-distributed Stochastic Neighbor Embedding), UMAP (Uniform Manifold Approximation and Projection), Автоэнкодеры.

[0074] В другом варианте изобретения на этапе (ПО) для оценки аномальности команд используется один из методов выявления аномалий: One-class SVM (метод опорных векторов с одним классом), Isolation Forest (метод изолирующего леса), метод Elliptic envelope, метрические методы: k ближайших соседей, k-го ближайшего соседа, ABOD (angle-based outlier detection) или LOF (local outlier factor). В этом случае, в качестве меры аномальности команды используется выходное значение метода.

[0075] Далее на этапе (111) исключают команды по пороговому значению аномальности из набора команд, сформированного на предыдущем этапе, которые являются типичными для данного набора.

[0076] В одном из вариантов изобретения на этапе (111) на основе значений аномальности, полученных на предыдущем этапе, производится переранжирование исходного набора команд или скриптов без исключения их из списка.

[0077] Далее на этапе (112) выявляют на основе предыдущего этапа обфусцированные вредоносные команды.

[0078] На данном этапе осуществляют обработку полученного набора команд с предыдущего этапа с целью обнаружения и реагирования на обфусцированные вредоносные команды.

[0079] В результате, данный подход позволяет выявлять вредоносное использование команд или скриптов и предотвращать такие действия злоумышленников, как:

• Хищение чувствительной информации.

• Причинение репутационного или финансового ущерба организации или пользователю.

• Уничтожение важных данных или препятствование доступу к важным данным.

• Искажение информации.

• Слежке за процессами в инфраструктуре.

[0080] На Фиг. 3 представлен пример общего вида вычислительной системы (300), которая обеспечивает реализацию заявленного способа или является частью компьютерной системы, например, сервером, персональным компьютером, частью вычислительного кластера, обрабатывающим необходимые данные для осуществления заявленного технического решения.

[0081] В общем случае, система (300) содержит объединенные общей шиной информационного обмена один или несколько процессоров (301), средства памяти, такие как ОЗУ (302) и ПЗУ (303), интерфейсы ввода/вывода (304), устройства ввода/вывода (1105), и устройство для сетевого взаимодействия (306).

[0082] Процессор (301) (или несколько процессоров, многоядерный процессор и т.п.) может выбираться из ассортимента устройств, широко применяемых в настоящее время, например, таких производителей, как: Intel™, AMD™, Apple™, Samsung Exynos™, MediaTEK™, Qualcomm Snapdragon™ и т.п. Под процессором или одним из используемых процессоров в системе (300) также необходимо учитывать графический процессор, например, GPU NVIDIA или Graphcore, тип которых также является пригодным для полного или частичного выполнения способа, а также может применяться для обучения и применения моделей машинного обучения в различных информационных системах.

[0083] ОЗУ (302) представляет собой оперативную память и предназначено для хранения исполняемых процессором (301) машиночитаемых инструкций для выполнение необходимых операций по логической обработке данных. ОЗУ (302), как правило, содержит исполняемые инструкции операционной системы и соответствующих программных компонент (приложения, программные модули и т.п.). При этом в качестве ОЗУ (302) может выступать доступный объем памяти графической карты или графического процессора.

[0084] ПЗУ (303) представляет собой одно или более устройств постоянного хранения данных, например, жесткий диск (HDD), твердотельный накопитель данных (SSD), флэш-память (EEPROM, NAND и т.п.), оптические носители информации (CD-R/RW, DVD-R/RW, BlueRay Disc, MD) и др.

[0085] Для организации работы компонентов системы (300) и организации работы внешних подключаемых устройств применяются различные виды интерфейсов В/В (304). Выбор соответствующих интерфейсов зависит от конкретного исполнения вычислительного устройства, которые могут представлять собой, не ограничиваясь: PCI, AGP, PS/2, IrDa, Fire Wire, LPT, COM, SATA, IDE, Lightning, USB (2.0, 3.0, 3.1, micro, mini, type C), TRS/Audio jack (2.5, 3.5, 6.35), HDMI, DVI, VGA, Display Port, RJ45, RS232 и т.п.

[0086] Для обеспечения взаимодействия пользователя с вычислительной системой (300) применяются различные средства (305) В/В информации, например, клавиатура, дисплей (монитор), сенсорный дисплей, тач-пад, джойстик, манипулятор мышь, световое перо, стилус, сенсорная панель, трекбол, динамики, микрофон, средства дополненной реальности, оптические сенсоры, планшет, световые индикаторы, проектор, камера, средства биометрической идентификации (сканер сетчатки глаза, сканер отпечатков пальцев, модуль распознавания голоса) и т.п.

[0087] Средство сетевого взаимодействия (306) обеспечивает передачу данных посредством внутренней или внешней вычислительной сети, например, Интранет, Интернет, ЛВС и т.п. В качестве одного или более средств (306) может использоваться, но не ограничиваться: Ethernet карта, GSM модем, GPRS модем, LTE модем, 5G модем, модуль спутниковой связи, NFC модуль, Bluetooth и/или BLE модуль, Wi-Fi модуль и др.

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

Похожие патенты RU2838483C1

название год авторы номер документа
СПОСОБ И УСТРОЙСТВО ДЛЯ ОПРЕДЕЛЕНИЯ МОШЕННИЧЕСКИХ ТРАНЗАКЦИЙ ПОЛЬЗОВАТЕЛЯ 2024
  • Вышегородцев Кирилл Евгеньевич
  • Губанов Дмитрий Николаевич
  • Сауков Павел Александрович
  • Умеренко Григорий Сергеевич
RU2839053C1
СПОСОБ И СИСТЕМА СТАТИЧЕСКОГО АНАЛИЗА ИСПОЛНЯЕМЫХ ФАЙЛОВ НА ОСНОВЕ ПРЕДИКТИВНЫХ МОДЕЛЕЙ 2020
  • Прудковский Николай Сергеевич
RU2759087C1
СПОСОБ И СИСТЕМА ВЫЯВЛЕНИЯ ВРЕДОНОСНЫХ ФАЙЛОВ В НЕИЗОЛИРОВАННОЙ СРЕДЕ 2020
  • Прудковский Николай Сергеевич
RU2722692C1
АВТОМАТИЧЕСКОЕ ОПРЕДЕЛЕНИЕ НАБОРА КАТЕГОРИЙ ДЛЯ КЛАССИФИКАЦИИ ДОКУМЕНТА 2018
  • Орлов Никита Константинович
  • Анисимович Константин Владимирович
RU2701995C2
Система и способ блокировки выполнения сценариев 2015
  • Давыдов Василий Александрович
  • Иванов Антон Михайлович
  • Гаврильченко Роман Юрьевич
  • Виноградов Дмитрий Валерьевич
RU2606564C1
СПОСОБ И СИСТЕМА ОПРЕДЕЛЕНИЯ ПРИНАДЛЕЖНОСТИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ПО ЕГО МАШИННОМУ КОДУ 2019
  • Слипенчук Павел Владимирович
  • Померанцев Илья Сергеевич
RU2728497C1
Способ выявления вредоносных файлов с использованием графа связей 2023
  • Когтенков Алексей Александрович
  • Романенко Алексей Михайлович
  • Антонов Алексей Евгеньевич
RU2823749C1
Способы обнаружения вредоносных элементов веб-страниц 2016
  • Купреев Олег Викторович
  • Гальченко Антон Борисович
  • Устинов Михаил Валерьевич
  • Кондратов Виталий Викторович
  • Кусков Владимир Анатольевич
RU2638710C1
СПОСОБ И СИСТЕМА КЛАСТЕРИЗАЦИИ ИСПОЛНЯЕМЫХ ФАЙЛОВ 2021
  • Померанцев Илья Сергеевич
RU2778979C1
Способ и система предотвращения вредоносных автоматизированных атак 2020
  • Золотарев Виталий Геннадьевич
  • Барабанов Антон Алексеевич
  • Лексунин Олег Александрович
RU2740027C1

Иллюстрации к изобретению RU 2 838 483 C1

Реферат патента 2025 года СПОСОБ И СИСТЕМА ВЫЯВЛЕНИЯ ОБФУСЦИРОВАННЫХ ВРЕДОНОСНЫХ КОМАНД В СИСТЕМНОЙ КОНСОЛИ ОПЕРАЦИОННОЙ СИСТЕМЫ

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

Формула изобретения RU 2 838 483 C1

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

- получают данные об исполняемых командах в ОС;

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

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

- получают представления команд в виде числового вектора;

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

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

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

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

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

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

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

- выявляют на основе предыдущего этапа обфусцированные вредоносные команды.

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

3. Способ по п. 1, характеризующийся тем, что обучение модели машинного обучения производится на подвыборке, полученной семплированием из выделенных кластеров.

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

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

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

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

Документы, цитированные в отчете о поиске Патент 2025 года RU2838483C1

Способ получения продуктов конденсации фенолов с формальдегидом 1924
  • Петров Г.С.
  • Тарасов К.И.
SU2022A1
Двухосный автомобиль 1924
  • У. Павези
SU2024A1
Способ защиты переносных электрических установок от опасностей, связанных с заземлением одной из фаз 1924
  • Подольский Л.П.
SU2014A1
Способ получения цианистых соединений 1924
  • Климов Б.К.
SU2018A1
СПОСОБ ОБНАРУЖЕНИЯ ВРЕДОНОСНОГО КОДА В ОПЕРАТИВНОЙ ПАМЯТИ 2015
  • Павлющик Михаил Александрович
  • Монастырский Алексей Владимирович
  • Назаров Денис Александрович
RU2589862C1

RU 2 838 483 C1

Авторы

Вышегородцев Кирилл Евгеньевич

Нагорнов Иван Григорьевич

Балашов Александр Викторович

Сауков Павел Александрович

Левкина Ульяна Сергеевна

Новиков Евгений Александрович

Даты

2025-04-17Публикация

2024-04-24Подача