Команда проекта ntop (занимается развитием инструментов для захвата и анализа трафика) опубликовала выпуск инструментария для глубокого инспектирования пакетов nDPI 6.0. Решение продолжает развитие открытой библиотеки OpenDPI. Версия nDPI 5.0 вышла в ноябре 2025 года.

Проект 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.

nDPI Protocols List

По информации OpenNET, основные изменения и дополнения в nDPI 6.0:

  • изменены условия лицензирования. Базовая библиотека nDPI продолжает поставляться под лицензией LGPLv3, но некоторые модули разбора трафика, такие как DNS, QUIC и TLS, переведены на двойную лицензию: LGPLv3 для некоммерческих проектов и коммерческая лицензия для проектов, используемых для получения прибыли;

  • добавлена возможность выявления и блокирования DoS‑атак класса Slowloris, Slow POST и Slow GET, при которых клиент принимает ответ или отправляет запрос очень медленно, не закрывая соединения и но не допуская прерывания по таймауту, что позволяет исчерпать лимит на число активных соединений;

  • повышена надёжность формирования отпечатков трафика JA4, позволяющих выявлять вредоносную активность. Для снижения вероятности ложных срабатываний реализовано выборочное вычисление хэшей JA4, которое не охватывает некоторые зависящие от сессии расширения TLS, например, расширение для возобновления сеансов через предварительно согласованные ключи (PSK), снижающие уникальность хэшей JA4;

  • добавлена поддержка механизма трассировки USDT (Userland Statically Defined Tracing), интегрируемого в приложение и не создающего дополнительной нагрузки в выключенном состоянии. USDT позволяет инспектировать работу nDPI при помощи утилит bpftrace и perf на рабочих серверах без применения отдельных отладочных сборок;

  • добавлена поддержка инспектирования протоколов Meshtastic, libp2p, YGGDRASIL и Nebula, применяемых в оверлейных и mesh‑сетях;

  • реализована возможность классификации данных в форматах JSON и MsgPack, а также разделение активности, связанной с разными сервисами GitHub (Copilot, Packages, Actions) и Proton (Mail, Pass, Drive, Calendar, Docs, Wallet, Lumo, Meet);

  • добавлена поддержка выделения в трафике голосовых‑ и видеовызовов;

  • предложены новые категории управления контентом: дети, поисковые системы, насилие, наркотики и оружие.