СРАВНИТЕЛЬНЫЙ АНАЛИЗ РЕЗУЛЬТАТОВ РЕАЛИЗАЦИИ НЕЙРОННЫХ СЕТЕЙ НА ОСНОВЕ ПЕРСЕПТРОНА И ЛИНЕЙНЫХ НЕЙРОННЫХ СЕТЕЙ В ПАКЕТЕ MATLAB ДЛЯ ОБНАРУЖЕНИЯ ЗЛОУМЫШЛЕННИКА В ИНФОРМАЦИОННОЙ СИСТЕМЕ
Кротова Е.Л. 1 Андреев Р.А. 2
1Кандидат физико-математических наук, доцент, 2ORCID:0000-0001-8875-2802, аспирант, Пермский национальный исследовательский политехнический университет
СРАВНИТЕЛЬНЫЙ АНАЛИЗ РЕЗУЛЬТАТОВ РЕАЛИЗАЦИИ НЕЙРОННЫХ СЕТЕЙ НА ОСНОВЕ ПЕРСЕПТРОНА И ЛИНЕЙНЫХ НЕЙРОННЫХ СЕТЕЙ В ПАКЕТЕ MATLAB ДЛЯ ОБНАРУЖЕНИЯ ЗЛОУМЫШЛЕННИКА В ИНФОРМАЦИОННОЙ СИСТЕМЕ
Аннотация
Разработана математическая модель обнаружения злоумышленника в системе, проведено исследование данных, необходимых для обучения и реализации нейронной сети. Представлены результаты обучения и реализации нейронных сетей на основе персептрона и линейных нейронных сетей в пакете MATLAB для распознавания присутствия злоумышленника в информационной системе. Посчитаны вероятности ошибок I и II рода для метода обнаружения злоумышленника на основе персептрона. Определено среднеквадратическое отклонение для анализируемых видов нейронных сетей. Результаты показали, что нейронная сеть на основе персептрона способна точнее определить злоумышленника в системе.
Ключевые слова: нейронные сети, персептрон, MATLAB.
Krotova E.L.1, Andreev R.A.2
1PhD in Physics and Mathematics, associate professor, 2ORCID:0000-0001-8875-2802, postgraduate student, Perm National Research Polytechnic University
COMPARATIVE ANALYSIS OF THE NEURAL NETWORKS BASED ON PERCEPTRON AND LINEAR NEURAL NETWORKS IMPLEMENTATION RESULTS IN MATLAB FOR DETECTING INTRUDERS IN INFORMATION SYSTEM
Abstract
Mathematical model of the intruder detection system is developed. Data needed for training and implementation of a neural network was studied. The results of training and implementation of neural networks based on perceptron and linear neural networks in MATLAB for recognizing intruder presence in information system. The probability of type I and type II errors of intruder detection method based on the perceptron was calculated. The standard deviation for the analyzed types of neural networks was defined. The results showed that the neural network based on perceptron is able to determine intruder in the system more precisely.
Keywords: neural networks, perceptron, MATLAB.
Сегодня, во времена информационных технологий, информационная безопасность становится вопросом критической важности. Для обнаружения злоумышленника и предотвращения атак используются системы обнаружения вторжений. Даже хорошие СОВ неидеальны и могут допускать ошибки. Чтобы свести вероятность ошибки к минимуму, нужно использовать наиболее эффективные методы обнаружения злоумышленника в системе. Сейчас все большую популярность в этом вопросе приобретают статистические методы и среди них нейронные сети. Данные методы позволяют выявить аномальное поведение пользователя в системе путем сравнения с нормальным поведением. Метод, основанный на нейронных сетях, обладает большим быстродействием, требует меньшее время на реализацию и позволяет анализировать больший объем данных, что увеличивает его эффективность относительно других статистических методов.
При обнаружении злоумышленника в системе предполагается, что его поведение отличается от поведения легального пользователя и эти различия можно оценить количественно. Невозможно будет увидеть совершенно разную работу в системе нелегального пользователя по сравнению с легальным, тем не менее можно отследить в их поведении общие черты и рассчитать вероятность ошибки.
В отличие от других статистических методов обнаружения нарушителя в системе, метод, основанный на нейронных сетях, позволяет анализировать огромные массивы разнообразных данных по действиям пользователя и определять, является пользователь легальным или нет.
Для разработки модели обнаружения нарушителя в системе возьмем за основу искусственную нейронную сеть. Определим параметры математической модели. Входными параметрами модели будет являться вектор, представляющий собой множество бинарных данных, характеризующих действия пользователя в системе. Ядром математической модели будет являться нейронная сеть, обученная анализировать входные данные и выявлять в них аномалии, что будет интерпретироваться как аномальное поведение пользователя.
Выходные параметры: «0» и «1», где 0 – пользователь легальный, 1 – пользователь нелегальный (рис.1).
Рис.1 – Математическая модель обнаружения нарушителя в системе
Для реализации методов обнаружения злоумышленника в системе на основе нейронных сетей используем массив данных, представленных в бинарном виде, которые характеризуют действия пользователя в системе.
Первый столбец представляет собой реальное положение пользователя:
- 0 – легальный;
- 1 – нелегальный.
Все последующие столбцы – данные, которые соответствуют поведению пользователя. Так как массив содержит более 700 видов оцениваемых данных по более 1500 пользователей, очень сложно провести его анализ. Для того, чтобы сократить массив и составить таблицу из наиболее показательных примеров, проведем корреляцию. Рассчитаем коэффициенты корреляции для каждого столбца относительно первого. Выберем 30 столбцов, модуль коэффициента корреляции которых наиболее приближен к 1. Данную таблицу разделим пополам по строкам. Первую часть будем использовать для построения и обучения нейронной сети [1]. Вторую – для реализации метода и выявления ошибок относительно реальных данных. Для удобства построения нейронной сети и избегания ошибок, изменим положение полученных таблиц – транспортируем столбцы в строки.
Создадим в пакете MATLAB [2] три таблицы с данными.
Таблица input представляет собой входные данные для построения и обучения нейронной сети, взятые из первой части таблицы. Таблица target содержит выходные данные для каждого столбца таблицы input. Таблица sample заполняется данными второй части таблицы. Эти данные в дальнейшем будут использоваться для реализации нейронной сети и выявления ошибок. Далее создаем нейронную сеть. Рассмотрим процесс обучения сети на персептроне [3], для линейной нейронной сети процесс будет аналогичным. В качестве входных данных выбираем таблицу input, а в качестве выходных – target. Выбираем «Perceptron» (или «Linear layer») как тип нейронной сети.
После того, как сеть будет создана, открываем вкладку train, в которой расположены параметры для настройки обучения сети. Также выбираем в качестве входных данных input качестве выходных – target. Параметры обучения оставляем по умолчанию и запускаем обучение нейронной сети. Можно в любой момент остановить обучение, в противном случае оно автоматически завершится после 1000 итераций (рис 2).
Рис. 2 – Процесс обучения сети
Теперь, обучив сеть, мы можем смоделировать выходные данные для таблицы sample и сравнить их с реальными данными. Во вкладке Simulate в качестве входных данных выбираем таблицу sample и создаем предполагаемые выходные данные predicted.
Открыв вкладку predicted, мы получим окно смоделированных выходных данных для таблицы sample (рис. 3).
Рис. 3 – Полученные выходные данные для нейронной сети на персептроне
Полученные данные сравним с реальными и выявим ошибки I-го и II-го рода. Ошибка I-го рода возникает, когда легального пользователя принимают за нелегального: реальные данные – 0; результаты нейронной сети – 1. Ошибка II-го рода возникает, когда нелегального пользователя принимают за легального: реальные данные – 1; результаты нейронной сети – 0. В строках «Ошибки I-го рода» и «Ошибки II-го рода» используем функцию ЕСЛИ соответственно для нуля или единицы в строке «Реальные данные». Если результат нейронной сети равен реальным данным в ячейку заполняется 0 – нет ошибки, если не равен – 1 – ошибка есть.
Посчитаем теперь количество единиц и определим, что количество ошибок I-го рода равно 23, а количество ошибок II-го рода – 63 (рис. 4).
Рис. 4 – Определение количества ошибок I-го и II-го рода
Таким образом, выражая полученные результаты в процентах, получим: вероятность ошибки I-го рода – 21,3%, вероятность ошибки II-го рода – 25,1%.
Проведем описанные выше расчеты для линейной нейронной сети. В данном случае в структуре результирующих данных преобладают нули, что говорит о том, что сеть определяет пользователя как легального в большинстве случаев (рис. 5).
Рис. 5 – Полученные выходные данные для линейной нейронной сети
Таким образом, можно сделать вывод, что персептрон наиболее подходит для решения поставленной задачи, так как для других сетей задача решается хуже.
Построим графики среднеквадратического отклонения для реализованных нейронных сетей. Среднеквадратическое отклонение для сети на персептроне меньше (рис. 6а), чем для линейной нейронной сети (рис. 6б), что так же свидетельствует о том, что сеть на персептроне способна точнее определить злоумышленника в системе.
Рис. 6 – Графики среднеквадратического отклонения нейронной сети на персептроне (а) и линейной нейронной сети (б)
Несмотря на то, что предложенный метод имеет ряд недостатков, он превосходит многие статистические методы по количеству преимуществ. Данный метод прост в использовании, не требует большого объема памяти и обладает хорошим быстродействием, что позволяет легко внедрить его в работу предприятия для обнаружения злоумышленника в системе. Предложенный метод на основе нейронной сети имеет возможность работать с большими объемами данных, что позволит более точно составить «портрет» злоумышленника и идентифицировать его в системе.
Список литературы / References
- Lawrence J. Introduction to Neural Networks / J. Lawrence. – California Scientific Software Press, 1994. – 25 p.
- Demuth H. Neural Network Toolbox User’s Guide / H. Demuth, M. Beale. – The MathWorks, Inc., 2002. – P. 3-2 – 3-36.
- Minsky M. L. Perceptrons. / M. L. Minsky, S. A. Papert. – Cambridge, MA: MIT Press, 1969. – 5 p.