Projet , un outil de développement pour la capture et l'analyse du trafic, la sortie d'outils pour l'inspection approfondie des paquets , poursuivant le développement de la bibliothèque . Le projet nDPI a été fondé après une tentative infructueuse de transmettre des modifications à OpenDPI, qui n'est plus maintenu. Le code de nDPI est écrit en langage C et est sous licence LGPLv3.
Projet déterminer dans le trafic les protocoles de niveau application utilisés, en analysant la nature de l'activité réseau sans dépendre des ports réseau (il peut identifier des protocoles connus dont les gestionnaires acceptent des connexions sur des ports réseau non standards, par exemple, si http est servi sur un port autre que le port 80, ou, à l'inverse, lorsque toute autre activité réseau est tentée d'être camouflée sous http exécuté sur le port 80).
Les différences par rapport à OpenDPI se résument au support de protocoles supplémentaires, la portabilité pour la plateforme Windows, l'optimisation des performances, l'adaptation pour une utilisation dans des applications de surveillance du trafic en temps réel (certaines fonctionnalités spécifiques qui ralentissaient le moteur ont été supprimées),
la possibilité de construction sous forme de module du noyau Linux et le support de la détection de sous-protocoles.
Au total, 238 protocoles et applications sont pris en charge, allant de
OpenVPN, Tor, QUIC, SOCKS, BitTorrent et IPsec à Telegram,
Viber, WhatsApp, PostgreSQL et les accès à GMail, Office365,
GoogleDocs et YouTube. Un décodeur de certificats SSL serveur et client est inclus, permettant de déterminer le protocole (par exemple, Citrix Online et Apple iCloud), en utilisant le certificat de chiffrement. Pour l'analyse du contenu des dumps pcap ou du trafic actuel via une interface réseau, l'outil nDPIreader est fourni.
$ ./nDPIreader -i eth0 -s 20 -f «host 192.168.1.10»
Protocoles détectés :
DNS paquets : 57 octets : 7904 flux : 28
SSL_No_Cert paquets : 483 octets : 229203 flux : 6
FaceBook paquets : 136 octets : 74702 flux : 4
DropBox paquets : 9 octets : 668 flux : 3
Skype paquets : 5 octets : 339 flux : 3
Google paquets : 1700 octets : 619135 flux : 34
Dans cette nouvelle version :
- Les informations sur le protocole sont désormais affichées immédiatement lors de la détection, sans attendre la réception des métadonnées complètes (même lorsque des champs spécifiques n'ont pas encore été analysés en raison de la non-réception des paquets réseau correspondants), ce qui est pertinent pour les analyseurs de trafic qui doivent réagir rapidement à certains types de trafic. Pour les applications nécessitant une analyse complète du protocole, une API nommée ndpi_extra_dissection_possible() a été proposée, permettant de s'assurer que toutes les métadonnées du protocole sont définies.
- Une analyse TLS plus approfondie a été mise en œuvre avec l'extraction d'informations sur la validité du certificat et le hachage SHA-1 du certificat.
- Un nouveau drapeau « -C » a été ajouté à l'application nDPIreader pour l'exportation au format CSV, ce qui permet, à l'aide d'outils supplémentaires comme ntop, des échantillons statistiques assez complexes. Par exemple, pour identifier l'adresse IP de l'utilisateur qui a regardé le plus de films sur Netflix :
$ 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
- Ajout du support de la technique proposée par Clustering des protocoles par catégories.
- Ajout de la prise en charge du calcul de l'IAT (Inter-Arrival Time) pour détecter les anomalies dans l'utilisation du protocole, par exemple, pour identifier l'utilisation du protocole lors d'attaques DoS.
- Ajout de capacités d'analyse des données basées sur des métriques calculées telles que l'entropie, la moyenne, l'écart-type et la variance.
- Une version initiale des bindings pour le langage Python a été proposée.
- Ajout d'un mode de détection dans le trafic des chaînes lisibles pour identifier les fuites de données. Dans
- ndpiReader, le mode est activé avec l'option « -e ».
Ajout de la prise en charge de la méthode d'identification des clients TLS - JA3 Ajout de la prise en charge des méthodes d'identification des implémentations SSH (
- HASSHAjout de fonctions pour la sérialisation et la désérialisation des données dans
- les formats Type-Length-Value (TLV) et JSON.
formats Type-Length-Value (TLV) et JSON. - Prise en charge des protocoles et services ajoutée : DTLS (TLS sur UDP),
Hulu,
TikTok/Musical.ly,
Vidéo WhatsApp,
DNSoverHTTPS,
Economiseur de données,
Line,
Google Duo, Hangout,
WireGuard VPN,
IMO,
Zoom.us. - Amélioration de la prise en charge de l'analyse TLS, SIP, STUN,
Viber,
WhatsApp,
AmazonVideo,
SnapChat,
FTP,
QUIC
OpenVPN UDP,
Facebook Messenger et Hangout.
Source : opennet.ru
