УДК 004.032.26:004.4 ББК 32.818.1 М 20
Малыхина Мария Петровна
Профессор, кандидат технических наук, профессор кафедры компьютерных технологий и информационной безопасности Кубанского государственного технологического университета, Краснодар, email: [email protected]
Частикова Вера Аркадьевна
Доцент, кандидат технических наук, доцент кафедры компьютерных технологий и информационной безопасности Кубанского государственного технологического университета, Краснодар, e-mail: [email protected] Динмухаметов Тимур Георгиевич
Аспирант кафедры компьютерных технологий и информационной безопасности Кубанского государственного технологического университета, Краснодар, e-mail: [email protected] Петров Влас Ярославич
Студент института компьютерных систем и информационной безопасности Кубанского государственного технологического университета, Краснодар, e-mail: [email protected]
Методика обнаружения вредоносного программного обеспечения на основе сверточных нейронных сетей
(Рецензирована)
Аннотация. Статья посвящена исследованию применения сверточных нейронных сетей глубокого обучения к задаче распознавания вредоносных программ. Затронуты основные особенности сверточных нейронных сетей. Рассмотрен алгоритм предварительной обработки входных данных для анализа нейронной сетью, основанный на создании изображений исполняемых файлов в черно-белой палитре цветов. В данном алгоритме каждой точке изображения присваивается цвет, соответствующий значению определенного байта исполняемого файла. Предложенный алгоритм был реализован с использованием языка программирования Python; в результате его применения получен набор изображений для обучения и тестирования нейронной сети. Для анализа данных изображений спроектирована и реализована архитектура сверточной нейронной сети на основе открытой нейросетевой библиотеки Keras.
Ключевые слова: вредоносное программное обеспечение, глубокие нейронные сети, изображение, сверточная нейронная сеть.
Malykhina Mariya Petrovna
Professor, Candidate of Technical Sciences, Professor of the Department of Computer Technologies and Information Security, Kuban State University of Technology, Krasnodar, e-mail: [email protected]
Chastikova Vera Arkadyevna
Associate Professor, Candidate of Technical Sciences, Associate Professor of the Department of Computer Technologies and Information Security, Kuban State University of Technology, Krasnodar, e-mail: [email protected]
Dinmukhametov Timur Georgievich
Post-graduate student of the Department of Computer Technologies 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]
Method of detecting malware based on convolutional neural networks
Abstract. The article is devoted to the study of the application of convolutional neural networks of deep learning to the task of malware detection. The main features of convolutional neural networks are affected. An algorithm for preliminary processing of input data for analysis by a neural network is considered, based on the creation of images of executable files in a black and white color palette. In this algorithm, each image point is assigned a color corresponding to the value of a specific byte of the executable file. The proposed algorithm was implemented using the Python programming language. As a result of its application, a set of images was obtained for training and testing a neural network. To analyze the obtained images, the convolutional neural network architecture based on the Keras open neural network library was designed and implemented.
Keywords: malware, deep neural networks, image, convolutional neural network.
Введение
Вместе с невероятно быстрым ростом информационных и компьютерных технологий пропорционально увеличивается также и количество многочисленных уязвимостей в данной сфере. Ежедневно хакеры атакуют множество различных ресурсов, пытаясь получить к ним доступ с помощью применения различных методов атак; вредоносное программное обеспечение с каждым годом становится все более изощренным и простым в исполнении [1, 2]. На сегодняшний день вирусные программы занимают одну из лидирующих позиций в перечне наиболее опасных угроз информационной безопасности.
Вредоносное программное обеспечение может не только украсть или повредить данные пользователя, вымогать деньги, замедлить работу компьютера, но и превратить компьютер пользователя в шпиона, завладеть его управлением и использовать для слежки за пользователем и кражи личных данных. Поэтому обнаружение различного рода вредоносного программного обеспечения и защита от него играют важную роль в современной информационной безопасности [3].
По данным исследования «Актуальные киберугрозы. IV квартал 2018 года» компании «Positive Technologies» - одной из компаний, занимающих лидирующие позиции на отечественном и европейском рынках систем анализа защищенности, атаки с применением различного вредоносного программного обеспечения занимают одну из главных позиций [4].
В данной статье рассматривается подход к задаче распознавания вредоносного программного обеспечения на основе сверточных нейронных сетей.
Глубокое обучение
Несмотря на то, что искусственные нейронные сети (ИНС) предлагали совершенно новый способ обработки информации и решения сложных задач, довольно продолжительное время они считались непрактичными. Тем не менее новые теоретические разработки в этой области в существенной мере способствовали все большей их популярности. Джеффри Хин-тон продемонстрировал возросший потенциал глубоких нейронных сетей, показав, что каждый слой глубокой сети можно обучать по отдельности на большом объеме данных, а затем провести остаточную тонкую настройку всей сети методом обратного распространения ошибки. В результате полученная сеть значительно повышала свою производительность, что способствовало быстрому росту популярности глубокого обучения. Помимо этого, на данный скачок популярности повлияло совпавшее по времени увеличение мощностей компьютеров, позволившее более результативно проектировать и обучать глубокие нейронные сети с большим количеством слоев [5, 6].
В настоящее время современные глубокие нейронные сети могут с высокой точностью распознавать рукописный текст и человеческую речь, распознавать лица из видеопотока камеры в режиме реального времени и решать многие другие актуальные практические задачи.
В результате теоретических исследований в области глубоких нейронных сетей в конце 90-х годов XX века значительное распространение приобрели гибридные архитектуры глубокого обучения, которые базировались на применении неокогнитрона. Неокогни-трон обладает многоуровневой структурой, построенной с использованием характерных особенностей, лежащих в основе функционирования зрительной коры головного мозга. По аналогии с ней неокогнитрон состоит из массива плоскостей, содержащих два типа нейронов. Каждый элемент данного массива подразделяется на две плоскости нейронов. Первая плоскость состоит из нейронов, которые называют простыми. Данные нейроны получают входные сигналы от предыдущего слоя и осуществляют выделение определенных образов из входной информации. Далее полученные образы проходят обработку сложными нейронами второй плоскости, которые выполняют задачу - сделать эти образы более независимыми от их расположения.
Гибридные архитектуры на основе неокогнитрона именуются сверточными нейронными сетями. Первая архитектура сверточной ИНС была названа LeNet. Основное отличие
сверточных сетей от структуры неокогнитрона заключалось во введении субдискретизи-рующего слоя после каждого сверточного слоя и добавлении полносвязных слоев на выходе.
На сегодняшний день сверточные нейронные сети стали одной из самых распространенных структур глубоких ИНС. Характерным отличием сверточных сетей от других нейронных сетей является их способность производить обработку входных данных одновременно с применением нескольких уровней абстракции посредством поиска различного вида признаков, что дает возможность более точно и с высокой производительностью выполнять классификацию входных данных. Также сверточные сети являются частично устойчивыми к различного рода искажениям входных данных (например, поворот входного изображения).
Типовая архитектура сверточной нейронной сети включает в себя входной слой, далее идут последовательно несколько сверточных слоев (англ. convolution layers), каждый из которых обычно закрывается подвыборочным (англ. subsampling layers или pooling layers) слоем, и заканчивается сеть парой полносвязных (англ. dense layers) слоев и выходным слоем. Пример типовой архитектуры сверточной нейронной сети приведен на рисунке 1 [6].
Рис. 1. Типовая архитектура сверточной сети
Главная особенность сверточных нейронных сетей заключается в чередовании свер-точных слоев и субдискретизирующих слоев, которые являются слоями подвыборки. Структура данного типа ИНС является однонаправленной, другими словами, с отсутствием обратных связей, и многослойной. Для обучения такой сети применяются стандартные способы, чаще всего используется метод обратного распространения ошибки. Необходимая функция активации нейронов подбирается в зависимости от исходных данных по выбору исследователя.
Обыкновенный многослойный перцептрон представляет собой архитектуру полносвязной ИНС, где каждый нейрон имеет связь со всеми нейронами из предыдущего слоя, и каждая такая связь имеет свой собственный весовой коэффициент [7, 8]. Сверточная нейронная сеть таким образом является естественным развитием архитектуры многослойного перцептрона.
Однако в отличие от многослойного перцептрона здесь применяется лишь ограниченная матрица весов малого размера, которая проходит по всему слою нейронов. То есть используется одна и та же матрица весов для различных нейронов в выходном слое. Подобная матрица именуется ядром свертки. Она представляет собой интерпретацию графического кодирования различных признаков, например, присутствие наклонной линии на данном участке изображения, расположенной под определенным углом. Соответственно следующий нейронный слой, отражающий результат применения операции свертки с определенной матрицей весов, изображает присутствие необходимого признака в предыдущем слое и его расположение. Подобным образом формируется карта признаков (англ. feature map) [5, 6].
Обычно на выходе сверточных ИНС дополнительно вводят несколько слоев полносвязной ИНС, на вход которой передаются итоговые карты признаков. Указанные слои осуществляют задачу классификации на основе данных об установленных признаках, приобретенных из предыдущих слоев сети. Совместно с конечным выходным слоем они функционируют по принципу многослойного перцептрона. В результате получается вектор вероятно-
стей принадлежности входных данных к необходимому классу.
Одной из основных областей применения сверточных нейросетей является распознавание изображений, однако они также успешно используются в решении ряда других задач; кроме того, сверточные сети могут применяться совместно с другими типами сетей для решения более сложных задач. Например, задачи распознавания действий на видеозаписи или формирования определенного голосового описания изображения могут быть решены путем объединения сверточной и рекуррентной сетей [6].
Методика распознавания вредоносных программ
При разработке данной методики будет рассмотрен формат исполняемых файлов операционных систем семейства Windows, который относится к наиболее распространенным форматам вредоносного программного обеспечения. Файлы подобного типа описывает PE-формат. PE-формат (Portable Executable) является форматом всех исполняемых файлов в операционной системе Windows. Например, такому формату соответствуют файлы, имеющие расширение exe, dll. Исполняемый файл подобного формата состоит из различных взаимосвязанных между собой структур. Он включает в себя несколько различных разделов (секций), каждая из которых содержит определенную информацию и требует различных прав доступа к памяти. Конечный файл с расширением exe является определенного вида последовательностью байтов, которые представляют собой инструкции для выполнения операционной системой.
Для комплексного и более унифицированного подхода к распознаванию вредоносных программ в разработанной методике было решено использовать представление анализируемых бинарных исполняемых файлов в виде черно-белых изображений. Так как бинарный файл представляет собой последовательность байтов, каждый байт данного файла может быть представлен в качестве точки черно-белого изображения в формате растровой графики с глубиной цвета 8 бит [9].
Алгоритм построения изображения на основе структуры исполняемого файла состоит из нескольких этапов:
1. Чтение анализируемого файла в двоичном режиме, то есть последовательное чтение каждого байта в буфер памяти и сохранение структуры конкретного файла в виде последовательности байтов.
2. Запись полученной структурной последовательности байтов в массив байтов.
3. Построение черно-белого изображения на основе данного массива байтов. Каждый байт массива будет задавать собой одну точку изображения, значению байта будет соответствовать определенная интенсивность цвета.
4. Построение полученных пикселей в изображение необходимого вида, соотношение сторон определяется в зависимости от размерности обрабатываемого файла.
5. Сохранение конечного изображения в файловую систему компьютера в каком-либо графическом формате, например, используя формат PNG.
6. Сжатие итогового изображения для получения достаточно быстрой скорости обработки изображения с помощью системы нейронных сетей в зависимости от применяемых вычислительных мощностей. Например, для обработки с использованием персонального компьютера изображения были сжаты до размера 32х32 пикселя.
Схематично данный алгоритм изображен на рисунке 2.
Разработка архитектуры нейронной сети. Для анализа полученных изображений исполняемых файлов необходимо спроектировать и реализовать типовую архитектуру сверточной нейронной сети. Структура итоговой ИНС должна соответствовать имеющимся в наличии вычислительным мощностям для получения сравнительно быстрой скорости обработки входных данных. После анализа исходных данных была предложена архитектура сверточной ИНС, включающей в себя два массива сверточных блоков, состоящих из свер-точного слоя и слоя пулинга. В качестве входных данных такая нейронная сеть будет получать итоговые изображения исполняемого файла, сжатые до размера 32x32 пикселя, каждое
для увеличения скорости обработки. Архитектура разработанной нейронной сети схематично показана на рисунке 3.
Рис. 2. Алгоритм преобразования исполняемого файла в изображение
Рис.3. Архитектура используемой нейронной сети
В данной архитектуре применяется несколько типов слоев, рассмотренных далее, а именно два сверточных слоя с размерами ядра свертки 3х3; в качестве функции активации используется функция линейной ректификации ReLu. Применение данной функции активации обусловлено наличием у нее нескольких преимуществ: быстрое вычисление, особенно по сравнению с гиперболическим тангенсом (очень популярным до определенного времени, дает возможность быстрого обучения), поскольку она лишена ресурсоемких операций. После сверточного слоя располагается слой пулинга, или подвыборки, где происходит выбор самых значимых особенностей из полученных на входе данных [9].
Во время обучения разработанной нейронной сети может произойти переобучение сети, поскольку нейроны настраиваются на совместное выделение общих признаков. Таким образом, они настраиваются на особенности определенной выборки данных, а не на общие закономерности входных данных. Для предупреждения такой возможности необходимо добавление так называемого слоя регуляризации (англ. dropout). Суть данной операции состоит в отключении нейронов с заданной вероятностью в процессе обучения, что позволяет нейронам обучаться без участия выключенных нейронов. Состояние связей между нейронами в ИНС до и после применения слоя регуляризации приведено на рисунке 4.
Рис. 4. Результат применения слоя регуляризации
На основе признаков, сформированных последним сверточным слоем, выполняется классификация обрабатываемого изображения. Данная операция происходит с применением полносвязной ИНС прямого распространения, имеющей два слоя. Первый слой состоит из 1024 нейронов и функции активации ReLu. Второй слой, являющийся выходным, соответственно, состоит из 1 нейрона и сигмоидальной функции активации. Слой регуляризации в используемом классификаторе с вероятностью 25% производит отключение нейронов.
Как видно из структуры слоев построенной нейронной сети, в представленной архитектуре отражаются особенности типовой архитектуры сверточной нейронной сети.
На данном этапе необходимо определить: является ли загруженный файл вредоносным или безопасным, другими словами, произвести выбор, к какому из этих классов относится данный файл. Таким образом, нейронная сеть должна решать задачу бинарной классификации. Соответственно в качестве функции потерь была выбрана функция перекрестной энтропии, где yi - целевое значение выходных данных, а yi - текущее значение. Выбор в пользу данной функции обусловлен тем, что она успешно используется в задачах классификации.
H(у,,yi)=zyi logi. (1)
i Уг
В качестве оптимизатора применяется алгоритм Adam (англ. adaptive moment estimation), который является модифицированным методом градиентного спуска, использующим адаптивное изменение скорости обучения, и обеспечивает более высокие параметры точности сходимости и скорости [6].
Заключение
Можно сделать вывод, что преобразование файлов вредоносных программ в черно-белые изображения в градациях серого может облегчить задачу классификации и обнаружения вирусов путем использования для указанной цели аппарата сверточных нейронных сетей, где входные данные для модели в виде изображения удобней, чем исходный код программного обеспечения.
Примечания:
1. Saxe J., Sanders H. Malware Data Science: Attack Detection and Attribution. No Starch Press, 2018. 272 pp.
2. Власенко А.В., Дзьобан П.И. Разработка алгоритмов и программ выбора оптимального набора компонент нейтрализации актуальных угроз на основе описания модели и интеграции их в Web-приложение // Вестник Адыгейского государственного университета. Сер. Естественно-математические и технические науки. 2014. Вып. 3 (142). С. 189-193. URL: http://vestnik.adygnet.ru
3. Частикова В.А., Березов М.Ю. Определение оптимальных параметров функционирования искусственной иммунной системы для решения задачи
References:
1. Saxe J., Sanders H. Malware Data Science: Attack Detection and Attribution. No Starch Press, 2018. 272 pp.
2. Vlasenko А.V., Dzoban P.I. Development of algorithms and programs to choose the optimal set of components of actual threat neutralization on the basis of model description and their integration in Web appendix // The Bulletin of the Adyghe State University. Ser. Natural-Mathematical and Technical Sciences. 2014. Iss. 3 (142). P. 189-193. URL: http://vestnik.adygnet.ru
3. Chastikova V.A., Berezov M.Yu. Determination of the optimal parameters of artificial immune system functioning to solve the detection problem of polymorphic
обнаружения полиморфных вирусов // Политематический сетевой электронный научный журнал Кубанского государственного аграрного университета. 2017. № 128. С. 430-440.
4. Актуальные киберугрозы. IV квартал 2018 года. URL: https://www.ptsecurity.com/ru-ru/research/analytics/cybersecurity-threatscape-2018-q4 (дата обращения: 16.10.2019).
5. Николенко С., Кадурин А., Архангельская Е. Глубокое обучение. Санкт-Петербург: Питер, 2018. 480 с.
6. Michelucci U., Applied Deep Learning: A Case-Based Approach to Understanding Deep Neural Networks. Apress, 2018. 432 pp.
7. Сравнительный анализ некоторых алгоритмов роевого интеллекта при обнаружении сетевых атак нейросетевыми методами / В. А. Частикова, М.П. Малыхина, С.А. Жерлицын, Я.И. Воля // Политематический сетевой электронный научный журнал Кубанского государственного аграрного университета. 2017. № 129. С. 106-115.
8. Малыхина М.П., Бегман Ю.В. Нейросетевая экспертная система на основе прецедентов для решения проблем обслуживания абонентов сотовой сети // Известия высших учебных заведений. СевероКавказский регион. Сер. Технические науки. 2009. № 3 (151). С. 6-9.
9. Chebbi Ch. Mastering Machine Learning for Penetration Testing. Packt Publishing, 2018. 276 pp.
viruses // Polythematic Online Scientific Journal of Kuban State Agrarian University. 2017. No. 128. P. 430-440.
4. Actual cyber threats. IV quarter of 2018. URL: https://www.ptsecurity.com/en-us/research/analytics/cybersecurity-threatscape-2018-q4 (access date: 16.10.2019).
5. Nikolenko S., Kadurin A., Arkhangelskaya E. Deep learning. St. Petersburg: Piter, 2018. 480 pp.
6. Michelucci U., Applied Deep Learning: A Case-Based Approach to Understanding Deep Neural Networks. Apress, 2018. 432 pp.
7. Comparative analysis of some swarm intelligence algorithms with detection of network attacks using neural 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.
8. Malykhina M.P., Begman Yu.V. Neural-network expert system based on precedents to solve the service problems of subscribers of cellular network // News of Higher Educational Institutions. North Caucasus region. Ser. Technical Sciences. 2009. No. 3 (151). P. 6-9.
9. Chebbi Ch. Mastering Machine Learning for Penetration Testing. Packt Publishing, 2018. 276 pp.