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

Автор: Шукурова С.М.

Журнал: Теория и практика современной науки @modern-j

Рубрика: Основной раздел

Статья в выпуске: 6 (24), 2017 года.

Бесплатный доступ

В работе обоснована необходимость идентификации и классификации трафика для решения задач управления трафиком. Проведен анализ работ посвященных задачам классификации трафика на базе статистических методов. Определены критерии по которым проводилась классификация и ограничения по их применению.

Модели классификации, статистические алгоритмы, ip-трафик, анализ трафика, ip адрес

Короткий адрес: https://sciup.org/140272025

IDR: 140272025

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

Использование в современных телекоммуникационных сетях (ТС) большего количества сетевых сервисов и приложений, аппаратного и программного обеспечения приводит к появлению в сети большого разнообразия трафиков. При этом для проведения эффективного мониторинга и управления ТС решение задачи точной идентификации и классификации трафиков относительно сетевых сервисов, приложений и протоколов является очень важной. Потому, что сетевой трафик является одним из важнейших фактических показателей работы ТС. Сетевой трафик является носителем информации о поведении пользователей и функционировании ТС. На основе статистического анализа сетевого трафика можно косвенно определить статистические характеристики поведения КС.

Идентификация и классификация сетевого трафика особенно важна для решения таких задач, как определение приоритетов при формировании полосы пропускания для отдельных трафиков, установление правил по управлению сети, обеспечение безопасности сети, диагностический мониторинг ТС. [1].

Прежде чем классифицировать сетевой трафик, очень важно определить их классификационные характеристики. Эти характеристики могут быть определены в результате анализа свойств, описывающих сетевой трафик, к которым могут относиться различные особенности общего сетевого трафика ТС. Классификацию сетевого трафика можно определить как анализ трафиков, созданных различными сетевыми приложениями. Для классификации сетевого трафика обычно применялись простые методы, основанные на анализе информации, характеризующей пакеты (номера портов, IP адреса отправителей и получателей, типы приложений и протоколов и т.д.). Наиболее часто применяемые виды классификации трафика на основе известного номера порта и исследовании полезной нагрузки сетевых пакетов имеют ряд ограничений. Для их преодоления используются статистические методы распознавания шаблонов сетевого трафика. В связи с актуальностью на сегодняшний день проблемы распознавания трафика возникла задача исследования статистических методов классификации.

Классификация IP-трафика основывается на исследовании TCP и UDP номеров портов пакетов (классификация, основанная на портах), реконструкции сигнатуры протокола из его полезной нагрузки (классификация, основанная на полезной нагрузке), статистических методов анализа характеристик обмена пакетами между хостами и статистических свойств сетевого трафика. Каждый из подходов обладает своими достоинствами и недостатками.

Исторически многие приложения используют “хорошо известные” порты на своих локальных хостах. В этом случае задача классификатора заключается в поиске TCP SYN-пакетов (первый шаг в трехшаговом TCP-рукопожатии во время установления сеанса), чтобы определить серверную сторону нового клиент-серверного TCP-соединения. Затем, чтобы сделать вывод о приложении, просматривается целевой номер порта пакета в списке зарегистрированных портов IANA. UDP использует порты похожим образом, но без установки соединения. К несомненным достоинствам метода относятся простота реализации и высокая скорость работы. Подход имеет ряд недостатков. Во-первых, некоторые приложения могут не иметь своих портов, зарегистрированных в IANA, к примеру, пиринговые приложения, такие как Napster и Kazaa . Приложения могут использовать отличные от хорошо известных портов, чтобы обойти ограничения контроля доступа в ОС, например, непривилегированные пользователи на UNIX-подобных системах могут принудительно запустить HTTP-сервера на портах, отличных от 80. Также в некоторых случаях порты сервера выделяются динамически по мере необходимости. Например, RealVideo стример позволяет динамически согласовать серверный порт, используемый для передачи данных. Этот серверный порт определяется при инициализации TCP-соединения, которое устанавливается с использованием хорошо известного порта управления RealVideo.

В некоторых случаях шифрование IP уровня может запутать TCP и UDP заголовки, что делает невозможным определение фактического номера порта.

Чтобы избежать полной зависимости от номеров портов и собрать сведения об используемом протоколе, многие современные промышленные продукты используют восстановление состояния сеанса и прикладную информацию из содержимого каждого пакета. В [2] показано, что классификация, основанная на полезной нагрузке, для P2P-трафика (путем исследования сигнатур трафика для прикладного уровня) может сократить ошибки первого и второго рода до 5% от общего числа байт большинства изучаемых P2P-протоколов. В [3] приводится таксономия подходов на основе полезной нагрузки в зависимости от методов обработки и требований к памяти.

