Вступление и обоснование важности

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

В качестве примера важности классификации сетевого трафика можно привести асимметричную архитектуру современных каналов доступа к сети, которая была разработана на основе предположения, что клиенты скачивают больше, чем они загружают. Однако повсеместное распространение приложений симметричного спроса (таких, как point-to-point приложения, VoIP (voice over IP) и видеозвонки) повлияло на требования клиентов, из-за чего классическая ассиметричная архитектура стала устаревшей. Ключевую роль в таких ситуациях имеет понятие качества опыта (Quality of Experience). Некоторые приложение нечувствительны к задержке информации (текстовые чаты, посещение сайтов), в то время как для видеосвязи и потоковых приложений (Netflix, Spotify) задержка зачастую критична. Таким образом, чтобы обеспечить удовлетворительный работу устройства  клиента, требуется знание уровня приложений для выделения соответствующих  ресурсов для каждого приложения.

Проблемы классификации сетевого трафика

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

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

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

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

Обзор

Можно разделить современные подходы классификации трафика на три основные категории: (I) методы, основанные на портах, (II) технологии контроля полезной нагрузки и (III) статистические подходы и подходы машинного обучения . Вот краткий обзор наиболее важных и недавних исследований, касающихся каждого из упомянутых выше подходов.

Подход, основанный на портах

Классификация трафика по номеру порта является самым старым и наиболее известным методом решения этой задачи. Классификаторы на основе портов используют информацию в TCP-UDP-заголовках пакетов для извлечения номера порта, который, как предполагается, связан с конкретным приложением. После извлечения номера порта он сравнивается с присвоенными IANA TCP-UDP номерами портов для классификации трафика. Извлечение — это простая процедура, и номера портов не будут затронуты схемами шифрования. Из-за быстрого процесса извлечения этот метод часто используется в брандмауэрах и списках контроля доступа (ACL). Классификация на основе портов является одним из самых простых и быстрых методов идентификации сетевого трафика. Однако повсеместное распространение обфускации портов, трансляции сетевых адресов (NAT), переадресации портов, внедрения протоколов и случайных назначений портов значительно снизило точность этого подхода. Согласно некоторым исследованиям, только от 30% до 70% текущего интернет-трафика можно классифицировать с помощью методов классификации на основе портов.

Методы контроля полезной нагрузки

Эти методы основаны на анализе информации, доступной в прикладном слое полезной нагрузки пакетов. Большинство этих методов, также известных как deep packet inspection (DPI), используют предопределенные шаблоны (например, регулярные выражения), в качестве «подписи» для каждого протокола. Полученные паттерны затем используются для различения протоколов друг от друга. Необходимость обновления шаблонов всякий раз, когда выпускается новый протокол, и проблемы с пользовательской конфиденциальностью являются одними из наиболее важных недостатков этого подхода. В 2015 г. была предложена новая система DPI ([1]) (Sherry et al. 2015), которая может проверять зашифрованную payload без расшифровки, тем самым решив проблему конфиденциальности пользователя, но она может обрабатывать только HTTP Secure (HTTPS) трафик.

Статистические подходы и подходы машинного обучения 

Некоторые из этих методов, в основном известные как статистические методы, исходят из предположения, что трафик для каждого приложения имеет некоторые статистические особенности, которые практически уникальны. Каждый статистический метод использует свои собственные функции и статистику. В 2007 г. был предложен метод protocol fingerprints ([2]), основанный на оценке плотности вероятности времени между соседними принятыми пакетами и на нормализованных пороговых значениях. Авторы достигли точности до 91% для группы протоколов, включающих в себя HTTP, Post Office Protocol 3 (POP3) и Simple Mail Transfer Protocol (SMTP). В аналогичной работе рассматривалась плотность вероятности размера пакета. Эта схема была способна идентифицировать более широкий спектр протоколов, включая протокол передачи файлов (FTP), протокол доступа к интернет-сообщениям (IMAP), SSH и TELNET с точностью до 87%.

Две из наиболее важных работ, протестированных на классическом датасете ISCX VPN-nonVPN, основаны на методах машинного обучения. В исследовании [3] использовали признаки, основанные на временных характеристиках потоков, такие как продолжительность потока, байты потока в секунду, разница между соседними отправленными и принятыми пакетами и т. д. для того, чтобы охарактеризовать сетевой трафик с использованием алгоритмов K-ближайших соседей (k-Nearest Neighbours) и решающего дерева C4.5. Они достигли примерно 92% точности, характеризуя шесть основных классов трафика (включающих просмотр веб-страниц, электронную почту, чат, потоковую передачу, передачу файлов и VoIP) при помощи алгоритма C4.5. Они также достигли примерно 88% точности, используя алгоритм C4.5 на том же наборе данных, который туннелируется через VPN. 

Основным недостатком всех этих подходов является то, что этапы извлечения признаков и выбора признаков по существу выполняются с помощью эксперта. Следовательно, это делает такие подходы трудоемкими, дорогостоящими и подверженными человеческим ошибкам.

Deep Packet

В исследовании [4] был предложен подход, основанный на глубоком обучении, который объединяет этапы извлечения признаков и классификации в одну систему. Предложенная схема, называемая “Deep Packet», может проводить как классификацию трафика, в которой сетевой трафик подразделяется на основные классы (например, FTP и P2P), так и определение конкретных приложений, в которых требуется идентификация приложений конечных пользователей (например, BitTorrent и Skype). В отличие от большинства современных методов, Deep Packet может идентифицировать зашифрованный трафик, а также различать VPN-трафик и не-VPN-трафик. Фреймворк Deep Packet’а использует две глубокие нейронные сети, а именно stacked autoencoder и сверточную нейронную сеть (CNN). Эксперименты показали, что наилучший результат достигается, когда Deep Packet использует CNN в качестве своей классификационной модели, где он достигает точности 0,98 в задаче идентификации приложений и 0,94 в задаче классификации трафика. Deep Packet, опубликованный в 2020 году, превосходит все предложенные методы классификации в наборе данных UNB ISCX VPN-nonVPN.

[1] Sherry J, Lan C, Popa RA, Ratnasamy S (2015) Blindbox: deep packet inspection over encrypted traffic. ACM SIGCOMM Comput Com- mun Rev ACM 45:213–226

[2] Crotti M, Dusi M, Gringoli F, Salgarelli L (2007) Traffic classification through simple statistical fingerprinting. ACM SIGCOMM Com- put Commun Rev 37(1):5–16

[3] Gil GD, Lashkari AH, Mamun M, Ghorbani AA (2016) Characteriza- tion of encrypted and vpn traffic using time-related features. In: Proceedings of the 2nd international conference on information systems security and privacy (ICISSP 2016), pp 407–414

[4] Lotfollahi, M., Jafari Siavoshani, M., Shirali Hossein Zade, R. et al. Deep packet: a novel approach for encrypted traffic classification using deep learning. Soft Comput 24, 1999–2012 (2020).