Progetto , sviluppa strumenti per la cattura e l'analisi del traffico, rilascia strumenti per l'ispezione approfondita dei pacchetti , che continua lo sviluppo della libreria . Il progetto nDPI è stato avviato dopo un tentativo infruttuoso di trasferire modifiche in OpenDPI, che è rimasto senza supporto. Il codice nDPI è scritto in C ed è sotto licenza LGPLv3.
Progetto per identificare nei dati di traffico i protocolli utilizzati a livello applicativo, analizzando il comportamento dell'attività di rete senza legarsi alle porte di rete (può identificare protocolli noti la cui gestione accetta connessioni su porte di rete non standard, ad esempio se http viene servito da una porta diversa dalla 80, o, al contrario, quando si cerca di camuffare un'altra attività di rete come http avviandola sulla porta 80).
Le differenze rispetto a OpenDPI riguardano il supporto per protocolli aggiuntivi, la portabilità per la piattaforma Windows, l'ottimizzazione delle prestazioni, l'adattamento per l'uso in applicazioni per il monitoraggio del traffico in tempo reale (sono state rimosse alcune funzionalità specifiche che rallentavano il motore),
opzioni di assemblaggio in forma di modulo del kernel Linux e supporto per la definizione dei sottoprotocollo.
Sono supportate in totale 238 definizioni di protocolli e applicazioni, da
OpenVPN, Tor, QUIC, SOCKS, BitTorrent e IPsec a Telegram,
Viber, WhatsApp, PostgreSQL e accessi a GMail, Office365,
GoogleDocs e YouTube. È disponibile un decoder per certificati SSL di server e client, che consente di identificare il protocollo (ad esempio, Citrix Online e Apple iCloud), utilizzando il certificato di crittografia. Per l'analisi dei contenuti dei dump pcap o del traffico attuale tramite 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 dell'identificazione, senza attendere il caricamento di metadati completi (anche quando i campi specifici non sono ancora stati analizzati a causa della mancata ricezione dei relativi pacchetti di rete), il che è rilevante per i parser di traffico che devono rispondere prontamente a determinati tipi di traffico. Per le applicazioni che necessitano di un'analisi completa del protocollo, è stato introdotto 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 estrazione di informazioni sulla validità del certificato e l'hash SHA-1 del certificato.
- Nell'applicazione nDPIreader è stato aggiunto il flag «-C» per l'esportazione in formato CSV, il che consente, con strumenti aggiuntivi ntop, selezioni statistiche piuttosto complesse. Ad esempio, per determinare l'indirizzo IP dell'utente che ha guardato film su NetFlix più a lungo:
$ 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 definizioni di attività dannose nascoste nel traffico crittografato, utilizzando l'analisi delle dimensioni dei pacchetti e dei tempi di invio/ritardo. Nel ndpiReader, il metodo è attivato dall'opzione «-J».
- È stata garantita la classificazione dei protocolli per categorie.
- Aggiunta la supporto per il calcolo dell'IAT (Inter-Arrival Time) per identificare anomalie nell'utilizzo del protocollo, ad esempio, per rilevare l'uso del protocollo durante attacchi DoS.
- Aggiunte capacità di analisi dei dati basate su metriche calcolate, come entropia, media, deviazione standard e varianza.
- Proposta una versione iniziale dei binding per il linguaggio Python.
- Aggiunto un modalità per l'identificazione nel traffico di stringhe leggibili per rilevare perdite di dati. Nel
ndpiReader, la modalità è attivata dall'opzione «-e». - Aggiunta la supporto per il metodo di identificazione dei client TLS , che consente di determinare quale software viene utilizzato per stabilire la connessione (ad esempio, consente di identificare l'uso di Tor e altre applicazioni tipiche) sulla base delle caratteristiche del handshake e dei parametri specificati.
- Aggiunta la supporto per i metodi di identificazione delle implementazioni SSH () e DHCP.
- Aggiunte funzionalità per la serializzazione e deserializzazione dei dati in
formati Type-Length-Value (TLV) e JSON. - Aggiunto supporto per i protocolli e i servizi: DTLS (TLS over 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
