Есть вопросы? info@skydigital.pro

Классификатор интернет трафика на основе машинного обучения

Определение интернет протокола прикладного уровня (принадлежность к сервисам и приложениям) без использования DPI.
Учитываются только статистические метрики потока!

Альтернативный способ решения одной из главных задач DPI (deep packet inspection – глубокий анализ пакетов): определения протокола прикладного уровня на основе всего нескольких пакетов, при этом не сверяясь со списком ip адресов и широко известных портов (well-known ports), и даже не заглядывая в полезную нагрузку.

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

Как очередной раз показали последние события с Telegram использование сигнатур ip/порт для определения протокола также не работают. Клиент с легкостью меняет ip адреса и порты и провайдер/регулятор за ним попросту не успевает.

Мы создали систему, которая определяет интернет протокол прикладного уровня (принадлежность к сервисам и приложениям) используя только статистические метрики потока на основе машинного обучения. Для определения используются только размеры первых N пакетов (как показал эксперимент, достаточно трех!)
Для идентификации протокола не используется список известных ip-адресов и портов. Также не рассматривается полезная нагрузка пакетов.

В тестовой выборке трафик Telegram идентифицировался не смотря на разнообразие ip и портов.

Система показывает высокие результаты при анализе всего лишь первых трех пакетов потока (не считая TCP handshake).
Точность предсказаний доходит до >99%.


Матрица ошибок:



В прототипе модели обучаются по принципу "все-против-всех". Т.е. одна математическая модель делает мультиклассовую классификацию.
Использовались модели Support Vector Machine, Random Forest, eXtreme Gradient Boosting.

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

Прототип написан на языке R.
Для использования модели на продакшене можно ее обучить, а потом портировать в другие языки, например С++, с помощью PMML (Predictive Model Markup Language).

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

Понравилось? Полезно? Тогда расскажите об этом миру! Поделиться ссылкой на этот материал в ваших любимых соцмедиа: