ОПРЕДЕЛЕНИЕ ПРОТОКОЛА ПРИКЛАДНОГО УРОВНЯ ДЛЯ АНАЛИЗА СЕТЕВОГО ТРАФИКА С ПРИМЕНЕНИЕМ АЛГОРИТМОВ МАШИННОГО ОБУЧЕНИЯ - Студенческий научный форум

IX Международная студенческая научная конференция Студенческий научный форум - 2017

ОПРЕДЕЛЕНИЕ ПРОТОКОЛА ПРИКЛАДНОГО УРОВНЯ ДЛЯ АНАЛИЗА СЕТЕВОГО ТРАФИКА С ПРИМЕНЕНИЕМ АЛГОРИТМОВ МАШИННОГО ОБУЧЕНИЯ

 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
В статье описана реализация метода определения протокола прикладного уровня модели OSI сетевого трафика c использованием алгоритмов машинного обучения, научный руководитель д.ф.-м.н., проф. Воронова Л.И.

Введение

Объёмы трафика, передаваемого по сети, с каждым годом неуклонно растут. В связи с этим растёт и потребность в анализе трафика.

Одним из методов проведения такого анализа является deep packet inspection(DPI) – технология накопления статистических данных, проверки и фильтрации сетевых пакетов по их содержимому. Deep Packet Inspection анализирует не только заголовки пакетов, но и полное содержимое трафика на уровнях модели OSI со второго и выше[1]. Данные, полученные этим методом, можно использовать, например, для поиска неполадок в сети, в системах обнаружения сетевых атак, даже с целью блокирования сетевого трафика[2].

В то же время при нынешних объёмах сетевого трафика применение этого метода требует больших вычислительных затрат, что влечёт за собой низкую скорость проведения анализа трафика.

В данной работе предлагается иное решение для анализа сетевого трафика, основанное на машинном обучении. Такой способ куда быстрее DPI, так как в этом случае не требуется оценивать и запоминать содержимое IP-пакетов, а также сверяться со списком широко известных портов.

Подход к решению проблемы

Поставлена задача определения протокола прикладного уровня сетевого трафика. В качестве примера прикладных протоколов можно привести HTTP, POP3, SMTP, FTP, Telnet, SNMP, RDP, DNS, BitTorrent, SSL. Для решения данной проблемы необходимо будет классифицировать по протоколам прикладного уровня трафик транспортного уровня модели OSI, а именно совокупность IP-пакетов с одинаковым протоколом транспортного уровня и совпадающими точками источника (IP-адрес источника, порт назначения), и точками назначения (IP-адрес назначения, порт назначения)[3].

Идея, лежащая в основе предлагаемого решения, состоит в том, что разное программное обеспечение использует разные протоколы прикладного уровня, генерируя при этом потоки транспортного уровня с разными статистическими метриками или признаками. Если определить необходимое число таких метрик, то по их значениям можно с достаточно большой точностью предсказать, какой прикладной протокол переносится потоком данных[4].

Анализ данных

Для использования алгоритмов машинного обучения для определения протокола прикладного уровня необходим набор обучающих данных. Чтобы из потока трафика транспортного уровня выделить структурированные данные, необходимо обозначить статистические характеристики этого потока. В данном случае статистические характеристики потока будут основаны на следующих рядах чисел, а именно:

  • Последовательность размеров сегментов транспортного уровня (TCP или UDP), отправленных со стороны клиента;

  • Последовательность размеров сегментов транспортного уровня, отправленных со стороны сервера;

  • Последовательность размеров порций данных, отправленных со стороны клиента;

  • Последовательность размеров порций данных, отправленных со стороны сервера.

На основе этих рядов чисел, можно выделить следующие признаки (метрики) потока трафика:

  • Средний размер пакета со стороны клиента

  • Средний размер пакета со стороны сервера

  • Средний размер порции данных со стороны сервера

  • Средний размер порции данных со стороны клиента

  • Среднеквадратическое отклонение размера порции данных со стороны клиента

  • Среднеквадратическое отклонение размера порции данных со стороны сервера

  • Среднеквадратическое отклонение размера пакета со стороны клиента

  • Среднеквадратическое отклонение размера пакета со стороны сервера

  • Среднее число пакетов на порцию данных со стороны клиента

  • Среднее число пакетов на порцию данных со стороны сервера

  • Соотношение переданных байтов

  • Соотношение переданной полезной нагрузки

  • Соотношение переданных пакетов

  • Размеры первых 4 порций данных

  • Размеры первых 4 пакетов данных

