Описание предметной области
Вирусы-шифровальщики (ВШ) остаются одной из главных проблем в области защиты личных данных пользователей компьютерных систем (КС). С одной стороны, последствия заражения системы ВШ в большинстве случаев приводят к частичной или полной утере данных пользователя в силу невозможности расшифровывания этих данных [1], с другой, современные средства защиты от вредоносных программ зачастую не справляются со своей функцией и не защищают пользовательские КС от заражения. Классические методы борьбы с вредоносным программным обеспечением (ПО) остаются малоэффективными при обнаружении вредоносного кода, ранее не известного разработчикам антивирусных программных средств и эксплуатирующего уязвимости нулевого дня.
В качестве возможного решения проблемы обнаружения ВШ в КС могут стать методы эвристического анализа. Так, авторы работы [2] предлагают исследовать особенности поведения ВШ. Суть метода заключается в исследовании свойств поведения ВШ и сравнении этих свойств с поведением штатных программ КС. Авторы выдвигают гипотезу о том, что ВШ и легитимное ПО в части работы с файлами имеют как общие черты, так и различия. Общее между этими классами ПО в том, что они используют одни и те же файловые операции. Различия заключаются в порядке использования операций и их аргументах. Активность вредоносных программ проявляется согласно заранее заданному алгоритму, в то время как работа легитимного ПО зависит от действий пользователя. Другой способ выявления ВШ основывается на мониторинге подозрительной активности в КС [3]. Суть метода заключается в отслеживании системных событий, описывающих действие программ, и сравнении их с шаблонами опасного поведения.
Отдельно можно отметить способы выявления вредоносного ПО, шифрующего свой код с целью скрытия от анализа сигнатурными методами. Так, в работе [4] предлагается определить наличие шифрования исполняемого файла, исследуя энтропию.
Несмотря на то, что данной проблематике посвящено довольно большое количество работ, проблема эффективности выявления ВШ в КС остается актуальной задачей. Так, за первый и второй квартал 2019 г. выявлено 516 781 инцидентов, связанных с атаками ВШ на системы пользователей [5, 6].
Описание методики выявления вирусов-шифровальщиков в компьютерных системах
Одним из способов выявления ВШ является анализ изменений параметров КС непосредственно во время начавшейся атаки. В работе [7] представлено исследование влияния ВШ на пара-метры КС, выявлены параметры КС, которые изменяются под воздействием активной фазы работы ВШ.
Суть метода следующая. В исследуемой КС устанавливалось специализированное ПО, позволяющее отслеживать и записывать показатели различных параметров системы в единицу времени, затем проводились измерения показателей в четырех различных режимах загрузки системы:
- низкая загрузка – система эксплуатируется в состоянии простоя, пользователь активные задачи не запускает;
- средняя загрузка – нормальная работа системы, пользователь запускает программы, работает с Интернетом и т. п.;
- высокая загрузка – выполнение ресурсоемких задач, например, архивирование большого объема данных;
- работа ВШ – непосредственная атака КС ВШ (в эксперименте использовались WannaCry, no more ransom и др.).
Полученные данные были проанализированы с использованием статистических тестов для выявления параметров КС, изменяющихся уникальным образом под воздействием ВШ. Если тест показывал значимость изменений значения параметра КС под влиянием ВШ в сравнении с низким, средним и высоким режимами загрузки, то показатели данного параметра можно использовать в дальнейшем для выявления ВШ.
В результате анализа были отобраны следующие группы параметров: «Память», «Проекты сборщика данных», «Процессор», «Система», «Физический диск».
После того как все неинформативные параметры были отсеяны, оставшиеся параметры были проверены на наличие линейной зависимости между параметрами как внутри группы, так и между параметрами из других групп. В результате для дальнейшей работы были отобраны 43 из 123 счетчиков.
Следующим этапом исследования было построение моделей с применением методов машинного обучения, позволяющих выявлять начавшуюся атаку ВШ на КС.
Для моделирования были использованы следующие алгоритмы машинного обучения:
- наивный байесовский классификатор;
- многослойная нейронная сеть;
- машина опорных векторов;
- алгоритм градиентного бустинга CatBoost.
При построении моделей были использованы программные пакеты и модели языка программирования Python. Общий перечень библиотек представлен в табл. 1.
Таблица 1
Алгоритмы и библиотеки машинного обучения
|
Алгоритм машинного обучения |
Библиотека машинного обучения |
|
Наивный байесовский классификатор |
Scikit-learn |
|
Машина опорных векторов |
|
|
Многослойная нейронная сеть |
Keras |
|
Алгоритм градиентного бустинга CatBoost |
CatBoost |
Генеральный датасет был разделен на обучающую и тестовую выборки в соотношении 80 : 20 %. Итоговый объем обучающей выборки равен 10 900 значений, объем оценивающего множества составляет 2 726 значений. В пределах выборок соотношение объектов, характеризующих нормальное состояние КС и атаки ВШ на КС, является приблизительно равным.
Анализ метрик качества
В качестве ключевых метрик эффективности моделей машинного обучения выбраны следующие типичные метрики: precision, recall, F1-метрика, accuracy, AUC [8]. Данные метрики, за исключением AUC, представляющей собой значение площади под ROC-кривой (кривая ошибок), получаются путем преобразований исходных значений матрицы ошибок. Матрица ошибок содержит первоначальные характеристики оценивания модели машинного обучения. Ошибочные классификации объекта, принадлежащего к показателям состояния КС в период вредоносной деятельности программ-вымогателей, и объекта, являющегося признаковым описанием нормальной работы КС, обозначаются как ошибки первого и второго рода соответственно. ROC-кривая зависит от показателей частоты правильной классификации моделью машинного обучения объектов положительного класса (TPR) и частоты неправильной классификации объектов отрицательного класса (FPR). Далее будут представлены матрицы ошибок, ROC-кривые и значения основных метрик качества для каждой из отобранных моделей. В расчет принимается то, что мощность оценивающего множества данных равняется 2 726 значениям, из которых 1 360 значений относятся к показателям КС в режиме полезной нагрузки, а другие 1 366 значений являются значениями параметров в период вредоносной активности ВШ. Далее представлены формулы, по которым вычисляются значения основных метрик качества моделей машинного обучения:
где TP – число правильно классифицированных объектов положительного класса; TN – число правильно классифицированных объектов отрицательного класса; FN – число ошибочно классифицированных объектов положительного класса; FP – число ошибочно классифицированных объектов отрицательного класса; β определяет необходимую при вычислениях степень точности.
Построение и проверка моделей
Первая модель для обучения была основана на наивном байесовском алгоритме (НБА). Для реализации алгоритма была использована библиотека Scikit-learn, позволяющая строить модели c использованием различных модификаций НБА: GaussianNB, MultinomialNB, ComplementNB, BernoulliNB [9]. В табл. 2 приведены значения метрики accuracy, полученной в результате оценивания обученных моделей, разработанных на каждой из модификаций НБА.
Таблица 2
Значения метрики accuracy для моделей НБА
|
Модификация НБА |
Значение метрики accuracy, % |
|
GaussianNB |
66 |
|
MultinomialNB |
92 |
|
ComplementNB |
89 |
|
BernoulliNB |
61 |
Следующая модель была построена на основе машины опорных векторов (SVM). В работе использовалась библиотека Scikit-learn. В табл. 3 представлены значения метрики accuracy для моделей, построенных на различных вариантах исполнения вычислительного ядра машины опорных векторов.
Таблица 3
Значения метрики accuracy для моделей SVM
|
Вычислительное ядро машины опорных векторов (SVM) |
Значение метрики accuracy, % |
|
SVC |
68 |
|
NuSVC |
70 |
|
LinearSVC |
76 |
Обучение моделей происходило без значительного изменения параметров модели, которые задаются по умолчанию [10].
Разработка моделей на нейронных сетях была организована с применением библиотеки машинного обучения Keras [11]. Регулируемые параметры конечных конфигураций нейронных сетей, среди которых производился отбор наилучшей, представлены следующим образом:
- задаваемое при построении количество слоев нейронной сети и количество нейронов в них: 2 слоя по 32 нейрона в каждом слое (32–32), 3 слоя по 64 нейрона в каждом слое (64–64–64);
- функции активации отдельных нейронов, присущих конкретному слою нейронной сети: ReLU, Softmax, Sigmoid.
Также для каждого из слоев спроектированных нейронных сетей был выставлен одинаковый уровень Dropout в значении, равном 0,5. Стек функций активации, присущих соответствующему слою нейронной сети, обозначен следующим образом: ReLU-Sigmoid или Sofmax-Softmax в случае построения нейронной сети с двумя скрытыми слоями и ReLU-ReLU-Sigmoid и Sofmax-Softmax-Softmax в случае проектирования нейронной сети с тремя скрытыми слоями. Функция потерь и алгоритм оптимизации целевого функционала взяты из перечня рекомендуемых для задачи классификации: binary_crossentropy и rmsprop соответственно.
В табл. 4 представлены значения метрики accuracy при оценивании моделей, соответствующих различным начальным конфигурациям нейронной сети.
Таблица 4
Значения метрики accuracy для моделей нейронной сети
|
Начальная конфигурация нейронной сети |
Значение метрики accuracy, % |
|
32–32, ReLU-Sigmoid |
52 |
|
32–32, Sofmax-Softmax |
48 |
|
64–64–64, ReLU-ReLU-Sigmoid |
73 |
|
64–64–64, Sofmax-Softmax-Softmax |
71 |
Что касается построения моделей на основе библиотеки градиентного бустинга CatBoost, то для анализа были выбраны реализации моделей, одна из которых удовлетворяла требованию наибольшей корректности классификации объектов, а другая – наименьшего времени обучения модели и вынесении решения о не встречаемых в обучении объектах. В табл. 5 приведены значения метрик для упомянутых реализаций моделей машинного обучения [12].
Таблица 5
Варианты реализации модели на основе алгоритма CatBoost
|
Параметры модели |
Значение метрики accuracy, % |
|
iterations=32, learning_rate=0.008, l2_leaf_reg=3, bagging_temperature=1, |
97 |
|
iterations=8, learning_rate=0.07, boosting_type='Plain', bootstrap_type='Bernoulli', |
95 |
Значение метрики accuracy, относящейся к модели, нацеленной на наилучшую точность вынесения вердиктов по объектам, которые не относятся к обучающему датасету, ненамного выше значения метрики accuracy, относящейся к модели, нацеленной на скорость принятия решения, что обусловлено хорошим качеством данных обучающего множества.
Итогом этапа стало формирование совокупности конечных реализаций моделей машинного обучения на основании значений метрик качества. В список лучших были включены следующие модели:
- наивный байесовский алгоритм: MultinomialNB;
- машина опорных векторов: LinearSVC;
- многослойная нейронная сеть: 64–64–64, ReLU-ReLU-Sigmoid;
- модель на основе алгоритма CatBoost, нацеленная на наилучшую точность отнесения объекта к тому или иному классу.
Выбранные реализации соответствующих моделей были подвергнуты последующему более детальному анализу, получены следующие результаты.
Для модели на основе алгоритма наивного байесовского классификатора матрица ошибок представлена в табл. 6.
Таблица 6
Матрица ошибок для модели на основе наивного байесовского классификатора
|
Класс |
Actual Positive |
Actual Negative |
Суммарное количество значений |
|
Predicted Positive |
1 272 |
112 |
1 384 |
|
Predicted Negative |
94 |
1 248 |
1 342 |
|
Суммарное количество значений |
1 366 |
1 360 |
– |
Матрица ошибок, относящаяся к модели, реализующей машину опорных векторов, представлена в табл. 7.
Таблица 7
Матрица ошибок для модели, реализующей машину опорных векторов
|
Класс |
Actual Positive |
Actual Negative |
Суммарное количество значений |
|
Predicted Positive |
1 053 |
328 |
1 381 |
|
Predicted Negative |
313 |
1 032 |
1 345 |
|
Суммарное количество значений |
1 366 |
1 360 |
– |
Далее рассмотрим первоначальные показатели эффективности модели, построенной на многослойной нейронной сети прямого распространения. Матрица ошибок приведена в табл. 8.
Таблица 8
Матрица ошибок для модели, построенной на многослойной нейронной сети
прямого распространения
|
Класс |
Actual Positive |
Actual Negative |
Суммарное количество значений |
|
Predicted Positive |
1 004 |
368 |
1 372 |
|
Predicted Negative |
356 |
998 |
1 354 |
|
Суммарное количество значений |
1360 |
1366 |
– |
Что касается модели на основе алгоритма градиентного бустинга CatBoost, то результаты анализа первоначальных характеристик качества рассматриваемой модели приведены в табл. 9.
Таблица 9
Матрица ошибок для модели на основе алгоритма градиентного бустинга CatBoost
|
Класс |
Actual Positive |
Actual Negative |
Суммарное количество значений |
|
Predicted Positive |
1 321 |
31 |
1 352 |
|
Predicted Negative |
45 |
1 329 |
1 374 |
|
Суммарное количество значений |
1 366 |
1 360 |
– |
Как видно, значения TP и TN для модели на основе алгоритма градиентного бустинга CatBoost представляют собой наилучший результат по сравнению с теми же показателями для других моделей.
ROC-кривые, относящиеся к приведенным матрицам ошибок и соответствующие их значениям, представлены на рис.

