Projekt , Entwicklung von Werkzeugen zur Erfassung und Analyse von Datenverkehr, Veröffentlichung von Werkzeugen für die tiefe Inspektion von Paketen , das die Entwicklung der Bibliothek fortsetzt. Das Projekt nDPI wurde nach einem erfolglosen Versuch gegründet, Änderungen in OpenDPI zu übertragen, das ohne Wartung blieb. Der nDPI-Code ist in C geschrieben und unter der LGPLv3-Lizenz veröffentlicht.
Projekt ermöglicht die Bestimmung der in dem Datenverkehr verwendeten Anwendungsprotokolle, indem die Art der Netzwerkaktivität analysiert wird, ohne dass eine Bindung an Netzwerkports erfolgt (kann bekannte Protokolle identifizieren, deren Handler Verbindungen an nicht standardmäßigen Netzwerkports akzeptieren, z. B. wenn HTTP nicht über Port 80 bereitgestellt wird, oder umgekehrt, wenn versucht wird, eine andere Netzwerkaktivität als HTTP über Port 80 zu tarnen).
Die Unterschiede zu OpenDPI beziehen sich auf die Unterstützung zusätzlicher Protokolle, die Portierung für die Windows-Plattform, die Leistungsoptimierung, die Anpassung für die Verwendung in Echtzeitanwendungen zur Überwachung des Datenverkehrs (einige spezifische Funktionen, die die Engine verlangsamt hätten, wurden entfernt),
die Möglichkeit der Erstellung in Form eines Linux-Kernelmoduls und die Unterstützung der Bestimmung von Unterprotokollen.
Insgesamt werden 238 Protokolle und Anwendungen unterstützt, von
OpenVPN, Tor, QUIC, SOCKS, BitTorrent und IPsec bis zu Telegram,
Viber, WhatsApp, PostgreSQL und Zugriffe auf GMail, Office365,
GoogleDocs und YouTube. Es gibt einen Decoder für Server- und Client-SSL-Zertifikate, der es ermöglicht, das Protokoll zu identifizieren (z. B. Citrix Online und Apple iCloud), indem das Verschlüsselungszertifikat verwendet wird. Zur Analyse von Inhalten in pcap-Dumps oder laufendem Datenverkehr über das Netzwerkinterface wird das Hilfsprogramm nDPIreader bereitgestellt.
$ ./nDPIreader -i eth0 -s 20 -f "host 192.168.1.10"
Erkannte Protokolle:
DNS Pakete: 57 Bytes: 7904 Flows: 28
SSL_No_Cert Pakete: 483 Bytes: 229203 Flows: 6
FaceBook Pakete: 136 Bytes: 74702 Flows: 4
DropBox Pakete: 9 Bytes: 668 Flows: 3
Skype Pakete: 5 Bytes: 339 Flows: 3
Google Pakete: 1700 Bytes: 619135 Flows: 34
In der neuen Version:
- Information zum Protokoll wird jetzt sofort bei der Bestimmung angezeigt, ohne auf die vollständigen Metadaten zu warten (auch wenn spezifische Felder aufgrund des fehlenden Empfangs der entsprechenden Netzwerkpakete noch nicht analysiert sind), was für Verkehrsanalysatoren relevant ist, die sofort auf bestimmte Arten von Traffic reagieren müssen. Für Anwendungen, die eine vollständige Protokollanalyse benötigen, wurde die API ndpi_extra_dissection_possible() angeboten, die sicherstellt, dass alle Metadaten des Protokolls definiert sind.
- Eine tiefere TLS-Analyse wurde implementiert, die Informationen zur Gültigkeit des Zertifikats und dem SHA-1-Hash des Zertifikats extrahiert.
- Im nDPIreader wurde das Flag „-C“ für den Export im CSV-Format hinzugefügt, was es ermöglicht, mit zusätzliche Werkzeugen von ntop recht komplexe statistische Abfragen. Zum Beispiel zur Bestimmung der IP-Adresse eines Benutzers, der am längsten Filme auf NetFlix angesehen hat:
$ ndpiReader -i netflix.pcap -C /tmp/netflix.csv
$ q -H -d ‘,’ «select src_ip,SUM(src2dst_bytes+dst2src_bytes) from /tmp/netflix.csv where ndpi_proto like ‘%NetFlix%’ group by src_ip»192.168.1.7,6151821
- Unterstützung für die in zur Erkennung bösartiger Aktivitäten, die im verschlüsselten Verkehr verborgen sind, wurde hinzugefügt, wobei die Analyse der Paketgrößen und der Sendezeiten/Verzögerungen verwendet wird. Im ndpiReader wird die Methode über die Option „-J“ aktiviert.
- Die Klassifizierung von Protokollen in Kategorien wurde sichergestellt.
- Unterstützung für die Berechnung der IAT (Inter-Arrival Time) zur Erkennung von Anomalien in der Nutzung des Protokolls wurde hinzugefügt, zum Beispiel zur Identifizierung von Protokollnutzungen bei der Durchführung von DoS-Attacken.
- Funktionen zur Analyse von Daten basierend auf berechneten Metriken wie Entropie, Durchschnitt, Standardabweichung und Varianz wurden hinzugefügt.
- Eine erste Version von Bindings für die Programmiersprache Python wurde vorgeschlagen.
- Ein Modus zur Erkennung von lesbaren Zeichenfolgen im Verkehr zur Aufdeckung von Datenlecks wurde hinzugefügt. Im
ndpiReader wird der Modus über die Option „-e“ aktiviert. - Unterstützung für Methoden zur Identifizierung von TLS-Clients , die es ermöglichen, basierend auf den Eigenschaften des Verbindungsaufbaus und der festgelegten Parameter zu bestimmen, welche Software zur Verbindungsherstellung verwendet wird (zum Beispiel ermöglicht es, die Verwendung von Tor und anderen Standardanwendungen zu identifizieren).
- Unterstützung für Identifikationsmethoden von SSH-Implementierungen () und DHCP wurde hinzugefügt.
- Funktionen zur Serialisierung und Deserialisierung von Daten in
den Formaten Type-Length-Value (TLV) und JSON wurden hinzugefügt. - Unterstützung für Protokolle und Dienste hinzugefügt: DTLS (TLS über UDP),
Hulu,
TikTok/Musical.ly,
WhatsApp Video,
DNSoverHTTPS,
Datenreduktion,
Line,
Google Duo, Hangout,
WireGuard VPN,
IMO,
Zoom.us. - Verbesserte Unterstützung für die Analyse von TLS, SIP, STUN,
Viber,
WhatsApp,
AmazonVideo,
SnapChat,
FTP,
QUIC
OpenVPN UDP,
Facebook Messenger und Hangout.
Quelle: opennet.ru
