Автоматическое выявление вирусной активности
Исследование методов машинного обучения для автоматического выявления вирусной активности в вычислительных системах. Наивный байесовский подход, методы опорных векторов, ближайших соседей, построения деревьев решений. Искусственные нейронные сети.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 23.09.2018 |
Размер файла | 2,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Аннотация
В данной работе проводится исследование методов машинного обучения для автоматического выявления вирусной активности в вычислительных системах. В работе произведено сравнение семи методов для выявления вредоносной активности: наивный байесовский подход, метод опорных векторов, метод ближайших соседей, метод построения деревьев решении?, искусственные нейронные сети, XGBoost, Catboost.
В первой части работы результаты работы данных методов проверены на выборке трафика от исследования kdd cup` 99. Это большая выборка с разметкой, составленная экспертами и используемая во многих исследованиях.
Во второй части те же методы проверены на свежей выборке трафика, собранной специально для этого исследования.
Результаты обоих экспериментов представлены в работе. Также проводится анализ результатов работы исследуемых методов.
Abstract
The current research focused on the analysis of machine learning methods for automatic detection of virus activity in computing systems. In this paper, we compared seven methods to detect malicious activity: Naive Bayes, Support Vector Machines, k-nearest neighbors algorithm, Random Forest, Neural Network, XGBoost, and Catboost.
At the first part, these methods were checked on a sample of traffic from the study kdd cup` 99. This large sample with marking was compiled by experts and used in many studies.
At the second part, the same methods were tested on the new sample of traffic collected specially for this study.
Experiment results are presented in the current paper. Additionally, the result analysis for the methods tested is presented.
Введение
Каждый день в интернет-пространстве появляется все больше вредоносного программного обеспечения. Злоумышленники атакуют компьютеры пользователей, каждый раз создавая все более ухищренные способы. Чаще всего они используют для проникновения в компьютер пользователя сеть Интернет.
Разработкой способов защиты компьютеров пользователей занимаются как большие антивирусные компании с десятками экспертов, так и частные исследователи. Для того, чтобы распознать вредоносные действия и файлы еще на этапе проникновения постоянно применяются новые технологии. Однако перед всеми встает главный вопрос, как отличить действия злоумышленника от действий реального пользователя?
На данный момент существует два основных подхода к защите компьютера от вирусной активности на этапе проникновения: сигнатурный и основанный на методах машинного обучения. Если с сигнатурным методом все просто, достаточно только иметь большую базу, содержащую в себе вредоносные файлы, то с методами основанными на машинном обучении, всего гораздо сложнее.
В сражении за большую точность и уменьшение количества ложных срабатываний, исследователи постоянно экспериментируют с вариациями различных алгоритмов, параметров и прочих входных данных. К одному из самых показательных способов применения систем основанных на машинном обучении, для обнаружения вредоносного вмешательства, можно отнести системы, которые в качестве входных данных для анализа используют трафик на компьютере пользователя.
Цель работы: Исследовать точность существующих методов машинного обучения для выявления вирусной активности на примере трафика на компьютере пользователя.
Для достижения поставленной цели необходимо решить следующие задачи:
- провести анализ существующих алгоритмов машинного обучения;
- провести эксперимент с несколькими методами и сравнить результат;
- собрать собственную выборку данных для эксперимента и сравнить результаты работы алгоритмов на новой выборке;
- сделать сравнение результатов работы исследуемых методов на двух разных выборках данных.
Теоретическая часть
Анализ предметной области
Угрозы, которым подвержена машина пользователя, отличаются друг от друга. Поэтому для защиты от различных типов угроз создаются, подходящие именно для них средства обнаружения и защиты.
Наиболее популярным подходом для фильтрации вредоносной информации в компьютерных системах является сигнатурный подход. В его основе лежит метод, основанный на базе знаний, в которой содержится информация о вредоносных файлах и интернет-ресурсах. Каждый ресурс, посещаемый пользователем или скачиваемый им файл, проверяется на наличие информации о нем в такой экспертной базе.
Преимущества данного метода:
скорость. Проверка на наличие искомого файла в базе происходит довольно быстро;
точность. В каждом случае можно однозначно определить, содержится объект в базе, или нет.
Недостатки данного метода:
Невозможность отнести ранее неизвестный вредоносный ресурс в запрещенную группу, так как в базе нет никакой информации о нем.
Так как разработчики вредоносного программного обеспечения постоянно развиваются и не стоят на месте, пополнить базу всеми видами опасностей не представляется возможным. Наиболее успешными в этом подходе оказываются большие компании, у которых много пользователей использующих различные ресурсы. Базы знаний таких компаний достаточно насыщенны, однако каждый ресурс пометить невозможно.
Заменой подобного подхода может быть анализ, основанный на методах машинного обучения.
Достоинства таких методов:
самообучаемость. Они имеют возможность автоматически подстраиваться под новые реалии Интернета;
автономность. Они могут динамически определять зловредные источники, для этого им не нужно иметь информацию о всех существующих.
Недостатки подобных методов:
необходимость наличия данных, для предварительного обучения;
риск ложных срабатываний.
Чаще всего вирусы на компьютеры пользователей попадают через сеть. Сетевые атаки можно разделить на следующие виды:
Dos - характерны большим объемом трафика, что приводит к отказу работы сервера;
U2R - заключается в том, что зарегистрированный пользователь получает права администратора;
R2L - предполагает, что незарегистрированный пользователь получает удаленный доступ к машине;
Probe - характерны получением конфиденциальной информации путем сканирования портов.
Атаки характеризуются различными признаками, отличимыми друг от друга, а самое главное, от обычного трафика пользователя. В мире постоянно проводятся исследования по точности обнаружения подобных атак.
Актуальность работы
Различные методы машинного обучения отличаются по точности обнаружения сетевых атак. Многие методы достаточно хорошо определяют один вид атак, но с меньшей точностью реагируют на другие. В работе сравнивается точность работы различных методов, для того, чтобы найти тот метод, который будет наиболее точно и достаточно ровно определять вредоносный трафик для нескольких видов угроз.
Наиболее крупные исследования в области сравнения работы методов машинного обучения для выявления вирусной активности на трафике проводились достаточно давно. С тех пор появилось много новых и, по мнениям авторов, гораздо более точных методов. Так как данные от исследования kdd cup` 99 находятся в открытом доступе, представляется возможным использовать выборку данных трафика для сравнения методов. На этой выборке можно исследовать точность работы различных методов и сравнить между собой.
Так как писатели вирусов не стоят на месте и постоянно пытаются приспособиться, придумывая новые методы атак, чтобы быть, как можно более незаметными, для антивирусных программ, то точность работы одних и тех же алгоритмов может меняться. Для того, чтобы выявить наиболее универсальный метод, необходимо проверить работы методов из первой части исследования на выборке, составленной на основе свежих данных трафика и современных вирусных угроз.
Обзор проводимых исследований в предметной области
Одна из первых, организация «ACM SIGKDD» в 1999 году провела KDD cup'99 для проверки эффективности синтеза различных классификаторов при решении задач обнаружения сетевых атак. Данные трафика собрались с компьютеров реальных пользователей и прошли тщательную проверку, поэтому после соревнований выборка используется во многих исследованиях до сих пор. Данные представляют собой базу данных, каждая запись которой содержит запись об одном сетевом соединении. В каждой строке имеется 41 атрибут соединения.
В исследовании разделили сетевые атаки на 4 вида: Dos, U2R, R2L, Probe.
Из них были выделены следующие подкатегории:
Таблица1.
Атаки, использованные в эксперименте
Таблица 2.
Результаты победившего классификатора
Эффективность оценивалась по следующим показателям:
DF - уровень правильных срабатываний;
FAR - уровень ложных срабатываний.
На основе выборки kdd в мире проводится множество исследований. Одно из них представлено в статье «Анализ проблем машинного обучения при решении задач обнаружения сетевых атак»[3]. В статье были исследованы различные методы классификации на выборке от kdd cup'99.
Таблица 3.
Эффективность работы методов классификации на выборке от kdd cup'99
Авторами были выявлены следующие проблемы, препятствующие увеличению точности работы предложенных классификаторов:
Во входном наборе данные недостаточно точно разделены на классы. В наборе kdd cup'99 можно встретить идентичные входные вектора, но относящиеся к разным классам;
Автоматическая кластеризация данных. В выборке у классов существуют подклассы, которые могут искусственно объединятся в общие классы, у которых нет общих признаков, что уменьшает точность полученных результатов;
Чувствительность качества полученных классификаторов от параметров тренировочных данных;
Только часть бит входных векторов относятся к определенному классу, остальные же, создают помехи (погрешность), чем определяется точность работы классификаторов;
Некоторые методы требуют больших вычислительных мощностей, которые могут быть недоступны обычным пользователям.
В статье «Нейросетевая технология обнаружения атак на информационные ресурсы»[1] было сокращено количество классов в выборке. Было экспериментально выявлено, что при уменьшении количества классов в выборке kdd cup' 99, путем оставления только классов с наибольшим количеством тестовых экземпляров, возможно увеличить точность классификации.
Обзор методов интеллектуального анализа данных
Для выявления вредоносного трафика можно использовать различные методы машинного обучения. Классификация этих методов описана в статье[2]. Авторы выделяют следующие виды:
Наивный байесовский подход (Naive Bayes) - классификатор, опирающийся на теорему Байеса со строгими предположениями о независимости.
Преимущества:
прост для использования;
скорость;
классификация данных производится за одним сканированием;
работает, не имея значений некоторых атрибутов;
работает когда значение некоторых переменных не известно;
прост при анализе, так как сети Байеса легко интерпретировать;
в этом подходе можно совместить закономерности, полученные из данных, с фоновыми знаниями, предоставленными экспертами;
при использовании данного метода избегается избыточное усложнение модели, поэтому появляется возможность избегания переобучения, в отличии от методов, которые точно следуют распределению зашумленных данных.
Недостатки:
при статически независимых входных переменных можно перемножать условные вероятности;
не обрабатываются непрерывные переменные. Они разбиваются на различные интервалы с дискретными атрибутами, после чего могут быть потеряны значимые закономерности.
Метод опорных векторов (SVM) - данный классификатор относится к семейству линейных, в некоторых случаях его рассматривают как частный случай регуляризации по Тихонову. Данный метод иногда называют методом классификации с максимальным зазором. Характеризуется непрерывным уменьшением эмпирической ошибки классификации и увеличением зазора.
Преимущества:
быстрое нахождение решения функции;
представляет собой решение квадратного уравнения в выпуклой области, поэтому получается одно решение;
классификация получается более четкой, потому что методом находится разделяющая полоса максимальной ширины.
Недостатки:
применима, в основном, к задачам, в которых два класса;
достаточно чувствителен, если в данных много шумов, или они стандартизированы;
нет общего подхода для автоматического выбора ядра.
Метод ближайших соседей (KNN) - относится к семейству метрических классификаторов, который строится на оценке сходства объектов. Он относит классифицируемые объекты к классу, к которому были ранее отнесены ближайшие к нему объекты обучающей выборки.
Преимущества:
обучение сводится к запоминанию обучающей выборки;
для настройки можно ввести необходимые дополнительные параметры;
просто реализуется;
алгоритм понятен экспертам из разных областей, таких как медицина, биометрия, юриспруденция.
Недостатки:
выборка хранится целиком, поэтому память не эффективно расходуется;
приходится совершать много операции? для классификации объектов[13].
Метод построения деревьев решении? (Random Forest) - алгоритм, основывающийся на комитете решающих деревьев. Его можно применять в задачах классификации, регрессии и кластеризации. Суть работы алгоритма состоит в использовании некоторого количества решающих деревьев, которые по отдельности дают не очень высокое качество классификации, но за счет больших чисел получается хороший результат.
Преимущества [9, 10, 11]:
решение наглядно представлено, поэтому понятно даже не подготовленному пользователю;
результат можно преобразовать в булевы правила, которые можно достаточно просто встроить в различные системы;
можно работать не только с числовыми параметрами;
быстрая скорость работы;
можно работать с данными содержащими ошибочные или пропущенные значения.
Недостатки:
многим алгоритмам необходимо чтобы целевые атрибуты были дискретными значениями;
хорошо работают на множестве с хорошо разделенными признаками, и хуже, если признаки хоть как-то связаны между;
значительно хуже работает, если данные выборки зашумлены;
не может работать с комбинациями признаков;
работает эффективно только с небольшим числом классов [5].
Искусственные нейронные сети (Neural Network) - математическая модель, схожа по принципу работы с биологическими нейронными сетями. Нейронные сети программируются на основе обучения. Обучение с технической точки зрения сводится к нахождению коэффициентов связей между нейронами.
Преимущества:
для получения выходных данных не нужно строить вероятностные модели. Выходные данных получаются на основе входных;
функциональные возможности нейронных сетей повышаются при использовании нелинейных искусственных нейронов;
с течением времени сеть может подстраивать под текущие реалии данных и переобучаться;
можно построить параллельную структуру нейронной сети, что повысит скорость ее работы и масштабируемость;
один проект нейронной сети можно использовать для решения различных задач;
может учитывать поправки, вносимые человеком.
Недостатки:
нет строгих правил для выбора структуры построения нейронной сети;
нейронную сеть можно обучить даже на случайном наборе чисел, но при этом она не сможет предугадывать будущие события. В работе [4] пример того, как нейронная сеть объясняет историю возникновения событий в прошлом, но не может дать прогноза на будущее;
логику работы алгоритма нейронной сети сложно трактовать;
может работать только с численными переменными. Нечисловые данные приходится кодировать.
Нечеткая логика - раздел математики сочетающий в себе классическую логику и теорию множеств, базируется на понятии нечеткого множества. Это понятие значит, что функция принадлежности объекта к множеству может принимать значения в интервале от 0 до 1. На основе этого появляется понятие о логических операциях над нечеткими множествами. В задачах, использующих нечеткую логику, нечеткие множества выступают в качестве лингвистической переменной.
Преимущества:
- может объединять опыт операторов и разработчиков в настройке петель регулирования;
- учитывает разнородные данные и производит их объединение;
- интегрируется с другими системами.
Недостатки:
правила формируются человеком, поэтому они могут оказаться неполными или содержать ошибку;
функции принадлежности к множеству субъективно выбираются на входе.
Генетические алгоритмы - является эвристическим алгоритмом поиска, используется в задачах оптимизации и моделирования путем комбинирования и вариации искомых параметров.
Преимущества:
не нужна никакая информация о поведении функции;
стойкий к локальным оптимумам;
применим для задач многих классов:
простой в реализации.
Недостатки:
с помощью таких алгоритмов сложно найти точный глобальный оптимум;
сложно описать алгоритм для всех решений;
не во всех задачах можно корректно закодировать параметры;
из-за шума поиск решения может стать очень долгим.
XGBoost
XGBoost ? библиотека, которая помогает осуществлять градиентный бустинг. Алгоритм основан на построения ансамбля решений, как правило это деревья решений, в котором последующие алгоритмы пытаются устранить недостатки предыдущих. На каждом этапе алгоритма происходит обобщение и оптимизация, что помогает получить исходный результат без потерь. XGBoost был исследовательским проектом Tianqi Chen. Изначально это было терминальное приложение, настройки которого хранились в файле конфигураций. Через некоторое время были созданы пакеты для Python и R. Сейчас у него есть пакеты и для ряда других языков. Победитель многих соревнований по машинному обучению[14].
Преимущества:
масштабируемость, переносимость и возможность работы распределенно;
работает с большим количеством параметров.
Недостатки:
невысокая скорость работы;
хорошо подстраивается под шумы в данных, поэтому для его работы необходима точно размеченная выборка.
Catboost
CatBoost ? метод машинного обучения, разработанный в Яндексе. Это сокращение от categorical boosting, то есть бустинг с учётом категориальных признаков. Данный метод это преемник Матрикснета. Метод также основан на градиентном бустинге, но в нем можно использовать признаки, которые принимают только одно из конечного количества значений.
Преимущества:
можно использовать данные без перевода в числовой вид;
работает с большим количеством параметров;
может переобучаться, поэтому для обучения может быть достаточно небольшого количества данных;
просто в использовании. Поддержана работа из Python, R и командной строки;
расширяема.
Недостатки:
проведено небольшое количество исследований, в которых сравнивалась бы работа алгоритма с другими методами;
сравнительно невысокая скорость работы;
плохо сочетается с другими алгоритмами.
Яндексом уже используется этот алгоритм в некоторых сервисах, и везде он показывает результат лучше Матрикснета.
Метод CatBoost начать применяться в Европейском центре ядерных исследований (ЦЕРН). С помощью CatBoost обрабатывают данные эксперимента LHCb, который проходит на одноименном детекторе Большого адронного коллайдера. Результаты CatBoost оказались существенно лучше результатов, получаемых с использованием других алгоритмов[6].
Практическая часть
Практическая часть работы делится на две части:
В первой части на выборке данных от исследования kdd cup 99[7] проверяется работа следующих алгоритмов:
Наивный байесовский подход;
Метод опорных векторов;
Метод ближайших соседей;
Метод построения деревьев решении?;
Искусственные нейронные сети;
Catboost;
XGBoost.
Сравниваются результаты работы этих алгоритмов.
Во второй части на собственной размеченной выборке данных трафика проверяется работа методов из первой части исследования. Также сравниваются результаты.
Техническое описание структуры системы
Эксперимент с ранее исследуемой выборкой
Входными данными для первого эксперимента является выборка данных трафика собранная для kdd cup` 99. Файлы входных файлов использованы, как в исследовании
сorrected - размеченная тестовая выборка
kddcup_data_corrected - полная выборка
kddcup_data_10_percent_corrected - 10 % размеченной выборки
kddcup_testdata_10_percent - 10 % тестовой выборки
correspondence - типы атак
header_files - параметры трафика
Программа для эксперимента состоит из трех частей:
Обработка входных данных;
Эксперимент с методами;
Оценка точности работы методов.
машинное обучение вирусная активность
Рисунок 1. Схема работы программы анализа трафика
Первая часть имеет следующие методы:
type_definition- получает на вход вид делит атаки на 5 типов: normal, probe, dos, u2r, R2L, и в соответствии с видом атаки определяет тип;
data_normalyzation - получает на вход тренировочные данные и производит нормализацию в соответствии с следующими параметрами 'protocol_type','service','flag','land','logged_in','is_host_login','is_guest_login
preprocessor - получает на вход данные выборки, 10% неразмеченной выборки, параметры трафика и файл с типами атак. На выходе, путем классификации, получаются необходимые для эксперимента данные трафика и параметров трафика.
Во второй части один метод:
metric_counting - в данном методе подсчитывается оценка f1.
В третьей части на вход методам подаются обработанные в первой части данные и для каждого метода высчитывается точность работы:
neural_network - c помощью библиотеки keras[8];
catboost - c помощью библиотеки catboost[6];
xgboost - c помощью библиотеки xgboost[14];
naive_bayes - c помощью библиотеки sklearn[12];
svm - c помощью библиотеки sklearn;
random_forest - c помощью библиотеки sklearn;
neighbors - c помощью библиотеки sklearn;
На выходе работы программы получается результаты работы семи методов машинного обучения.
Эксперимент с собственной выборкой
Во второй части эксперимента были получены данные трафика с компьютера пользователя в режиме реального времени. Для этого использовалась программа, которая на вход получает данные в формате xml, полученные с помощью утилиты tshark(Рисунок 2).
Рисунок 2. Пример входных данных
Из файла в формате xml получаются поля. Полученные данный представляют собой вложенную структуру, протокол состоит из полей, а пакет состоит из протоколов. Полученные данные сохраняются в базу данных, предварительно парсятся в соответствии с параметрами трафика из первого эксперимента.
Рисунок 3. Схема взаимодействия классов
Далее в трафик обычного пользователя были подмешаны дампы трафика угроз тех же видов, что и в первом эксперименте. Также данные обычного трафика и вредоносного сразу же были размечены для обучающей выборки.
Данные трафика, полученные во втором эксперименте, использовались как входные параметры для программы анализа трафика.
Описание ранее исследованной выборки
Организация «ACM SIGKDD» в 1999 году провела KDD cup'99 для проверки эффективности синтеза различных классификаторов при решении задач обнаружения сетевых атак. Данные трафика собрались с компьютеров реальных пользователей и прошли тщательную проверку, поэтому после соревнований выборка используется во многих исследованиях до сих пор[7].
В данной работе используется выборка данных от kdd cup' 99, которая представляет собой:
Файл с параметрами трафика, которые использовались в исследовании. Параметры:
Рисунок 4. Параметры трафика
Файл с полным наборов данных трафика. Пример входных данных для исследования
Рисунок 5. Входные данные для исследования
Файл для обучения;
Неразмеченный файл для тестов;
Файл с видами угроз:
Таблица 4.
Виды угроз
В исследовании разделили сетевые атаки на 4 вида:
Dos - характерны большим объемом трафика, что приводит к отказу работы сервера;
U2R - заключается в том, что зарегистрированный пользователь получает права администратора;
R2L - предполагает, что незарегистрированный пользователь получает удаленный доступ к машине;
Probe - характерны получением конфиденциальной информации путем сканирования портов.
В общем виде входные данные представляют собой таблицу. (Таблица 1)
Таблица 5.
Общий вид данных входной выборки
Количество записей в выборке для различного вида угроз
Таблица 6.
Количество записей с различными видами атак
Если рассмотреть по более крупным категориям
Таблица 7.
Количество записей с видами угроз
Эксперимент с ранее исследуемой выборкой
В таблицам представлены результаты работы семи исследуемых методов машинного обучения. Для следующих параметров:
precision - точность определения угроз;
f1-score = 2 x Точность x Полнота / (Точность + Полнота)
Таблица 8.
Результаты работы метода Catboost
precision |
f1-score |
||
normal |
0.9996 |
0.9997 |
|
prop |
0.9944 |
0.9915 |
|
dos |
0.9998 |
0.9997 |
|
u2r |
0.8947 |
0.5574 |
|
r2l |
0.9368 |
0.9210 |
|
avg / total |
0.9995 |
0.8938 |
Таблица 9.
Результаты работы метода XGBoost
precision |
f1-score |
||
normal |
0.9990 |
0.9995 |
|
prop |
0.9964 |
0.9932 |
|
dos |
0.9999 |
0.9997 |
|
u2r |
0.6429 |
0.3214 |
|
r2l |
0.9946 |
0.6384 |
|
avg / total |
0.9266 |
0.7904 |
Таблица 10.
Результаты работы метода KNN
precision |
f1-score |
||
normal |
0.9965 |
0.9979 |
|
prop |
0.9752 |
0.9476 |
|
dos |
0.9983 |
0.9963 |
|
u2r |
0.0000 |
0.0000 |
|
r2l |
0.7694 |
0.5816 |
|
avg / total |
0.9964 |
0.7047 |
Таблица 11.
Результаты работы метода Random Forest
precision |
f1-score |
||
normal |
0.9982 |
0.9990 |
|
prop |
0.9937 |
0.9906 |
|
dos |
1.0000 |
0.9983 |
|
u2r |
1.0000 |
0.2128 |
|
r2l |
0.9343 |
0.7154 |
|
avg / total |
0.9985 |
0.7832 |
Таблица 12.
Результаты работы метода Naive Bayes
precision |
f1-score |
||
normal |
0.9990 |
0.6837 |
|
prop |
0.0891 |
0.1633 |
|
dos |
0.9919 |
0.9886 |
|
u2r |
0.0001 |
0.0003 |
|
r2l |
0.0289 |
0.0546 |
|
avg / total |
0.9847 |
0.3781 |
Таблица 13.
Результаты работы метода Netural Network
precision |
f1-score |
||
normal |
0.9931 |
0.9959 |
|
prop |
0.9464 |
0.8335 |
|
dos |
0.9973 |
0.9956 |
|
u2r |
0.8462 |
0.4000 |
|
r2l |
0.5110 |
0.1923 |
|
avg / total |
0.9930 |
0.6835 |
Таблица 14.
Результаты работы метода SVM
precision |
f1-score |
||
normal |
0.9933 |
0.9963 |
|
prop |
0.9842 |
0.8855 |
|
dos |
0.9973 |
0.9947 |
|
u2r |
0.0000 |
0.0000 |
|
r2l |
0.0000 |
0.0000 |
|
avg / total |
0.9931 |
0.5753 |
Результаты эксперимента с ранее исследуемой выборкой
В работе проведено исследование двух новых методов машинного обучения на выборке kdd cup `99[7].
Таблица 15.
Результаты работы методов на выборке kdd cup` 99
Классификатор |
prop |
dos |
u2r |
r2l |
|
Naive Bayes |
0.1633 |
0.9886 |
0.0003 |
0.0546 |
|
SVM |
0.8855 |
0.9947 |
0.0000 |
0.0000 |
|
Neural Network |
0.8335 |
0.9956 |
0.4000 |
0.1923 |
|
KNN |
0.9476 |
0.9963 |
0.0000 |
0.5816 |
|
Random Forest |
0.9906 |
0.9983 |
0.2128 |
0.7154 |
|
XGBoost |
0.9960 |
0.9990 |
0.6429 |
0.9946 |
|
Catboost |
0.9940 |
0.9990 |
0.8950 |
0.9368 |
Из таблицы видно, что самые ровные и высокие результаты показал метод Catboost.
Описание собственной выборки
Для выборки 2 использовались входные данные в таком же формате, как в выборке kdd cup` 99.
- Файл с параметрами трафика, которые использовались в исследовании. Параметры:
Рисунок 5. Параметры трафика
Файл с полным наборов данных трафика.
Файл для обучения;
Неразмеченный файл для тестов;
Файл с видами угроз.
В исследовании также разделили сетевые атаки на 4 вида: Dos, U2R, R2L, Probe.
Эксперимент с собственной выборкой
В таблицах представлены результаты работы методов из первой части исследования, но на выборке трафика, собранной самостоятельно специально для этого исследования.
Таблица 16.
Результаты работы метода Catboost
precision |
f1-score |
||
normal |
0.9392 |
0.9387 |
|
prop |
0.9324 |
0.9353 |
|
dos |
0.9298 |
0.9298 |
|
u2r |
0.8537 |
0.6788 |
|
r2l |
0.9058 |
0.9057 |
|
avg / total |
0.9121 |
0.8776 |
Таблица 17.
Результаты работы метода XGBoost
precision |
f1-score |
||
normal |
0.9392 |
0.9996 |
|
prop |
0.9374 |
0.9381 |
|
dos |
0.9395 |
0.9397 |
|
u2r |
0.7469 |
0.6724 |
|
r2l |
0.9356 |
0.7394 |
|
avg / total |
0.8997 |
0.8578 |
Таблица 18.
Результаты работы метода KNN
precision |
f1-score |
||
normal |
0.9355 |
0.9376 |
|
prop |
0.9551 |
0.9275 |
|
dos |
0.9373 |
0.9353 |
|
u2r |
0.0000 |
0.0000 |
|
r2l |
0.7684 |
0.5971 |
|
avg / total |
0.8990 |
0.8493 |
Таблица 19.
Результаты работы метода Random Forest
precision |
f1-score |
||
normal |
0.9372 |
0.9384 |
|
prop |
0.9365 |
0.9324 |
|
dos |
0.9645 |
0.9786 |
|
u2r |
0.9597 |
0.5789 |
|
r2l |
0.9054 |
0.7865 |
|
avg / total |
0.9406 |
0.8429 |
Таблица 20.
Результаты работы метода Naive Bayes
precision |
f1-score |
||
normal |
0.9368 |
0.7256 |
|
prop |
0.2971 |
0.3451 |
|
dos |
0.9563 |
0.9534 |
|
u2r |
0.0000 |
0.0000 |
|
r2l |
0.2188 |
0.1400 |
|
avg / total |
0.6022 |
0.5335 |
Таблица 21.
Результаты работы метода Netural Network
precision |
f1-score |
||
normal |
0.9351 |
0.9369 |
|
prop |
0.8954 |
0.8063 |
|
dos |
0.9356 |
0.9378 |
|
u2r |
0.8155 |
0.5789 |
|
r2l |
0.5907 |
0.3689 |
|
avg / total |
0.8344 |
0.7257 |
Таблица 22.
Результаты работы метода SVM
precision |
f1-score |
||
normal |
0.9378 |
0.9367 |
|
prop |
0.9355 |
0.9178 |
|
dos |
0.9567 |
0.9589 |
|
u2r |
0.0000 |
0.0000 |
|
r2l |
0.0000 |
0.0000 |
|
avg / total |
0.9433 |
0.9378 |
Результаты эксперимента с собственной выборкой
Таблица 23.
Результаты работы методов на современной выборке
Классификатор |
prop |
dos |
u2r |
r2l |
|
Naive Bayes |
0.3451 |
0.9534 |
0.0000 |
0.0014 |
|
SVM |
0.9178 |
0.9589 |
0.0000 |
0.0000 |
|
Neural Network |
0.8063 |
0.9378 |
0.5789 |
0.3689 |
|
KNN |
0.9275 |
0.9353 |
0.0000 |
0.5971 |
|
Random Forest |
0.9324 |
0.9786 |
0.5789 |
0.7865 |
|
XGBoost |
0.9381 |
0.9397 |
0.6724 |
0.7394 |
|
Catboost |
0.9353 |
0.9298 |
0.6788 |
0.9057 |
Точность работы методов на произвольной выборке трафика, немного ниже чем на выборке kdd cup`99. Это можно объяснить большей зашумленностью данных, так как не всегда можно точно определить принадлежность пакета к тому или иному виду трафика, поэтому при самостоятельной разметке выборки получается некоторая неточность. Тем не менее наиболее точные результаты для всех видов атак показал метод Catboost.
Сравнение результатов экспериментов
Таблица 24.
Сводная таблица результатов работы методов на обеих выборках.
Классификатор |
prop |
dos |
u2r |
r2l |
|||||
1 |
2 |
1 |
2 |
1 |
2 |
1 |
2 |
||
Naive Bayes |
0.1633 |
0.3451 |
0.9886 |
0.9534 |
0.0003 |
0.0000 |
0.0546 |
0.0014 |
|
SVM |
0.8855 |
0.9178 |
0.9947 |
0.9589 |
0.0000 |
0.0000 |
0.0000 |
0.0000 |
|
Neural Network |
0.8335 |
0.8063 |
0.9956 |
0.9378 |
0.4000 |
0.5789 |
0.1923 |
0.3689 |
|
KNN |
0.9476 |
0.9275 |
0.9963 |
0.9353 |
0.0000 |
0.0000 |
0.5816 |
0.5971 |
|
Random Forest |
0.9906 |
0.9324 |
0.9983 |
0.9786 |
0.2128 |
0.5789 |
0.7154 |
0.7865 |
|
XGBoost |
0.9932 |
0.9381 |
0.9997 |
0.9397 |
0.3214 |
0.6724 |
0.6384 |
0.7394 |
|
Catboost |
0.9915 |
0.9353 |
0.9997 |
0.9298 |
0.5574 |
0.6788 |
0.9210 |
0.9057 |
Из данной таблицы видно, что, несмотря на различные выборки трафика, наиболее точные результаты в обоих случаях показал метод catboost.
Заключение
В данной работе проведено исследование точности методов машинного обучения для автоматического обнаружения вирусной активности на компьютерах пользователей. В ходе данного исследования выявлен наиболее точный метод для различных видов вирусной активности.
Для достижения результата был произведен анализ существующих методов машинного обучения, поставлен эксперимент с различными методами машинного обучения на двух видах трафика и проанализированы полученные результаты.
Большинство методов показывает достаточно точные результаты лишь для некоторых методов вирусной активности. Достаточно высокую точность для всех исследуемых видов показа метод Catboost. Близкие к нему результаты показал метод XGBoost.
В ходе исследования, методы были проверены на двух выборках: выборка от kdd cup`99 и современная выборка, собранная в ходе исследования.
Для исследования методов была написана программа на языке Python, в которой реализованы методы машинного обучения, исследуемые в работе при помощи внешних пакетов. Также была написана программа для сбора, парсинга и приведения к необходимому виду трафика. Схемы работы программ представлены в работе.
Список литературы
1. Емельянова Ю., Талалаев А., Тищенко И., Фраленко В. Нейросетевая технология обнаружения сетевых атак на информационные ресурсы // Сборник “ Программные приложения: теория и приложения” - Москва -2011.
2. Зубков Е., Белов В. Методы интеллектуального анализа данных и обнаружение вторжений // Вестник СибГУТИ - 2016.
3. Поликарпов С., Румянцев К., Кожевников А. Анализ проблем машинного обучения при решении задач обнаружения сетевых атак// Сборник материалов научных симпозиумов “Технические и естественные науки: теория и практика” - Москва- 2015.
4. Щавелев Л. В. Способы аналитической обработки данных для поддержки принятия решений [Электронный ресурс], URL: http://infovisor.ivanovo.ru/press/paper04.html, (дата обращения: 03.02.2018).
5. Ireland E. Intrusion Detection with Genetic Algorithms and Fuzzy Logic. [Электронный ресурс], URL: https://wiki.umn.edu/pub/UmmCSciSeniorSeminar/Fall2013PapersAndTalks/ cameraReadyCopy-EmmaIreland.pdf, (дата обращения: 05.02.2018).
6. Catboost // [Электронный ресурс]. - Режим доступа: https://tech.yandex.ru/catboost/ свободный. (дата обращения: 20.03.2018).
7. KDD Cup 1999 // [Электронный ресурс]. - Режим доступа: https://kdd.ics.uci.edu/databases/kddcup99/kddcup99.html свободный. (дата обращения: 22.03.2018).
8. Keras // [Электронный ресурс]. - Режим доступа: https://keras.io свободный. (дата обращения: 22.03.2018).
9. Kumar S., Satbir J. Intrusion Detection and Classification Using Improved ID3 Algorithm of Data Mining. [Электронный ресурс], URL: http://ijarcet.org/wpcontent/uploads/IJARCET-VOL-1-ISSUE-5-352-356.pdf, (дата обращения: 09.02.2018).
10. Lior R., Oded M. Data mining with decision trees: Theory and Applications. World Scientific Publishing Co. Pte. Ltd, 2008.
11. Markey J. Using Decision Tree Analysis for Intrusion Detection: A How-To Guide. [Электронный ресурс] URL: http://www.sans.org/reading-room/whitepapers/detection/decisiontree-analysis-intrusion-detection-how-to-guide-33678, (дата обращения: 27.01.2018).
12. Sklearn // [Электронный ресурс]. - Режим доступа: http://scikit-learn.org/stable/ свободный. (дата обращения: 21.03.2018).
13. Tradeexperts. Математические основы k-nn. [Электронный ресурс], http://tradexperts.ru/ kNN_Osnovi.htm, (дата обращения: 04.01.2018).
14. XGBoost // [Электронный ресурс]. - Режим доступа: http://xgboost.readthedocs.io/en/latest/ свободный. (дата обращения: 19.03.2018).
Размещено на Allbest.ru
...Подобные документы
Виды машинного обучения, его основные задачи и методы. Подходы к классификации: логистическая регрессия, наивный байесовский классификатор, стохастический градиентный спуск, K-ближайший сосед, дерево решений, случайный лес, метод опорных векторов.
курсовая работа [436,9 K], добавлен 14.12.2022Исследование методов автоматического проектирования нечетких систем управления (НСУ). Методы автоматической настройки семантики лингвистических переменных. Искусственные нейронные сети, генетические алгоритмы. Коэволюционный алгоритм для формирования НСУ.
дипломная работа [2,3 M], добавлен 02.06.2011Характеристика моделей обучения. Общие сведения о нейроне. Искусственные нейронные сети, персептрон. Проблема XOR и пути ее решения. Нейронные сети обратного распространения. Подготовка входных и выходных данных. Нейронные сети Хопфилда и Хэмминга.
контрольная работа [1,4 M], добавлен 28.01.2011Искусственные нейронные сети, строящиеся по принципам организации и функционирования их биологических аналогов. Элементарный преобразователь в сетях. Экспериментальный автопилотируемый гиперзвуковой самолет-разведчик LoFLYTE, использующий нейронные сети.
презентация [1,3 M], добавлен 23.09.2015Искусственные нейронные сети как одна из широко известных и используемых моделей машинного обучения. Знакомство с особенностями разработки системы распознавания изображений на основе аппарата искусственных нейронных сетей. Анализ типов машинного обучения.
дипломная работа [1,8 M], добавлен 08.02.2017Основы нейрокомпьютерных систем. Искусственные нейронные сети, их применение в системах управления. Алгоритм обратного распространения. Нейронные сети Хопфилда, Хэмминга. Современные направления развития нейрокомпьютерных технологий в России и за рубежом.
дипломная работа [962,4 K], добавлен 23.06.2012Базовые архитектуры компьютеров: последовательная обработка символов по заданной программе и параллельное распознавание образов по обучающим примерам. Искусственные нейронные сети. Прототип для создания нейрона. Поведение искусственной нейронной сети.
контрольная работа [229,5 K], добавлен 28.05.2010Механизм работы нервной системы и мозга человека. Схема биологического нейрона и его математическая модель. Принцип работы искусственной нейронной сети, этапы ее построения и обучения. Применение нейронных сетей в интеллектуальных системах управления.
презентация [98,6 K], добавлен 16.10.2013Принципы организации и функционирования биологических нейронных сетей. Система соединенных и взаимодействующих между собой простых процессоров. Нейронные сети Маккалока и Питтса. Оценка качества кластеризации. Обучение многослойного персептрона.
курсовая работа [1,1 M], добавлен 06.12.2010Общие сведения о принципах построения нейронных сетей. Искусственные нейронные системы. Математическая модель нейрона. Классификация нейронных сетей. Правила обучения Хэбба, Розенблатта и Видроу-Хоффа. Алгоритм обратного распространения ошибки.
дипломная работа [814,6 K], добавлен 29.09.2014Искусственные нейронные сети как вид математических моделей, построенных по принципу организации и функционирования сетей нервных клеток мозга. Виды сетей: полносвязные, многослойные. Классификация и аппроксимация. Алгоритм обратного распространения.
реферат [270,4 K], добавлен 07.03.2009Разработка нейронной сети, ее применение в алгоритме выбора оружия ботом в трехмерном шутере от первого лица, тестирование алгоритма и выявление достоинств и недостатков данного подхода. Обучение с подкреплением. Описание проекта в Unreal Engine 4.
контрольная работа [611,0 K], добавлен 30.11.2016Разработка открытой мобильной платформы Android. Первое устройство, работающее под управлением Android. Магазин приложений "Google Play". Полноценные программы навигации, редакторы офисных документов и синхронизационные утилиты. Рост вирусной активности.
презентация [58,8 K], добавлен 29.10.2014"Наивная" модель прогнозирования. Прогнозирование методом среднего и скользящего среднего. Метод опорных векторов, деревьев решений, ассоциативных правил, системы рассуждений на основе аналогичных случаев, декомпозиции временного ряда и кластеризации.
курсовая работа [2,6 M], добавлен 02.12.2014Теоретические основы распознавания образов. Функциональная схема системы распознавания. Применение байесовских методов при решении задачи распознавания образов. Байесовская сегментация изображений. Модель TAN при решении задачи классификации образов.
дипломная работа [1019,9 K], добавлен 13.10.2017Динамические характеристики типовых звеньев и их соединений, анализ устойчивости систем автоматического управления. Структурные схемы преобразованной САУ, качество процессов управления и коррекции. Анализ нелинейной системы автоматического управления.
лабораторная работа [681,9 K], добавлен 17.04.2010Сущность и экономическое обоснование, методы и подходы к прогнозированию валютного курса. Описание технологии интеллектуальных вычислений. Применение генетических алгоритмов для настройки архитектуры нейронных сетей. Основные способы улучшения модели.
курсовая работа [1,3 M], добавлен 26.03.2016Возможности программ моделирования нейронных сетей. Виды нейросетей: персептроны, сети Кохонена, сети радиальных базисных функций. Генетический алгоритм, его применение для оптимизации нейросетей. Система моделирования нейронных сетей Trajan 2.0.
дипломная работа [2,3 M], добавлен 13.10.2015Преимущества и недостатки нейронных сетей с радиальными базисными функциями (РБФ). Функции newrbe и newrb для построения РБФ общего вида и автоматической настройки весов и смещений. Пример построения нейронной сети с РБФ в математической среде Matlab.
лабораторная работа [238,7 K], добавлен 05.10.2010Задача анализа деловой активности, факторы, влияющие на принятие решений. Современные информационные технологии и нейронные сети: принципы их работы. Исследование применения нейронных сетей в задачах прогнозирования финансовых ситуаций и принятия решений.
дипломная работа [955,3 K], добавлен 06.11.2011