Projekt ntop, rozwijający narzędzia do przechwytywania i analizy ruchu, opublikował zestaw narzędzi do głębokiej inspekcji pakietów nDPI 6.0, kontynuując rozwój biblioteki OpenDPI. Projekt nDPI został założony po nieudanej próbie wprowadzenia zmian do repozytorium OpenDPI, które pozostało bez wsparcia. Kod nDPI napisany jest w języku C i jest rozpowszechniany na podstawie licencji LGPLv3.
System pozwala określać w ruchu używane protokoły warstwy aplikacji, analizując charakterystykę aktywności sieciowej bez przypisania do portów sieciowych (może określać znane protokoły, których obsługiwacze przyjmują połączenia na niestandardowych portach, na przykład, jeżeli http jest udostępniane nie z portu 80, lub odwrotnie, gdy jakąś inną aktywność sieciową próbują zamaskować pod http uruchamiając na porcie 80).
Różnice w stosunku do OpenDPI sprowadzają się do wsparcia dodatkowych protokołów, przeniesienia na platformę Windows, optymalizacji wydajności, adaptacji do zastosowania w aplikacjach do monitorowania ruchu w czasie rzeczywistym (usunięto niektóre specyficzne możliwości, które spowalniały silnik), możliwości budowy w formie modułu jądra Linux oraz wsparcia dla definiowania subprotokółów.
Wspierane jest określenie 56 typów zagrożeń sieciowych (flow risk) oraz ponad 450 protokołów i aplikacji (od OpenVPN, Tor, QUIC, SOCKS, BitTorrent i IPsec po Telegram, Viber, WhatsApp, PostgreSQL oraz zapytania do Gmail, Office 365, Google Docs i YouTube). Istnieje dekoder certyfikatów serwerowych i klienckich. SSL-certyfikatów, który pozwala określić protokół (na przykład Citrix Online i Apple iCloud), korzystając z certyfikatu szyfrowania. Do analizy zawartości zrzutów pcap lub bieżącego ruchu przez interfejs sieciowy dostarczana jest narzędzie nDPIreader.
W nowym wydaniu:
- Zmieniły się warunki licencjonowania. Podstawowa biblioteka nDPI wciąż jest dostarczana na podstawie licencji LGPLv3, ale niektóre moduły analizy ruchu, takie jak DNS, QUIC i TLS, przeszły na podwójną licencję: LGPLv3 dla projektów niekomercyjnych i licencję komercyjną dla projektów wykorzystywanych do osiągania zysku.
- Dodano możliwość wykrywania i blokowania ataków DoS klasy Slowloris, Slow POST i Slow GET, w których klient przyjmuje odpowiedź lub wysyła zapytanie bardzo wolno, nie zamykając połączenia, ale również nie dopuszczając do przerwania przez timeout, co pozwala wyczerpać limit na liczbę aktywnych połączeń.
- Zwiększona niezawodność formowania odcisków ruchu JA4, co umożliwia wykrywanie złośliwej aktywności. Aby zredukować prawdopodobieństwo fałszywych alarmów, wprowadzono selektywne obliczanie hashy JA4, które nie obejmuje niektórych zależnych od sesji rozszerzeń TLS, takich jak rozszerzenie do wznawiania sesji za pomocą wcześniej uzgodnionych kluczy (PSK), co zmniejsza unikalność hashy JA4.
- Dodano wsparcie dla mechanizmu śledzenia USDT (Userland Statically Defined Tracing), który można integrować w aplikacji i nie generuje dodatkowego obciążenia w stanie wyłączonym. USDT umożliwia inspekcję działania nDPI przy użyciu narzędzi bpftrace i perf na stanowiskach roboczych serwerach bez użycia oddzielnych wersji debugujących.
- Dodano wsparcie dla inspekcji protokołów Meshtastic, libp2p, YGGDRASIL i Nebula, stosowanych w sieciach overlay i mesh.
- Wprowadzono możliwość klasyfikacji danych w formatach JSON i MsgPack, a także rozdzielenie aktywności związanej z różnymi usługami GitHub (Copilot, Packages, Actions) oraz Proton (Mail, Pass, Drive, Calendar, Docs, Wallet, Lumo, Meet).
- Dodano wsparcie dla wyróżniania w ruchu połączeń głosowych i wideo.
- Proponowane nowe kategorie zarządzania treścią: dzieci, wyszukiwarki, przemoc, narkotyki i broń.
Źródło: opennet.ru