Байтовая точность оперирует количеством правильно классифицируемых байтов, в отличие от потоковой точности, которая при оценке использует потоки. Возрастающую сложность этих методов можно рассматривать через возрастание степени обработки слева направо (например, простейший метод требует только разбора заголовков L2-L42, в то время как наиболее сложный, требует обработки полезной нагрузки во всех пакетах), а также в соответствии с требованиями к памяти.

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

Можно выделить четыре различных степени проверки:

  • -    Первая степень проверки основана на сигнатуре, ее цель состоит в поиске некоторых сигнатур в рамках полезной нагрузки прикладного уровня. Так, например, HTTP-пакет начинается с команды, следующей за URL и версией протокола, в то время как большинство Edonkey пакетов имеет поля, содержащие размер полезной нагрузки. Метод на основе сигнатур строится на соответствии полезной нагрузки (или ее части) с

сигнатурой, определенной для данного протокола. Сигнатуры, как правило, являются регулярными выражениями;

  • -    Второй уровень проверки - синтаксический. Он может рассматриваться как более точная версия сигнатурной проверки, поскольку направлен на проверку правильности переданных данных с синтаксической точки зрения (к примеру, предполагается, что полезная нагрузка HTTP должна содержать HTTP заголовки). В этом случае необходимо декодировать все поля, содержащиеся в сообщении, и гарантировать, что сообщение является хорошо сформированным;

  • -    Третья степень контроля связана с протоколом соответствия. Например, она контролирует, что на HTTP GET запрос от клиента следует действительно ответ от сервера. Такая форма контроля является более точной, поскольку она может проверять в соответствии со спецификацией реальное поведение протокола;

    -Четвертая степень контроля относится к семантике данных. К примеру, она способна проверить, является ли объект, передаваемый по протоколу HTTP, изображением или какой-либо другой формой содержания. Такой контроль очень полезен для обнаружения "туннелей", в которых приложение использует другой протокол для транспортировки данных. На данный момент это наиболее неформализованный метод.

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

Простейшим методом является PBNS, который работает, проверяя значения некоторых полей (например, TCP/UDP порты), присутствующих в каждом пакете. Этот метод очень прост с точки зрения вычислений (должны быть обработаны только заголовки пакета до L4), для него не требуется хранить состояния.

Второй метод - PBFS требует реализации таблицы сеансов, в которой каждая запись включает идентификатор сеанса (пять кортежей IP источник/назначения, транспортный протокол, порт источника/назначения), и соответствующий протокол прикладного уровня (ID протокола). Каждая таблица занимает по нескольку десятков байт.

Работа третьего метода MBFS основана на сообщениях. Для этого метода требуется модуль нормализации3 TCP/IP пакетов. Технологии на основе MBFS могут выполнить те же самые проверки, что и PBFS, но работают на сообщениях, следовательно, их средства управления могут быть расширены на все сообщение целиком взамен первого сегмента данных. В таком случае, требуемые объемы памяти увеличиваются из-за дополнительной информации о состояниях, которая должна быть сохранена для каждого сеанса (например, порядковый номер TCP) и из-за буферов, требуемых TCP/IP нормализатором. Все эти параметры сильно зависят от природы трафика, то есть от количества фрагментированных пакетов и “ненормальных” (с пропущенными сегментами и т.д.) TCP сеансов. В зависимости от реализации, некоторые продукты могут выполнить синтаксическую проверку для всех сообщениях.

Четвертая категория MBPS точно интерпретирует, что передает и получает каждое приложение. Обработчик MBPS понимает не только семантическую часть сообщения, но и различные этапы обмена сообщениями (например, HTTP GET, должен сопровождаться соответствующим кодом ответа от веб-сервера), так как этот метод полностью понимает конечный автомат протокола. Требуемые объемы памяти становятся еще большими, потому что надо учитывать не только состояние транспортного сеанса, но также и состояние каждого сеанса прикладного уровня. Производительность является самой высокой среди всех методов - все данные прикладного уровня должны быть обработаны, чтобы проверить соответствие протокола. Реализации, основанные на технологии PBFS, обычно с каждым сеансом связывают некоторое дополнительное состояние, чтобы выполнить более точную классификацию.

Например, некоторые приложения (Skype, VoIP), могут быть обнаружены, проверяя шаблон из нескольких последовательных пакетов.

Существующие практические разработки (NetPDL, NBAR, SML], BinPac) полностью не укладываются в эту таксономию, поскольку одна и та же технология может принадлежать нескольким категориям. В этом случае используют другой подход, разделяют технологии на основе пакетов (NetPDL, NBAR) и на основе потоков (SML, BinPac). В разных реализациях эти технологии могут вести себя по-разному, например, NetPDL и NBAR могут относиться либо к PBFS, либо к MBFS в зависимости от наличия TCP/IP нормализатора на пути обработки данных.