а б

в г
ROC-кривые, относящиеся к приведенным матрицам ошибок:
а – наивный байесовский классификатор; б – многослойная нейронная сеть;
в – машина опорных векторов; г – алгоритм градиентного бустинга CatBoost
Далее рассмотрим основные показательные метрики качества моделей, сформированных из значений матриц ошибок. Помимо метрик эффективности классификации моделями машинного обучения, в табл. 10 приведено среднее время выполнения операций по классификации объектов тестирующего датасета, равного для всех экспериментальных моделей.
Таблица 10
Метрики качества моделей и среднее время выполнения операций
по классификации большой совокупности данных
|
Алгоритм машинного обучения |
Precision, |
Recall, |
F-мера, |
Accuracy, % |
AUC |
Время |
|
Наивный байесовский алгоритм |
91,9 |
93 |
92,4 |
92 |
0,919 |
0,0004992 |
|
Многослойная нейронная сеть |
72,7 |
74,5 |
73,8 |
73 |
0,698 |
0,1283805 |
|
Машина опорных векторов |
77 |
76,1 |
76,6 |
76 |
0,764 |
0,0009968 |
|
Алгоритм градиентного бустинга CatBoost |
97,7 |
96,5 |
97,4 |
97 |
0,973 |
0,0079891 |
Таким образом, проведенный анализ показателей эффективности классификаций, присущих рассмотренным моделям, и вычислительной эффективности каждой из них показал, что для задачи выявления ВШ в КС наиболее подходящей является модель на основе алгоритма градиентного бустинга CatBoost.
Выводы
Сложность выявления ВШ современными средствами защиты информации, опасность полной или частичной потери данных делают проблемы борьбы с ВШ актуальной задачей современности. На помощь классическим методам борьбы с ВШ приходят методы противодействия, основанные на принципах эвристического анализа. При этом уровень угрозы заражения вирусами-шифровальщиками КС остается одной из главных проблем.
В статье представлен метод выявления ВШ в КС на основе анализа их поведенческих признаков. В результате анализа изменений значений параметров КС в разных режимах работы, в том числе во время атаки ВШ, были выявлены те параметры КС, на которые ВШ оказывает наибольшее влияние. На основании полученных результатов было проведено моделирование с применением различных алгоритмов машинного обучения. Сравнительный анализ моделей показал, что наилучший результат по выявлению ВШ в КС достигнут при использовании алгоритма градиентного бустинга CatBoost.
В целом полученные результаты могут свидетельствовать об эффективности данного метода выявления ВШ и могут быть использованы для противодействия ВШ в момент атаки на КС для предотвращения шифрования данных пользователей.



