УДК 004.89+004.056 ББК 32.813 Ч 25
Частикова Вера Аркадьевна
Доцент, кандидат технических наук, доцент кафедры компьютерных технологий и информационной безопасности института компьютерных систем и информационной безопасности Кубанского государственного технологического университета, Краснодар, e-mail: [email protected]
Малыхина Мария Петровна
Профессор, кандидат технических наук, профессор кафедры компьютерных технологий и информационной безопасности института компьютерных систем и информационной безопасности Кубанского государственного технологического университета, Краснодар, e-mail: [email protected] Петров Влас Ярославич
Студент института компьютерных систем и информационной безопасности Кубанского государственного технологического университета, Краснодар, e-mail: [email protected]
Подход к разработке программного комплекса распознавания вредоносного программного обеспечения с использованием сверточных нейронных сетей
(Рецензирована)
Аннотация. Проблемы информационной безопасности стояли остро всегда, но в настоящее время цена вредоносного вмешательства во много раз возросла и может иметь значительные негативные последствия. В работе рассмотрены: одна из возможных технологий распознавания вредоносного программного обеспечения на основе сверточных нейронных сетей, а также ряд алгоритмов, выполняющих подготовку и необходимые преобразования исходных данных. Разработан и описан алгоритм процесса конвертирования поступающих в программный комплекс исполняемых файлов в черно-белые изображения, позволяющий сформировать собственный набор данных для обучения нейронной сети на основе полученных изображений. Описана структура и функционирование программного комплекса, реализующего предложенную методику, включающего в себя подсистему преобразования анализируемых файлов, подсистему обучения и тестирования нейронной сети, а также подсистему распознавания вредоносного программного обеспечения на основе обученной модели нейро-сети. В результате проведенных исследований на ряде тестовых наборов данных была получена достаточно высокая точность распознавания вредоносного программного обеспечения.
Ключевые слова: вредоносное программное обеспечение, сверточная нейронная сеть, файл, изображение.
Chastikova Vera Arkadyevna
Associate Professor, Candidate of Technical Sciences, Associate Professor of the Department of Computer Technologies and Information Security, Institute of Computer Systems and Information Security, Kuban State University of Technology, Krasnodar, e-mail: [email protected]
Malykhina Mariya Petrovna
Professor, Candidate of Technical Sciences, Professor of the Department of Computer Technologies and Information Security, Institute of Computer Systems and Information Security, Kuban State University of Technology, Krasnodar, e-mail: [email protected]
Petrov Vlas Yaroslavich
Student of Institute of Computer Systems and Information Security, Kuban State University of Technology, Krasnodar, e-mail: [email protected]
Approach to the development of a malware detection software package using convolutional neural networks
Abstract. Information security problems have always been acute, but at present the cost of malicious intervention has increased many times and can have significant negative consequences. The paper considers one of the possible malware detection technologies based on convolutional neural networks, as well as a number of algorithms that prepare and transform the necessary source data. An algorithm has been developed and described for the process of converting executable files received in the software package into black and white images, which allows one to form their own data set for training a neural network based on the images obtained. The structure and functioning of a software package that implements the proposed methodology is described, which includes a subsystem for converting analyzed files, a subsystem for training and testing a neural network, and a malware recognition subsystem based on a trained neural network model. As a result of studies on a number of test data sets, a fairly high accuracy of malware detection was obtained.
Keywords: malware, convolutional neural network, file, image.
Проблемы информационной безопасности всегда стояли остро, но в настоящее время цена вредоносного вмешательства во много раз возросла и может иметь значительные негативные последствия. Одна из важнейших задач защиты информации, для решения которой применяются различные методы и подходы, - обнаружение вредоносного программного обеспечения [1]. В предыдущем исследовании [2] приведены методика распознавания вредоносного программного обеспечения на основе сверточных нейронных сетей и алгоритм преобразования анализируемых бинарных исполняемых файлов в черно-белые изображения для комплексного и более унифицированного подхода к распознаванию вредоносных программ. Данная работа посвящена рассмотрению подхода к программной реализации описанных алгоритмов.
Реализация подсистемы обработки входных данных
Алгоритм преобразования двоичного файла в изображение.
Для обработки данных с помощью сверточной нейронной сети необходимо выполнить предварительную подготовку входного набора. Процесс конвертирования преобразует входные исполняемые файлы в черно-белые изображения [3], далее обрабатываемые нейронной сетью. Этот процесс был описан и схематично представлен в [1], данные функции выполняет подсистема обработки входных данных (раздел программного комплекса «Преобразование анализируемого файла») рассматриваемого в работе программного комплекса. После того, как программа закончит преобразование, изображение анализируемого файла (примеры представлены на рисунке 1) будет сохранено в том же каталоге, в котором находился и сам обрабатываемый файл.
Интенсивность цвета отдельного пикселя полученного изображения задается в зависимости от значения соответствующего байта в диапазоне от 0 до 255. Считывание анализируемого файла по байтам обусловлено тем, что байт является элементарной единицей хранения информации в компьютерных системах.
Рис 1. Примеры преобразования исполняемого файла в изображение
Для анализа итоговых изображений, полученных в результате преобразования, необходимо использовать сверточную нейронную сеть.
Реализация программного комплекса
Реализация архитектуры сверточной нейронной сети для распознавания вредоносных программ была выполнена при помощи WinPython для языка Python 3.6.8 с использованием открытой библиотеки Keras [4, 5].
Основной задачей программного комплекса является первичная обработка поступающих в программный комплекс бинарных файлов и загрузка итоговых изображений на вход нейронной сети. Для обучения спроектированной нейронной сети необходим набор обучающих примеров, на основании которых будет совершаться динамическая оптимизация синап-тических весов данной сети.
Для этой цели сформирован собственный набор данных, состоящий из 500 изображений, полученных после преобразования исполняемых файлов с различными характеристиками, которые можно разделить на вредоносные и безопасные. Изображения
вредоносных и безопасных исполняемых файлов, полученные с помощью подсистемы обработки входных данных, распределены по разным каталогам. Итоговый набор данных для обучения представлен в виде набора графических данных, которые отражают особенности исполняемого файла и приведены к одному общему виду, а именно к размеру 32x32 пикселя.
В процессе обработки набора данных программой каждому изображению в выборке ставится в соответствие определенная метка в зависимости от того, в каком каталоге был расположен данный файл, например, 0 - файл является вредоносным (находится в каталоге с наименованием "malware"), 1 - файл является безопасным (находится в каталоге с наименованием "benign"). Используемый бинаризатор меток после обучения нейронной сети сохраняется в определенный файл.
Соответствующий набор меток необходим для реализации процесса обучения нейронной сети с учителем. Во время обучения после завершения каждой итерации нейронная сеть с использованием алгоритма обратного распространения ошибки изменяет весовые коэффициенты на основе значения вычисленной ошибки [6, 7]. Применяемая нейронная сеть содержит один бинарный выход с сигмоидальной функцией активации.
Для обучения нейронной сети используется обучающая выборка, которая содержит 75% от количества изображений исходного набора данных. При этом порядок обработки образов на каждом этапе обучения меняется случайным образом. Оставшиеся 25% процентов изображений из набора данных используются для тестирования точности функционирования обученной нейронной сети. Алгоритм подстройки весов нейронной сети во время обучения является итеративным, его шаги называются циклами или эпохами (epochs). Количество эпох в данном случае составляет 75. Спроектированная и реализованная нейронная сеть показывает около 90% точности распознавания вредоносных файлов как в процессе обучения, так и в процессе тестирования.
Раздел программного комплекса «Обучение и тестирование нейронной сети» (рис. 2) позволяет произвести обучение и тестирование спроектированной нейронной сети с использованием указанного набора данных, просмотр логов процесса, а также сохранение уже обученной нейросети в файл для дальнейшего применения. Это дает возможность использовать полученную модель не только в разработанном программном комплексе, но и в других приложениях.
Раздел программы «Распознавание с использованием обученной модели» приведен на рисунке 3. Он предоставляет возможность на основе полученной модели обнаружить вредоносный файл.
Преобразование анализируемого Файла Путь к Файлу
Распознавание с использованием обученной модели Путь к обученной модели
Обучение и тестирование нейронной се™
Путь к набору данных
Путь к бинаризатору меток
Запустить обучение Путь к анализируемому Файлу
Вывод логов процесса
Запустить распознавание
Вывод логов процесса
Рис. 2. Раздел программы «Обучение и тестирование нейронной сети» - 49 - Рис.3. Раздел программы «Распознавание с использованием обученной модели»
Операцию подготовки набора данных для реализации нейросетевого раздела программного комплекса, требуемого для обучения и тестирования нейронной сети, можно выполнить, как было указано выше, с помощью подсистемы обработки входных данных в разделе программы «Преобразование анализируемого файла». После чего указанный файл будет конвертирован в изображение. Когда программа завершит преобразование, изображение обработанного файла будет сохранено в том же каталоге, в котором находился и сам анализируемый файл. При этом изображение будет сохранено с названием "file.exe" в формате "png".
Итоговые изображения необходимо распределить по двум каталогам в зависимости от того, является ли файл, который был использован для их построения, вредоносным или нет. Например, каталог "benign", содержащий изображения безопасных файлов, и каталог "malware", содержащий изображения вредоносных файлов. Итоговый набор данных для обучения представляет собой каталог "files", в котором находятся 2 каталога: "benign" и "malware". Примеры наборов данных для обучения приведены на рисунках 4 и 5.
Рис. 4. Пример изображений безопасных файлов из набора данных
Рис. 5. Пример изображений вредоносных файлов из набора данных
Процесс обучения нейронной сети представлен на рисунках 6 и 7. Далее полученная на данном этапе нейронная сеть используется для анализа файлов.
иа Intelligence Malware Detection
Преобразование анализируемого Файла Путь к файлу
|P:^Jile.exe |
Обучение и тестирование нейронной сети
Путь к набору данных
|D:Sfiles |
| Запустить обучение |
Вывод логов процесса
□
Using TensorFlow backend. Загрузка данных... Обучение нейронной сети... Epoch 1/75
Запустить преобразование
Распознавание с использованием обученной модели
Путь к обученной модели
Путь к бинаризатору меток
Путь к анализируемому Файлу
Запустить распознавание Вывод логов процесса
"¡з1 Intelligence Malware Detection
Преобразование анализируемого файла Путь к Файлу
| D:Mile.exe |
Обучение и тестирование нейронной сети
Путь к набору данных
| Dulles |
| Запустить обучение "|
Вывод логов процесса
Epoch 45/75 Л
17/17
48« 3s/step - loss : 0.2381 acc: 0.S145-
valjoss: 0.2322 val_acc 0.914S
Fnnrh dfi/TR
Запустить преобразование
Распознавание с использованием обученной модели
Путь к обученной модели
Путь к бинаризатору меток
Путь к анализируемому Файлу
Запустить распознавание Вывод логов процесса
Рис. 6. Запуск обучения нейронной сети
Рис. 7. Обучение нейронной сети
Для запуска распознавания файла с использованием обученной нейронной сети достаточно указать в соответствующих полях необходимые параметры.
График обучения нейронной сети представлен на рисунке 8. На данном графике изображена динамика функций потерь 'Чгат^овв", "уаМоБв" и точности "уа1_асс", 'Чга^асс" во время обучения нейронной сети. Функция "1га1п_1оБ8" отражает значения функции потерь данной нейронной сети во время обучения на тренировочном наборе данных, а функция "уа1_1оБ8" показывает значения функции потерь во время использования набора данных для тестирования, который не применялся при обучении.
Рис. 8 График обучения нейронной сети
Функция "уа1_асс" иллюстрирует значения точности функционирования нейронной сети во время обучения на тренировочном наборе данных, а функция "1га1п_асс" показывает значения точности при использовании набора данных для тестирования, который не применялся при обучении [8]. Во время успешного обучения нейронной сети необходимо уменьшить потери, показывающие отклонение выполняемых сетью прогнозов от целевых значений и увеличить точность применяемой модели, по которой можно оценить число сделанных правильных предсказаний. То есть функция потерь должна стремиться к минимизации, а функция точности - к максимальному значению. По графику видно, что обучение нейронной сети было выполнено успешно: достигнута точность около 90%. Таким образом, преобразование вредоносных программ в черно-белые изображения помогает облегчить задачу классификации и обнаружения вирусов.
В результате проведенных исследований на ряде тестовых наборов данных удалось добиться качества распознавания вредоносного программного обеспечения с достаточно высокой точностью. Развитие описанного подхода применения глубоких нейронных сетей в перспективе может позволить избежать недостатков стандартных методов распознавания и анализа вредоносного программного обеспечения.
Примечания:
1. Частикова В.А., Березов М.Ю. Определение оптимальных параметров функционирования искусственной иммунной системы для решения задачи обнаружения полиморфных вирусов // Политематический сетевой электронный научный журнал Кубанского государственного аграрного университета. 2017. № 128. С. 430-440.
2. Методика обнаружения вредоносного программного обеспечения на основе сверточных нейронных сетей / М.П. Малыхина, В.А. Частикова, Т.Г. Динмухаметов, В.Я. Петров // Вестник Адыгейского государственного университета. Сер.: Естественно-математические и технические науки. 2019. Вып. 4 (251). С. 118-124. URL: http://vestnik.adygnet.ru
3. Chebbi Ch. Mastering Machine Learning for Penetration Testing. Packt Publishing, 2018. 276 pp.
4. Пал С., Джулли А. Библиотека Keras - инструмент глубокого обучения. ДМК Пресс, 2018. 294 с.
5. Николенко С., Кадурин А., Архангельская Е. Глубокое обучение. Санкт-Петербург: Питер, 2018. 480 с.
6. Сравнительный анализ некоторых алгоритмов роевого интеллекта при обнаружении сетевых атак нейросетевыми методами / В. А. Частикова, М.П. Малыхина, С.А. Жерлицын, Я.И. Воля // Политематический сетевой электронный научный журнал Кубанского государственного аграрного университета. 2017. № 129. С. 106-115.
7. Малыхина М.П., Бегман Ю.В. Нейросетевая экспертная система на основе прецедентов для решения проблем обслуживания абонентов сотовой сети // Известия высших учебных заведений. СевероКавказский регион. Сер.: Технические науки. 2009. № 3 (151). С. 6-9.
8. Michelucci U. Applied Deep Learning: A Case-Based Approach to Understanding Deep Neural Networks. Apress, 2018. 432 pp.
References:
1. Chastikova V.A., Berezov M.Yu. Determination of optimal parameters of the artificial immune system functioning to solve the problem of detecting polymorphic viruses // Polythematic Online Scientific Journal of Kuban State Agrarian University. 2017. No. 128. P. 430-440.
2. Method of detecting malware based on convolutional neural networks / M.P. Malykhina, V.A. Chastikova, T.G. Dinmukhametov, V.Ya. Petrov // The Bulletin of the Adyghe State University. Ser.: Natural-Mathematical and Technical Sciences. 2019. Iss. 4 (251). P. 118-124. URL: http://vestnik.adygnet.ru
3. Chebbi Ch. Mastering Machine Learning for Penetration Testing. Packt Publishing, 2018. 276 pp.
4. Pal S., Gulli A. Deep learning with Keras. DMK Press, 2018. 294 pp.
5. Nikolenko S., Kadurin A., Arkhangelskaya E. Deep learning. St. Petersburg: Piter, 2018. 480 pp.
6. Comparative analysis of some swarm intelligence algorithms with detection of network attacks using neural network methods / V.A. Chastikova, M.P. Malykhina, S.A. Zherlitsyn, Ya.I. Volya // Polythematic Online Scientific Journal of Kuban State Agrarian University. 2017. No. 129. P. 106-115.
7. Malykhina M.P., Begman Yu.V. Neural network expert system based on precedents for solving problems of servicing cellular network subscribers // News of Higher Educational Institutions. North Caucasus region. Ser.: Technical Sciences. 2009. No. 3 (151). P. 6-9.
8. Michelucci U. Applied Deep Learning: A Case-Based Approach to Understanding Deep Neural Networks. Apress, 2018. 432 pp.