Для проведения анализа были отобраны следующие виды трафика: DNS, BitTorrent, HTTP(S), SSL, Skype. Именно такой трафик генерирует большинство пользователей сети Интернет. Для обучения алгоритма определения протокола прикладного уровня было собрано около 5 Гб трафика приведённых выше видов. Для выделения этих видов среди прочего трафика использована библиотека nDPI, осуществляющая глубокий анализ пакетов.

Для решения задачи классификации потоков трафика транспортного уровня по протоколам прикладного уровня могут помочь так называемые алгоритмы машинного обучения «с учителем». Данный метод предполагает наличие входных и выходных данных. Существует зависимость между этими данными, но она неизвестна. Известна лишь совокупность пар данных «вход, выход», называющаяся обучающим набором. На основе этих данных требуется восстановить зависимость, то есть построить алгоритм, способный для любого объекта выдать достаточно точный ответ[5].

Для начала необходимо разделить собранные данные, дабы сформировать из них обучающий набор. В таблице 1 представлена совокупность собранных данных.

Собранные данные

Таблица 1

Протокол

Количество потоков

DNS

7089

BitTorrent

107

HTTP

2407

SSL

793

Skype

311

Далее все данные делятся на те, которые будут обучать алгоритм, и те, по которым будет проводиться перекрёстная проверка. Деление будет проходить в соотношение 70%/30% обучающие данные/проверочные данные. В таблице 2 представлены разделённые данные.

Разделённые данные

Таблица 2

Протокол

Количество потоков в обучающем наборе

Количество потоков в проверочном наборе

DNS

4962

2127

BitTorrent

75

32

HTTP

1684

723

SSL

555

238

Skype

218

93

Затем к этим данным применяются алгоритмы машинного обучения. Так как решается задача классификации потоков трафика транспортного уровня по протоколам прикладного уровня, было принято решение в качестве алгоритмов машинного обучения использовать метод опорных векторов (SVM, support vector machines) и «случайный лес» (RF, random forest) поскольку выбранные признаки коррелируют между собой[6]. Между результатами работы этих алгоритмов будет проведено сравнение.

Решение методом опорных векторов

Основная идея данного метода состоит в перевод исходных векторов в пространство более высокой размерности и поиск разделяющей гиперплоскости с максимальным зазором в этом пространстве[7].

Данный метод использует ядра, которые позволяют делать сложные, нелинейные классификаторы. Для использования ядер необходимо задать метки . Затем вычисляются новые признаки входных данных, основываясь на схожести старых признаков с заданными метками. Для вычисления новых признаков используется ядро Гаусса, формула которого выглядит следующим образом:

Где Х – вектор признаков потока, – параметр.

Затем для поиска оптимальных значений параметров классификатора, необходимо найти минимальное значение следующей функции:

Описанные шаги повторяются, пока не будут полученные удовлетворяющие параметры классификатора.

В качестве параметров метода опорных векторов после проведения нескольких экспериментов были выбраны следующие параметры: = 0.5, С = 0.143.

Пример работы программного обеспечения, реализующего данный метод, приведён на рисунке 1.

После проведения обучения алгоритма, а также перекрёстной проверки, были получены следующие результаты:

Результаты работы метода опорных векторов

Таблица 3

Протокол

Точность

Полнота

F-мера

DNS

0.99

1

0.99

BitTorrent

0.98

0.9

0.94

HTTP

1

0.98

0.99

SSL

1

1

1

Skype

0.95

0.99

0.97

Точность для некоторого класса С – это доля верных предсказаний, полнота для класса С – это количество объектов, распознанных, как принадлежащие классу С, делённое на общее количество принадлежащих классу С объектов. F-мера представляет собой удвоенное произведение точности и полноты, разделённое на сумму точности и полноты. По данному показателю можно судить об успешности работы алгоритма.

Средняя F-мера при использовании метода опорных векторов для классификации сетевого трафика равна 0.98, что является достаточно неплохим показателем.

Рисунок 1 – Пример работы классификатора трафика методом опорных векторов.

