Команда проекта ntop (занимается развитием инструментов для захвата и анализа трафика) опубликовала выпуск инструментария для глубокого инспектирования пакетов nDPI 5.0. Решение продолжает развитие открытой библиотеки OpenDPI.
Проект nDPI основан после безуспешной попытки передачи изменений в репозиторий OpenDPI, который остался без сопровождения. Исходный код nDPI написан на языке C и опубликован на GitHub под лицензией LGPLv3.
Система nDPI позволяет определять в трафике используемые протоколы уровня приложений, анализируя характер сетевой активности без привязки к сетевым портам. Решение умеет определять известные протоколы, обработчики которых принимают соединения на нестандартных сетевых портах, например, если http отдаётся не с 80 порта, или, наоборот, когда какую‑то другую сетевую активность пытаются закамуфлировать под http через запуск на 80 порту.
Отличия nDPI от OpenDPI сводятся к поддержке дополнительных протоколов, портированию для платформы Windows, оптимизации производительности, адаптации для применения в приложениях для мониторинга трафика в режиме реального времени. В проекте убраны некоторые специфичные возможности, замедлявшие движок, а также есть возможности сборки в форме модуля ядра Linux и поддержке определения субпротоколов.
В nDPI поддерживается определение 56 типов сетевых угроз (flow risk) и более 450 протоколов и приложений (от OpenVPN, Tor, QUIC, SOCKS, BitTorrent и IPsec до Telegram, Viber, WhatsApp, PostgreSQL и обращений к Gmail, Office 365, Google Docs и YouTube).
В nDPI доступен декодировщик серверных и клиентских SSL‑сертификатов, позволяющий определить протокол (например, Citrix Online и Apple iCloud), используя сертификат шифрования. Для анализа содержимого pcap‑дампов или текущего трафика через сетевой интерфейс поставляется утилита nDPIreader.
По информации OpenNET, основные изменения и дополнения вnDPI 5.0:
реализован универсальный механизм для идентификации трафика, комбинирующий в одном маркере трафика (fingerprint) метаданные о слепках TCP, хэшах TLS‑сертификата и JA4 (идентификаторы для определения сетевых протоколов и приложений). Новый механизм позволяет более точно определять и сопоставлять шифрованный или обфусцированный трафик;
добавлена возможность определения потоков TLS, QUIC и HTTP, в которых фигурируют имена хостов (например, в SNI для TLS/QUIC и в заголовке Host для HTTP), для которых ранее не выполнялся резолвинг через DNS. Подобная активность может применяться для выявления аномалий, скрытых каналов передачи данных и методов обхода фильтрации;
до 2^16 поднято ограничение на число определяемых протоколов и категорий трафика, что позволяет выявлять практически неограниченное число протоколов при инспектировании трафика. Все доступные протоколы теперь включены по умолчанию;
в правила добавлены новые опции для классификации трафика по слепкам (fingerprint), JA4-идентификаторам приложений и протоколов, HTTP URL и категориям;
улучшена поддержка технологии FPC (First Packet Classification), нацеленной на определение протоколов, приложений и сервисов по первому пакету, отправляемому при установке соединения. FPC позволяет существенно снизить нагрузку на CPU при инспектировании трафика;
удалена поддержка псевдопротоколов, таких как ADULT_CONTENT, LLM и ADS_ANALYTICS_TRACK, вместо которых теперь используется классификация на основе категорий;
добавлена поддержка и возможность разбора новых протоколов, среди которых Microsoft Delivery Optimization, Rockstar Games, Kick.com, MELSEC, Hamachi, GLBP, Matter, TriStation, Samsung SDP, ESPN и Akamai;
добавлены новые подкатегории и расширена классификация сервисов Amazon/AWS;
добавлено около 30 новых категорий и повышена детализация при анализе трафика;
добавлен анализатор размера блоков данных для TLS‑соединений;
добавлена возможность создания стеков протоколов, охватывающих два и более протокола при классификации трафика;
добавлены новые API для ранжирования трафика и кодирования/декодирования шестнадцатеричных последовательностей;
обновлены списки ботов, сетевых сканеров и пулов майнинга;
обновлён код для разбора протоколов HTTP, TLS и STUN;
ускорена инициализация и повышена эффективность управления памятью.
Источник: habr.com