Подход к разработке программного комплекса распознавания вредоносного программного обеспечения с использованием сверточных нейронных сетей
Разработан и описан алгоритм процесса конвертирования поступающих в программный комплекс исполняемых файлов в черно-белые изображения, позволяющий сформировать собственный набор данных для обучения нейронной сети на основе полученных изображений.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 16.05.2022 |
Размер файла | 1,1 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Подход к разработке программного комплекса распознавания вредоносного программного обеспечения с использованием сверточных нейронных сетей
Частикова Вера Аркадьевна
Доцент, кандидат технических наук, доцент кафедры компьютерных технологий и информационной безопасности института компьютерных систем и информационной безопасности Кубанского государственного технологического университета
Малыхина Мария Петровна
Профессор, кандидат технических наук, профессор кафедры компьютерных технологий и информационной безопасности института компьютерных систем и информационной безопасности Кубанского государственного технологического университета
Аннотация
Проблемы информационной безопасности стояли остро всегда, но в настоящее время цена вредоносного вмешательства во много раз возросла и может иметь значительные негативные последствия. В работе рассмотрены: одна из возможных технологий распознавания вредоносного программного обеспечения на основе сверточных нейронных сетей, а также ряд алгоритмов, выполняющих подготовку и необходимые преобразования исходных данных. Разработан и описан алгоритм процесса конвертирования поступающих в программный комплекс исполняемых файлов в черно-белые изображения, позволяющий сформировать собственный набор данных для обучения нейронной сети на основе полученных изображений. Описана структура и функционирование программного комплекса, реализующего предложенную методику, включающего в себя подсистему преобразования анализируемых файлов, подсистему обучения и тестирования нейронной сети, а также подсистему распознавания вредоносного программного обеспечения на основе обученной модели нейросети. В результате проведенных исследований на ряде тестовых наборов данных была получена достаточно высокая точность распознавания вредоносного программного обеспечения.
Ключевые слова: вредоносное программное обеспечение, сверточная нейронная сеть, файл, изображение.
Abstract
Approach to the development of a malware detection software package using convolutional neural networks
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
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
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. Раздел программы «Обучение и тестирование нейронной сети» обученной модели»
Рис. 3. Раздел программы «Распознавание с использованием
Операцию подготовки набора данных для реализации нейросетевого раздела программного комплекса, требуемого для обучения и тестирования нейронной сети, можно выполнить, как было указано выше, с помощью подсистемы обработки входных данных в разделе программы «Преобразование анализируемого файла». После чего указанный файл будет конвертирован в изображение. Когда программа завершит преобразование, изображение обработанного файла будет сохранено в том же каталоге, в котором находился и сам анализируемый файл. При этом изображение будет сохранено с названием “file.exe” в формате “png”.
Итоговые изображения необходимо распределить по двум каталогам в зависимости от того, является ли файл, который был использован для их построения, вредоносным или нет. Например, каталог “benign”, содержащий изображения безопасных файлов, и каталог “malware”, содержащий изображения вредоносных файлов. Итоговый набор данных для обучения представляет собой каталог “files”, в котором находятся 2 каталога: “benign” и “malware”. Примеры наборов данных для обучения приведены на рисунках 4 и 5.
Рис. 4. Пример изображений безопасных файлов из набора данных
Рис. 5. Пример изображений вредоносных файлов из набора данных
Процесс обучения нейронной сети представлен на рисунках 6 и 7. Далее полученная на данном этапе нейронная сеть используется для анализа файлов.
Рис. 6. Запуск обучения нейронной сети Рис. 7. Обучение нейронной сети
Для запуска распознавания файла с использованием обученной нейронной сети достаточно указать в соответствующих полях необходимые параметры.
График обучения нейронной сети представлен на рисунке 8. На данном графике изображена динамика функций потерь “train_loss”, “val_loss” и точности “val_acc”, “train_acc” во время обучения нейронной сети. Функция “train_loss” отражает значения функции потерь данной нейронной сети во время обучения на тренировочном наборе данных, а функция “val_loss” показывает значения функции потерь во время использования набора данных для тестирования, который не применялся при обучении.
Рис. 8 График обучения нейронной сети
Функция “val_acc” иллюстрирует значения точности функционирования нейронной се¬ти во время обучения на тренировочном наборе данных, а функция “train_acc” показывает значения точности при использовании набора данных для тестирования, который не приме-нялся при обучении [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 Penetra¬tion 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 poly¬morphic 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 Penetra¬tion 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 al¬gorithms with detection of network attacks using neu¬ral network methods / V.A. Chastikova, M.P. Ma¬lykhina, 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 ex¬pert system based on precedents for solving problems of servicing cellular network subscribers // News of Higher Educational Institutions. North Caucasus re¬gion. 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.
Размещено на Allbest.ru
...Подобные документы
Искусственные нейронные сети как одна из широко известных и используемых моделей машинного обучения. Знакомство с особенностями разработки системы распознавания изображений на основе аппарата искусственных нейронных сетей. Анализ типов машинного обучения.
дипломная работа [1,8 M], добавлен 08.02.2017Обзор программных продуктов для анализа изображений: ABBYY FineReader и OCR CuneiForm. Понятие и виды нейронных сетей. Алгоритм обучения персептрона. Результаты исследований и описание интерфейса программы. Расчет себестоимости программного обеспечения.
дипломная работа [590,7 K], добавлен 17.08.2011Понятие искусственного нейрона и искусственных нейронных сетей. Сущность процесса обучения нейронной сети и аппроксимации функции. Смысл алгоритма обучения с учителем. Построение и обучение нейронной сети для аппроксимации функции в среде Matlab.
лабораторная работа [1,1 M], добавлен 05.10.2010Разработка алгоритма и программы для распознавания пола по фотографии с использованием искусственной нейронной сети. Создание алгоритмов: математического, работы с приложением, установки весов, реализации функции активации и обучения нейронной сети.
курсовая работа [1,0 M], добавлен 05.01.2013Типы изображений (черно-белые, полутоновые, цветные) и их форматы. Устройства, создающие цифровые изображения, и их параметры. Применение и характеристики методов сжатия изображений. Поиск по содержимому в базах данных изображений. Структуры баз данных.
презентация [360,4 K], добавлен 11.10.2013Создание программного комплекса, обеспечивающего работу со структурой данных "Q-дерево", представленной в виде модели. Методы, применяемые в разработке. Особенности проектирования модуля UnitModel. Требования к информационной и программной совместимости.
курсовая работа [2,8 M], добавлен 11.02.2010Обзор существующего программного обеспечения для автоматизации выделения границ на изображении. Разработка математической модели обработки изображений и выделения контуров в оттенках серого и программного обеспечения для алгоритмов обработки изображений.
дипломная работа [1,7 M], добавлен 27.03.2013Обучение простейшей и многослойной искусственной нейронной сети. Метод обучения перцептрона по принципу градиентного спуска по поверхности ошибки. Реализация в программном продукте NeuroPro 0.25. Использование алгоритма обратного распространения ошибки.
курсовая работа [1019,5 K], добавлен 05.05.2015Общие сведения о принципах построения нейронных сетей. Искусственные нейронные системы. Математическая модель нейрона. Классификация нейронных сетей. Правила обучения Хэбба, Розенблатта и Видроу-Хоффа. Алгоритм обратного распространения ошибки.
дипломная работа [814,6 K], добавлен 29.09.2014Компьютерная графика. Пиксели, разрешение, размер изображения. Типы изображений. Черно-белые штриховые и полутоновые изображения. Индексированные цвета. Полноцветные изображения. Форматы файлов. Цвет и его модели. Цветовые модели: RGB, CMYK, HSB.
реферат [18,1 K], добавлен 20.02.2009Методы защиты программного обеспечения, их оценка и анализ защищенности. Методы свершенствования подсистемы защиты информации от вредоносного программного обеспечения. Перечень сведений конфиденциального характера организации ООО "СтройСпецКомплект".
дипломная работа [1,9 M], добавлен 10.07.2015Описание структурной схемы искусственного нейрона. Характеристика искусственной нейронной сети как математической модели и устройств параллельных вычислений на основе микропроцессоров. Применение нейронной сети для распознавания образов и сжатия данных.
презентация [387,5 K], добавлен 11.12.2015Математическая модель нейронной сети. Однослойный и многослойный персептрон, рекуррентные сети. Обучение нейронных сетей с учителем и без него. Алгоритм обратного распространения ошибки. Подготовка данных, схема системы сети с динамическим объектом.
дипломная работа [2,6 M], добавлен 23.09.2013Разработка приложения, целью которого ставится преобразование черно-белых полутоновых изображений в цветные. Обзор методики обработки изображения, способов преобразования изображения с помощью нейронной сети. Описания кластеризации цветового пространства.
дипломная работа [6,3 M], добавлен 17.06.2012Алгоритм реализации векторного пространства, метод фильтрации шумов на изображении. Формально-логическая модель разработки программного обеспечения, выбор инструментальных средств его реализации. Анализ точности совпадения распознанного изображения.
дипломная работа [2,7 M], добавлен 13.02.2013Знакомство с проблемами обнаружения вредоносного программного обеспечения для мобильных устройств. Анализ функций антивирусного пакета Kaspersky Mobile Security 8.0. Характеристика наиболее распространенных антивирусных программ для мобильных устройств.
реферат [55,1 K], добавлен 11.01.2017Проектирование программного обеспечения для классифицирования выпускников высшего учебного заведения. Выбор системы управления базами данных и языка программирования. Разработка структуры данных, схема базы данных. Реализация программного комплекса.
дипломная работа [2,4 M], добавлен 27.03.2013Разработка программного комплекса для замены устаревшего программного обеспечения по учету выдачи полисов. Импорт данных из Clipper в MS SQL Server 2005. Подготовка файлов регистра застрахованных и регистра договоров для передачи в представительства.
дипломная работа [650,5 K], добавлен 20.04.2012Возможности среды программирования delphi при разработке приложения с визуальным интерфейсом. Отладка программных модулей с использованием специализированных программных средств. Тестирование программного обеспечения. Оптимизация программного кода.
курсовая работа [974,0 K], добавлен 21.12.2016Расчет издержек предприятия на разработку программного продукта и экономической эффективности от его внедрения. Топология физических связей и структуризация сети. Характеристика программного обеспечения. Средства автоматизации, описание алгоритма задачи.
дипломная работа [867,6 K], добавлен 05.11.2015