Решение с помощью алгоритма «случайного леса»

Данный метод заключается в использовании деревьев принятия решений. Стоит отметить, что используются бинарные деревья решений, т.е. те, которые имеют только двух потомков. На каждом шаге построения дерева правило, формируемое в узле, делит заданное множество примеров на две части: часть, в которой выполняется правило (правая) и часть, в которой правило не выполняется (левая)[8]. Ниже приведён алгоритм обучения классификатора.

Дан обучающий набор размерности N, размерность множества признаком M и параметр m (обычно m = sqrt(M)).

  1. Генерируется случайная выборка с повторением размером N из обучающего набора.

  2. Строится дерево принятия решений, которое классифицирует примеры из данной выборки. В ходе создания очередного узла дерева выбирается признак, на основе которого производится разбиение, не из всех M признаков, а лишь из m случайно выбранных. Выбор наилучшего из этих m признаков может осуществляться различными способами.

  3. Строится дерево до полного исчерпания выборки

Описанные выше шаги повторяются для каждого дерева. Классификация объектов проводится путём голосования: каждое дерево комитета относит классифицируемый объект к одному из классов, и побеждает класс, за который проголосовало наибольшее число деревьев. Оптимальное число деревьев подбирается таким образом, чтобы минимизировать ошибку классификатора на тестовой выборке[9].

В качестве параметров алгоритма после проведения нескольких экспериментов были выбраны следующие значения: число деревьев – 27, критерий – энтропия, максимальная глубина дерева – 9.

Пример работы программного обеспечения, реализующего алгоритм «случайного леса» представлен на рисунке 2. Для удобства интерфейс оставлен таким же, как и в случае с методом опорных векторов.

Рисунок 2 – Пример работы классификатора трафика с помощью алгоритма «случайного леса»

После проведения обучения алгоритма, а также перекрёстной проверки, были получены следующие результаты:

Результаты работы алгоритма «случайного леса»

Таблица 4

DNS

1

1

1

BitTorrent

0.98

0.9

0.94

HTTP

0.99

1

1

SSL

1

0.99

1

Skype

0.94

0.99

0.96

Средняя F-мера при использовании метода опорных векторов для классификации сетевого трафика равна 0.99.

Заключение

В статье описана реализация метода опорных векторов и алгоритма «случайного леса» для определения протокола прикладного уровня с целью анализа сетевого трафика. При использовании SVM с перекрёстной проверкой среднее значение F-меры было равно 0.98, а при использовании RF с перекрёстной проверкой – 0.99. Исходя из этого, можно судить, что алгоритмы машинного обучения позволяют добиться высокой точности в определении протокола прикладного уровня, при этом алгоритм «случайного леса» работает немного лучше.

Для дальнейшего развития описанных идей можно расширить количество протоколов прикладного уровня, которые необходимо определить, а так же проводить тестирование в системах с большим потоком сетевого трафика.

Список источников и литературы

1. https://ru.wikipedia.org/wiki/Deep_packet_inspection

2. Chris Riley, Ben Scott Deep - Packet Inspection: The End of Internet as We Know It? // Free Press, March 2009.

3. Олифер В.Г., Олифер Н.А. - Компьютерные сети. Принципы, технологии, протоколы. 4-е изд. – СПб.: Питер – 2010.

4. Andrew W. Moore, Denis Zuev – Internet Traffic Classification Using Bayesian Analysis Techniques // ACM SIGMETRICS Performance Evaluation Review 33(1):50-60 · June 2005

5. Mitchell T. Machine Learning — McGraw-Hill Science/Engineering/Math, 1997.

6. R.S. Anu Gowsalya, S. Miruna Joe Amali - SVM Based Network Traffic Classification Using Correlation Information // International Journal of Research in Electronics and Communication Technology, Vol.1, Issue 2. April – June 2014

7. Andrew Ng - Machine Learning Course for Stanford University. 2011. https://www.coursera.org/learn/machine-learning

8. C. П. Чистяков – Случайные леса: Обзор // Труды Карельского научного центра РАН №1 2013, с.117-136

9. К.В.Воронцов – Курс «Введение в машинное обучение». https://www.coursera.org/learn/vvedenie-mashinnoe-obuchenie

Просмотров работы: 835