В используя технологии, сочетающие порты и полезную нагрузку, определяли сетевые приложения. Процедура классификации начиналась с изучения номера порта потока. Если использовался неизвестный порт, поток передавался на следующий этап. На втором этапе проверялся первый пакет на наличие известной сигнатуры. Если она не была найдена, тогда пакет просматривался на наличие известного протокола. Если эта проверка заканчивалась неудачей, просматривался первый килобайт потока на наличие сигнатуры протокола. Потоки, оставшиеся неклассифицированными после этого уровня, потребуют просмотра всей полезной нагрузки потока. Результаты показали, что при наличии информации о порте правильно классифицировать возможно 69% от общего количества байт. Включая информацию, полученную из первого килобайта каждого потока, точность увеличивается почти до 79%. Самая высокая точность (почти 100%) может быть достигнута только изучением полезной нагрузки оставшихся неклассифицированных потоков [4.]

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

В статистических методах необходимо различать два разных подхода: поведенческие алгоритмы и статистические алгоритмы сетевого и транспортного уровней. Рассмотрим более подробно каждый из этих подходов. Концепция поведенческого алгоритма была разработана в [5], основная цель метода состоит в том, чтобы определить, какие приложения создают определенные потоки трафика. Анализируя, как в рамках сети взаимодействуют хосты, можно определить, какие виды приложений запущены на хосте. Отношения между классом трафика и его поведенческими статистическими свойствами были описаны в [6], где авторы проанализировали и построили эмпирические модели характеристик соединения для ряда специальных TCP-приложений.

Подход статистических методов опирается на статистические характеристики трафика для идентификации приложения. Предположения, лежащие в основании таких методов, заключаются в том, что сетевой трафик обладает статистическими характеристиками, которые являются уникальными для определенных классов приложений и позволяют разделить различные исходные приложения [7].

Статистические алгоритмы в зависимости от подхода к классификации можно разделить на две группы: методы классификации или обучение с учителем и методы кластеризации или обучение без учителя.

Обучение с учителем создает структуры знаний, которые используются для отнесения новых образцов в заранее определенные классы. Обучение машины проводится с представлением к ее входу наборов типовых примеров, которые принадлежат заранее определенным классам. Результатом процесса обучения является построение модели классификации на основе анализа и обобщения представленных образцов. На самом деле обучение с учителем создает модель взаимосвязи входа и выхода, т.е. осуществляет отображение набора входных атрибутов на выходные классы.

Однако использование в модели классификации сетевого трафика метода обучения без учителя может создать определенные преимущества. Основным преимуществом является то, что модель позволит идентифицировать новые приложения и группировать их в новый кластер, тогда как модели, использующие методы обучения с учителем, могут идентифицировать трафики, для которых созданы обучающие примеры, и не могут обнаружить новых приложений [8].

При классификации сетевого трафика методы без учителя не нуждаются в начальной ручной разметке входных данных, они только основываются на подобии между классифицируемыми объектами и в качестве входных данных используются статистические характеристики потока сетевых данных. Для создания модели классификации сетевого трафика в качестве метода обучения без учителя в работах [9, 10] предложено использовать кластеризацию.

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

  • P. Gupta and N.McKeown, Algorithms for packet classification // IEEE Network Magazine. 2001, vol. 15, no. 2, pp.24-32.
  • S. Sen, O. Spatscheck, and D. Wang, "Accurate, scalable in network identification of P2P traffic using application signatures", in WWW2004, New York, NY, USA, May 2004.
  • F. Risso, A. Baldini, M. Baldi, P. Monclus, O. Morandi. "Lightweight, Session-Based Traffic Classification". 89
  • A. Moore and K. Papagiannaki, "Toward the accurate identification of network applications", in Proc. Passive and Active Measurement Workshop (PAM2005), Boston, MA, USA, March/April 2005.
  • T. Karagiannis, K. Papagiannaki, and M. Faloutsos. "Blinc: Multilevel traffic classification in the dark". In Proceedings of ACM SIGCOMM, Philadelphia, PA, August, 2005.
  • V. Paxson, "Empirically derived analytic models of wide-area TCP connections", IEEE/ACM Transactions on Networking, vol. 2, no. 4, pp. 316-336, 1994.
  • A Survey of Techniques for Internet Traffic Classification using Machine Learning
  • J.Erman, A.Mahanti, and M.Arlitt, Internet Traffic Identification using Machine Learning. In GLOBECOM'06, San Francisco, USA, November, 2006.
  • M.Dunham, Data Mining: Introductory and Advance Topics. Prentice Hall, New Jersey, 1st edition, 2003.
  • N. J. Nilsson, Introduction to Machine Learning http://robotics.stanford.edu/people/nilsson/MLDraftBook/MLBOOK.pdf, accessed September 2009.
Еще
Статья научная