Wireshark è un software analizzatore di protocollo in grado di esaminare il contenuto di tutti i pacchetti dati in transito sulle interfacce di rete utilizzate. Il programma raccoglie l’eredità di Ethereal basando il suo funzionamento proprio sull’esperienza e sulla tecnologia messa a punto da “precedessore”. La prerogativa di Wireshark consiste nel fornire una panoramica dettagliata di tutto ciò che sta accadendo sulla rete locale proponendo un’interfaccia grafica di semplicissimo utilizzo ed immediata comprensione. Wireshark è capace di individuare i protocolli di rete utilizzati per i vari tipi di comunicazione ed è quindi in grado di mostrare i vari incapsulamenti.
Punto di forza di questo eccellente analizzatore di protocollo è sicuramente la flessibilità: grazie a speciali criteri di ordinamento e filtraggio diventa così rapido estrapolare i dati di interesse dalle informazioni registrate.
Wireshark offre un valido ausilio per aiutare gli esperti nell’individuazione di eventuali vulnerabilità dei sistemi utilizzati in azienda (credenziali di accesso trasmesse in chiaro, attività sospette perpetrati dai client della LAN, transito di informazioni sensibili e così via).
Di WireShark esistono molteplici versioni, una per ciascun sistema operativo, sia esso Windows, Linux o Mac OS X.
Network Security Toolkit (abbreviato, NST) è un pacchetto gratuito che raccoglie gran parte delle applicazioni opensource legate al mondo della sicurezza. Tra di esse c’è Wireshark ma anche tutta una serie di programmi particolarmente d’interesse per l’amministratore di rete: l’elenco completo è consultabile cliccando qui. NST è completamente basato su Fedora e si propone come una distribuzione Linux a sé.
Nel nostro caso, abbiamo deciso di installare Network Security Toolkit in una macchina virtuale VMware Player. I vantaggi di un simile approccio sono notevoli: in primo luogo, si disporrà di un “computer virtuale” che potrà essere utilizzato per effettuare controllare il traffico dati tra i server connessi in rete locale così come tra questi e le macchine remote, su Internet.
). Noi abbiamo provveduto a prelevare la versione per Windows e ad installarla su una macchina Windows 7.
Il download può richiedere diversi minuti per poter essere completato (il file “pesa” infatti molto, circa 1,4 GB).
.
Dalla finestra successiva, si dovrà selezionare Linux come sistema operativo “guest” (il sistema operativo che verrà eseguito nell’ambito della virtual machine) e Fedora dal menù a tendina Version.
Alla comparsa della terza schermata, si dovrà specificare la cartella – sul disco fisso – entro la quale sarà memorizzata la macchina virtuale. Infine, è necessario indicare la capienza del disco fisso virtuale sul quale sarà installato poi NST. In corrispondenza della casella Maximum disk size è possibile indicare 20 GB lasciando attivata l’opzione Store virtual disk as a single file.
Per completare la procedura, si dovrà quindi cliccare sul pulsante Finish.
Accedendo alla sezione CD/DVD (IDE), si dovrà scegliere Use ISO image file, cliccare sul pulsante Browse ed indicare il file nst-2.13.0-1713.i686.iso
precedentemente prelevato dalla rete Internet. Questa regolazione permetterà di avviare il contenuto del file ISO di NST.
Infine, cliccando su Network adapter quindi scegliendo l’opzione Bridged: connected directly to the physical network si farà in modo che la macchina virtuale Linux appaia – agli altri sistemi client collegati in rete locale – come un sistema “fisico” a tutti gli effetti.
Confermando le scelte mediante la pressione del pulsante OK, si potrà avviare la macchina virtuale (link Play virtual machine).
Avvio della distribuzione: le principali applicazioni per il controllo della rete
Alla comparsa della finestra seguente, si dovranno usare i tasti freccia per selezionare la voce Graphical desktop.
Alla comparsa del desktop Linux di NST, si potrà fare doppio clic sull’icona Install to hard drive per installare NST sul disco fisso virtuale:
Le varie fasi dell’installazione sono di immediata comprensione. Innanzi tutto, è necessario indicare il layout di tastiera preferito (l’italiano) quindi scegliere la voce Basic storage devices ed indicare, come hard disk di destinazione, quello della macchina virtuale VMware:
Nella schermata seguente, si dovrà specificare la password da attribuire all’account root.
A questo punto, si dovrà indicare alla procedura d’installazione di NST, di sovrascrivere l’intero contenuto del disco virtuale (opzione Use all space):
Inizierà così la preparazione del disco fisso virtuale e l’installazione della distribuzione Linux.
Ad operazione completata, si dovrà cliccare sul menù System quindi sulla voce Shutdown.
Infine, premere ancora il pulsante Shut down per arrestare la macchina virtuale VMware.
.
.
).
:
Come si vede, il router ha provveduto ad assegnare, attraverso il protocollo DHCP, l’inidirizzo locale 192.168.1.50 all’interfaccia virtuale della virtual machine VMware.
D’ora in avanti, è possibile far riferimento ai software contenuti nel menù Applications per rendersi conto di ciò che accade all’interno della rete locale.
Per verificare le possibilità offerte da NST, suggeriamo di iniziare con EtherApe, programma eseguibile da Applications, Internet che visualizza in forma grafica il traffico verso siti web remoti richiesto dai vari sistemi client:
Il funzionamento del programma è semplice: esso si pone in ascolto e verifica, in tempo reale, in che modo fluisce il traffico all’interno della LAN. Le indicazioni grafiche che vengono via a via mostrate da EtherApe ben evidenziano su quali server remoti si concentrano le attività.
Il software “re” per lo sniffing dei pacchetti dati resta comunque WireShark, avviabile sempre dal menù Applications, Internet.
Dopo averlo avviato, cliccando sul menù Captures quindi su Interfaces, è possibile ottenere l’elenco completo delle interfacce di rete che Wireshark è in grado di “ispezionare”.
Per ciascuna interfaccia riportata in lista, vengono già rilevati – in tempo reale – il numero di pacchetti dati trasmessi ed il numero di pacchetti ricevuti. Accanto ad ogni interfaccia, il programma riporta l’IP assegnato per il sistema in uso (in elenco si possono trovare tutte le interfacce di rete: la scheda ethernet virtuale, gli altri driver di periferica virtuale installati da parte di VMware o di altri strumenti per la virtualizzazione, le interfacce installate da particolari driver di periferica ad esempio da chiavi USB Bluetooth).
Il pulsante Options consente di impostare tutta una serie di preferenze per la gestione della fase di cattura dei dati. Si può specificare, per esempio, se le informazioni catturate debbano essere salvate su uno o più file di testo (indicandone le dimensioni massime) e se fermare la procedura dopo un certo numero di minuti oppure dopo aver memorizzato un certo quantitativo di informazioni. Alcune opzioni permettono poi di ottimizzare l’usabilità del software. Disattivando la casella Automatic scrolling in live capture, ad esempio, si evita che WireShark effettui uno scorrimento automatico della finestra all’interno della quale vengono proposte le informazioni catturate, agevolando quindi la lettura dei dati rilevati.
Cliccando sul pulsante Start, si può avviare la procedura di cattura immediata dei dati in transito sull’interfaccia specificata (l’icona di WireShark diverrà di colore verde).
WireShark inizierà subito a visualizzare le informazioni veicolate sull’interfaccia scelta evidenziandole, per comodità di lettura, con colori diversi e specificando, per ciascun pacchetto dati, il protocollo utilizzato, sistema sorgente e sistema di destinazione.
Vi invitiamo a soffermarvi sull’utilizzo di WireShark riflettendo come possa rivelarsi un’ottima soluzione per controllare la sicurezza della propria rete aziendale inviduando attività sospette ed informazioni trasmesse incautamente in chiaro.
Nel caso del protocollo HTTP (navigazione sul web), ad esempio, WireShark registra tutta la fase di “handshake” tra client e server quindi inizia a riportare le informazioni relative alla richiesta di una specifica pagina web (metodo GET, risorsa richiesta, indirizzo dell’host, browser impiegato, linguaggio, codifica dei caratteri, link referenti, cookie trasmessi,…).
Dopo aver completato la fase di richiesta iniziale con il messaggio “GET”, è il protocollo TCP a farsi carico del processo di trasferimento dei dati. WireShark registrerà quindi sempre il processo che segue: HTTP richiede dati al server, il server usa TCP per trasportarli verso il client. Il server notifica al client la validità della sua richiesta inviando il messaggio “HTTP OK” prima della spedizione dei dati.
Utilizzando WireShark è facile accorgersi di quanto sia rischioso veicolare dati personali ed informazioni sensibili attraverso client di messaggistica istantanea che non implementino alcun metodo di crittografia. Nel caso di una comunicazione tra due soggetti attraverso MSN Messenger (protocollo MSNMS), il flusso dei dati inizia con una semplice fase di handshake simile a tutte le comunicazioni TCP. Il pacchetto contrassegnato con USR viene inviato ad un server Microsoft per avviare la comunicazione mentre i pacchetti CAL sono utilizzati per stabilire una connessione con uno specifico utente del client di messaggistica istantanea. Dopo alcuni pacchetti di “aknowledgement”, il pacchetto JOI informa che l’utente “remoto” ha accetato di partecipare alla conversazione.
I pacchetti contrassegnati con MSG contengono gli interi dialoghi in corso tra i due utenti. Lasciamo al lettore ogni considerazione in merito.
L’occasione è buona per ricordare quanto sia importante proteggere adeguatamente le connessioni Wi-Fi sempre più utilizzate in ambienti aziendali così come a casa e quanto sia cruciale adottare soluzioni per la protezione dei dati mediante l’utilizzo della crittografia (sul web, impiego del protocollo HTTPS).