Internet corre sempre più veloce, i pericoli nel mondo digitale sono aumentati e diventa
sempre più complicato esplorare il web.
Un tempo, quando c’erano solo il Web 1.0 ed il “buon vecchio” HTML, il rischio più grande che correvamo era quello di trovarci di fronte ad un banale errore del browser. Chi di noi non si è mai imbattuto in un “404 not found?”.
Adesso che, col Web 2.0, interagiamo e modifichiamo i contenuti delle pagine direttamente online, siamo esposti a minacce quotidiane che si insidiano e si nascondono dietro semplici azioni come quella di cliccare su un link.
In molti hanno proposto e continuano a proporre soluzioni che possiamo usare per proteggerci e difenderci dai cyber-attacchi. In questo articolo vedremo ntopng, una delle soluzioni più note soprattutto nel mondo opensource.
Presentazione
Ntopng è nato come strumento di analisi del traffico e con il tempo si è “evoluto” fino a diventare un application filter. L’autore del progetto è il Prof. Luca Deri, “Research Scientist and Network Manager” presso il Dipartimento di Informatica dell’Università di Pisa.
Visitando la pagina web di Luca, http://luca.ntop.org/, possiamo trovare tutte le sue pubblicazioni fatte nel corso degli anni, farci un’idea sull’ambito delle sue ricerche scientifiche e capire un po’ quale sia lo spirito con cui ha creato ntopng.
A tal proposito è d’obbligo citare una sua frase: “The Internet today represents for me what free radio represented in the 70s. This page is here because of my need to tell everybody what I think, do, create. Herein you can find all I’ve been able to do in the last years that is my humble and tiny contribution to computer science (r)evolution.“
Che cos’è NtopNG
ntopng è uno strumento di networking per l’analisi del traffico che offre una visibilità senza precedenti
sui pacchetti che viaggiano in rete.
Una delle funzioni più interessanti presenti dell’ultima versione di ntopng è senza dubbio quella di application filter, grazie alla quale possiamo controllare più di 250 applicazioni tra le quali Facebook, Youtube, WhatsApp, Skype e Tor, bloccando o limitando la banda delle richieste dei client e impedendo, di fatto, il loro utilizzo non controllato. Vediamo adesso alcune funzioni e scopriamone le potenzialità.
Panoramica delle features
ntopn viene rilasciato in tre differenti versioni: Community, Professional ed Enterprise. Le varie feature sono indicate nella seguente tabella comparativa.
Feature | Community | Professional | Enterprise |
---|---|---|---|
Monitoraggio dei flussi attivi e degli hosts della rete † | ✓ | ✓ | ✓ |
Identificazione di protocolli applicativi (Facebook, Youtube, BitTorrent, etc) nel traffico | ✓ | ✓ | ✓ |
Registrazione e visualizzazione dell’utilizzo dei protocolli applicativi per ogni host nel tempo | ✓ | ✓ | ✓ |
Raggruppamento degli host per VLAN, Sistema Operativo, Paese, e Autonomous Systems | ✓ | ✓ | ✓ |
Mappa geografica delle comunicazioni di rete effettuate da ogni host | ✓ | ✓ | ✓ |
Identificazione degli host top talker (mittenti e ricevitori) con risoluzione al minuto | ✓ | ✓ | ✓ |
Visualizzazione dei siti HTTP più richiesti da ciascun host | ✓ | ✓ | ✓ |
Esportazione delle comunicazioni su MySQL ed ElasticSearch | ✓ | ✓ | ✓ |
Generazione di allarmi basati su soglie di tempo/traffico ovvero su comportamenti sospetti come la visita di un sito malizioso | ✓ | ✓ | ✓ |
Allarmi e avvisi come messaggi Slack | ✓ | ✓ | ✓ |
Visualizzazione del traffico per ogni VLAN | ✓ | ✓ | ✓ |
Collezionamento di dati da nProbe per trattare le interfacce remote monitorate da nProbe e dispositivi di esportazione dei flussi (ad esempio router e switch) come se fossero locali | ✓ | ✓ | ✓ |
Visualizzazione di dati raccolti da nProbe | ✓ | ✓ | ✓ |
Raggruppamento degli hosts in set logici di indirizzi IP e MAC noti come pool di hosts †† | ✓ | ✓ | ✓ |
Visione in tempo reale dei top talkers e dei protocolli applicativi e confronto con le attività quotidiane | ✗ | ✓ | ✓ |
Esplorazione dei dati MySQL registrati per identificare la causa dei problemi di rete | ✗ | ✓ | ✓ |
Generazione di report grafici con i top hosts, protocolli applicativi, paesi, reti e autonomous systems in periodi di tempo configurabili | ✗ | ✓ | ✓ |
Storicizzazione del traffico in base ai profili creati utilizzano la sintassi BPF (Berkeley Packet Filter) ‡ | ✗ | ✓ | ✓ |
Limitazione/blocco del traffico degli host con politiche personalizzate per ogni protocollo * | ✗ | ✓ | ✓ |
Integrarezione con i server di autenticazione LDAP | ✗ | ✓ | ✓ |
Interrogazione di dispositivi SNMP per avere dati come lo stato della porta, il traffico e le informazioni sull’indirizzo MAC | ✗ | ✓ | ✓ |
Integrazione con Nagios * | ✗ | ✓ | ✓ |
Inserimenti MySQL per ottenere scritture sul database 5x più veloci | ✗ | ✗ | ✓ |
Aggregazione dei dati in MySQL per esplorazioni storiche più rapide | ✗ | ✗ | ✓ |
Generazione di report di traffico e attività totale per qualsiasi host, rete o interfaccia | ✗ | ✗ | ✓ |
Individuazione di attaccanti e vittime attraverso avvisi in tempo reale | ✗ | ✗ | ✓ |
Esplorazione e filtraggio gli allarmi | ✗ | ✗ | ✓ |
Visualizzazione e storicizzazione del traffico per porta SNMP | ✗ | ✗ | ✓ |
Visualizzazione e storicizzazione dei dati dei dispositivi NetFlow/sFlow | ✗ | ✗ | ✓ |
Captive Portal per la navigazione Internet * | ✗ | ✗ | ✓ |
Quote di traffico giornaliere che vengono applicate ai client * | ✗ | ✗ | ✓ |
Parental control con l’integrazione DNS di SafeSearch * | ✗ | ✗ | ✓ |
* Caratteristica non disponibile con Windows
† La versione Enterprise consente il monitoraggio simultaneo fino a 128 diverse interfacce di rete. Le versioni Professional e Community consentono il monitoraggio fino a 32 diverse interfacce.
†† La versione Enterprise consente il monitoraggio simultaneo fino a 128 diversi host pools. Le versioni Professional e Community consentono il monitoraggio simultaneo fino a 3 differenti host pools.
‡ La versione Enterprise consente il monitoraggio simultaneo fino a 128 diversi profili di traffico. La versioni Professional consente la creazione di 16 profili traffico.
Piattaforme supportate**
- Unix (including Linux, *BSD, and MacOSX)
- Windows x64 (incluso l’ultimo Windows 10)
- ARM
Web GUI
- Disponibile tramite web browser HTML5-ready /li>
- Supporto SSL/HTTPS
Requisiti
- Utilizzo di memoriaDipende dalla configurazione ntop, dal numero di host e dal numero di sessioni TCP attive. Generalmente varia da pochi MB (piccola LAN) a 100 MB per una WAN.
- Utilizzo della CPUDipende dalla configurazione ntop e dalle condizioni del traffico. Su un PC moderno e su una grande LAN, è inferiore al 10% del carico complessivo della CPU.
Protocolli
- Ethernet
- IPv4/IPv6
- TCP/UDP/ICMP
- GRE
- DHCP/BOOTP/NetBIOS/DNS…
- 250+ applicazioni con protocollo Layer-7 supportato con nDPI
- …molti altri.
Estensibilità
- Compatibilità con scripts in LUA
- Estensioni dell’interfaccia Web senza dover cambiare il motore Ntopng C ++.
Caratteristiche aggiuntive
- sFlow, NetFlow (incluso v5 e v9) e IPFIX supportato tramite nProbe (la raccolta da più nProbes è supportata).
- Statisticche per: Internet Domain, AS (Autonomous Systems), VLAN (Virtual LAN).
- Protocollo di decodifica per tutti i protocolli applicativi supportati da nDPI.
**NtopNg è disponibile anche per Ubiquiti EdgeRouter (Lite o X).
Installazione
L’installazione è molto semplice. Dopo aver installato il vostro sistema operativo preferito, sarà sufficiente scaricare i pacchetti e installarli seguendo le istruzioni riportate su http://packages.ntop.org.
LAB
Abbiamo fatto due laboratori, uno di solo monitoraggio e l’altro con il filtraggio (serve una licenza – vedi tabella delle caratteristiche). Il secondo include anche il primo perciò, se avete già acquistato una licenza, potete saltare la lettura del lab di monitoraggio.
Monitoring Lab
In questo lab abbiamo utilizzato l’appliance Compact Small UTM come strumento di analisi del nostro traffico di rete.
Per far in modo che potesse avere una copia del traffico da analizzare, abbiamo messo in SPAN l’interfaccia interessata del nostro firewall A1 Server Alluminium: per noi era l’interfaccia di LAN. La stessa cosa può essere fatta anche su uno switch che supporta la configurazione dello SPAN.
Una volta entrati in ntopng, nel menu di navigazione troviamo, in alto, la voce Interface. Cliccandoci possiamo vedere qual è la NIC che fisicamente è connessa al firewall.[vc_single_image image=”13676″ img_size=”full” alignment=”center” css=”.vc_custom_1521559475830{margin-top: -20px !important;padding-top: 10px !important;padding-right: 10px !important;padding-bottom: 10px !important;padding-left: 10px !important;background-color: #f4f4f2 !important;}”]Di seguito lo schema di rete che raffigura meglio quanto scritto:[vc_single_image image=”13679″ img_size=”full” alignment=”center” css=”.vc_custom_1521559783048{margin-top: -20px !important;padding-top: 10px !important;padding-right: 10px !important;padding-bottom: 10px !important;padding-left: 10px !important;background-color: #f4f4f2 !important;}”]Come mostrato nello schema, ntopng è collegato “in parallelo” al firewall ed è quindi “invisibile”.
Il traffico dell’interfaccia di LAN viene duplicato sulla nuova interfaccia di SPAN. Quest’ultima è l’interfaccia di INPUT di ntopng.
In questa prima modalità di configurazione, abbiamo analizzato per circa due giorni il traffico per capire meglio la tipologia di traffico sulla rete. Questa modalità ha però il solo scopo di analisi ed è dunque “passiva”. Non possiamo, da qui, limitare o bloccare nulla. Visto le potenzialità dello strumento, abbiamo scelto quasi subito di riconfigurarlo con un bridge.
Application Filtering Lab
Anche in questo lab abbiamo utilizzato l’appliance Compact Small UTM con ntopng come strumento di analisi del nostro traffico di rete e per il filtraggio.
Per far in modo che potesse essere in linea con il nostro A1 Server Alluminium abbiamo creato un bridge tra due NIC di ntopng.
Dunque in questo secondo lab abbiamo voluto testare il filtraggio. Questa funzione, davvero utile, è sicuramente interessante per chi, come noi, non confina nell’angolo buio dell’azienda il problema della sicurezza.
Bridge: il traffico della nostra LAN, che va verso l’uplink su internet, invece di andare verso il firewall viene quindi dirottato in ntopng. Quest’ultimo è stato configurato con due NIC in bridge [nota: due NIC di ntopng devono essere usate per ogni bridge] quindi è in grado di analizzare il traffico e “far passare” verso il firewall solo i pacchetti “leciti”. Una volta entrati in Ntopng, nel menu interface troverete il bridge che avete creato.[vc_single_image image=”13682″ img_size=”full” alignment=”center” css=”.vc_custom_1521560333376{margin-top: -20px !important;padding-top: 10px !important;padding-right: 10px !important;padding-bottom: 10px !important;padding-left: 10px !important;background-color: #f4f4f2 !important;}”]Di seguito lo schema di rete che raffigura meglio quanto scritto:[vc_single_image image=”13682″ img_size=”full” alignment=”center” css=”.vc_custom_1521560493758{margin-top: -20px !important;padding-top: 10px !important;padding-right: 10px !important;padding-bottom: 10px !important;padding-left: 10px !important;background-color: #f4f4f2 !important;}”]Nel nostro lab (vedi figura sotto), abbiamo realizzato in maniera molto semplice un limiter (traffic shaper) a 2Mb/s e lo abbiamo messo in alcune policy. In altre invece, come per la famiglia dei Social Network, abbiamo scelto di non permettere il transito dei pacchetti.[vc_single_image image=”13684″ img_size=”full” alignment=”center” css=”.vc_custom_1521560728136{margin-top: -20px !important;padding-top: 10px !important;padding-right: 10px !important;padding-bottom: 10px !important;padding-left: 10px !important;background-color: #f4f4f2 !important;}”]Il tutto in maniera molto intuitiva, semplice e veloce.
Di seguito l’immagine che mostra come creare il bridge nel file di configurazione dell’NtopNG:[vc_single_image image=”13686″ img_size=”full” alignment=”center” css=”.vc_custom_1521561139164{margin-top: -20px !important;padding-top: 10px !important;padding-right: 10px !important;padding-bottom: 10px !important;padding-left: 10px !important;background-color: #f4f4f2 !important;}”]Conclusioni
Forse dalla descrizione dei lab non si evince subito ma, l’application filtering implica ovviamente il monitoring.
Questo vuol dire che possiamo continuare a monitorare la nostra rete anche se configuriamo l’appliance in modalità “attiva” come mostrato precedentemente.
ntopng è, quindi, indispensabile per chiunque non voglia essere uno spettatore passivo del traffico generato nella propria rete aziendale.
E’ altresì utilissimo per tutti coloro che, per enforcement, o per semplice esigenza – pensiamo ad esempio a chi non ha una connettività sufficiente a sostenere il volume di dati odierno – devono avere il controllo del traffico. Ora sapete come fare.