Progetto , uno sviluppatore di strumenti per la cattura e l'analisi del traffico, rilascio di strumenti per l'ispezione profonda dei pacchetti , che continua a sviluppare la libreria . Il progetto nDPI è stato avviato dopo un tentativo non riuscito di trasferire modifiche in OpenDPI, che è rimasto senza supporto. Il codice nDPI è scritto in C e è rilasciato sotto la licenza LGPLv3.
Progetto identifica i protocolli delle applicazioni nel traffico, analizzando il formato dell'attività di rete senza legami con le porte di rete (può identificare protocolli noti, i cui gestori accettano connessioni su porte di rete non standard, ad esempio, se http viene fornito non dalla porta 80, o viceversa, quando un'altra attività di rete cerca di mimetizzarsi sotto http eseguendo sulla porta 80).
Le differenze rispetto a OpenDPI si riassumono nel supporto di protocolli aggiuntivi, nel porting per la piattaforma Windows, nell'ottimizzazione delle prestazioni, nell'adattamento per l'uso in applicazioni di monitoraggio del traffico in tempo reale (alcune funzionalità specifiche, che rallentavano il motore, sono state rimosse),
nella possibilità di compilation come modulo del kernel Linux e nel supporto per l'identificazione dei sottoprotocolli.
In totale, supporta l'identificazione di 238 protocolli e applicazioni, da
OpenVPN, Tor, QUIC, SOCKS, BitTorrent e IPsec fino a Telegram,
Viber, WhatsApp, PostgreSQL e anche accessi a GMail, Office365
GoogleDocs e YouTube. È presente un decodificatore di certificati SSL server e client, che consente di identificare il protocollo (ad esempio, Citrix Online e Apple iCloud), utilizzando il certificato di crittografia. Per analizzare il contenuto delle dump pcap o il traffico attuale tramite l'interfaccia di rete, è fornuto lo strumento nDPIreader.
$ ./nDPIreader -i eth0 -s 20 -f «host 192.168.1.10»
Protocolli rilevati:
DNS pacchetti: 57 byte: 7904 flussi: 28
SSL_No_Cert pacchetti: 483 byte: 229203 flussi: 6
FaceBook pacchetti: 136 byte: 74702 flussi: 4
DropBox pacchetti: 9 byte: 668 flussi: 3
Skype pacchetti: 5 byte: 339 flussi: 3
Google pacchetti: 1700 byte: 619135 flussi: 34
Nel nuovo rilascio:
- Le informazioni sul protocollo vengono ora visualizzate immediatamente al momento della rilevazione, senza dover attendere il ricevimento dei metadati completi (anche quando i campi specifici non sono ancora stati elaborati a causa della mancata ricezione dei pacchetti di rete corrispondenti), il che è rilevante per gli analizzatori di traffico che devono rispondere subito a determinati tipi di traffico. Per le applicazioni che necessitano di un'analisi completa del protocollo, è stato proposto l'API ndpi_extra_dissection_possible(), che consente di verificare che tutti i metadati del protocollo siano definiti.
- È stata implementata un'analisi più approfondita di TLS con l'estrazione delle informazioni sulla validità del certificato e l'hash SHA-1 del certificato.
- Nell'app nDPIreader è stato aggiunto il flag «-C» per l'esportazione in formato CSV, il che consente, tramite strumenti aggiuntivi di ntop, selezioni statistiche piuttosto complesse. Ad esempio, per determinare l'indirizzo IP dell'utente che ha guardato film su NetFlix per più tempo:
$ 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
- È stata aggiunta la supporto per la tecnica proposta in È stata garantita la classificazione dei protocolli in categorie.
- È stata aggiunta la supporto per il calcolo IAT (Inter-Arrival Time) per identificare anomalie nell'uso del protocollo, ad esempio, per identificare l'uso del protocollo durante attacchi DoS.
- Sono state aggiunte funzionalità di analisi dei dati basate su metriche calcolate, come entropia, media, deviazione standard e varianza.
- È stata proposta una versione iniziale dei binding per il linguaggio Python.
- È stata aggiunta una modalità di identificazione nel traffico delle stringhe leggibili per rilevare perdite di dati. In
- ndpiReader, la modalità viene attivata dall'opzione «-e».
È stata aggiunta la supporto per il metodo di identificazione dei client TLS - JA3 È stata aggiunta la supporto per i metodi di identificazione delle implementazioni SSH (
- ) e DHCP.Sono state aggiunte funzionalità per la serializzazione e deserializzazione dei dati in
- formati Type-Length-Value (TLV) e JSON.
formati Type-Length-Value (TLV) e JSON. - Aggiunta la supporto per i protocolli e i servizi: DTLS (TLS su UDP),
Hulu,
TikTok/Musical.ly,
WhatsApp Video,
DNSoverHTTPS,
Datasaver,
Line,
Google Duo, Hangout,
WireGuard VPN,
IMO,
Zoom.us. - Migliorato il supporto per l'analisi di TLS, SIP, STUN,
Viber,
WhatsApp,
AmazonVideo,
SnapChat,
FTP,
QUIC
OpenVPN UDP,
Facebook Messenger e Hangout.
Fonte: opennet.ru
