Wireshark è un software (opensource) 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 è in grado 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).
Il software permette di scegliere quale interfaccia di rete deve essere analizzata, se le informazioni debbano essere memorizzate o meno, di acquisire log da altri programmi similari tcpdump (libpcap), NAI Sniffer, Sniffer Pro, NetXray, Sun snoop e atmsnoop, Shomiti/Finisar Surveyor, AIX iptrace, Microsoft Network Monitor, Novell LANalyzer, RADCOM WAN/LAN Analyzer, HP-UX nettl, i4btrace ISDN4BSD project, Cisco Secure IDS iplog, pppd log (pppdump-format), AG Group/WildPacket EtherPeek/TokenPeek/AiroPeek o Visual Networks Visual UpTime.
WireShark è compatibile con Windows 2000, XP, Server 2003 ed anche con Windows Vista. Nel caso di Vista, sottolineamo che il software deve essere necessariamente eseguito facendo clic con il tasto destro del mouse sulla sua icona, quindi scegliendo la voce Esegui come amministratore infine cliccando su Consenti.
A questo punto, cliccando sul menù Captures quindi su Interfaces, è possibile ottenere l’elenco completo delle interfacce di rete che Wireshark è in grado di “ispezionare” (se non si è eseguito il programma con i diritti amministrativi, è possibile che la lista risulti vuota).
Per ciascuna interfaccia riportata in elenco, 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 lista si possono trovare tutte le interfacce di rete: la scheda ethernet installata, la scheda utilizzata per la connessione Wi-Fi, i 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).
Cliccando sul pulsante Details si accede ad una finestra che riassume tutte le specifiche tecniche della scheda selezionata oltre a proporre numerosi dati statistici (queste informazioni sono spesso utilissime per identificare l’interfaccia d’interesse).
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.
Nelle pagine de IlSoftware.it illustreremo come avvengono le varie comunicazioni e come operano i principali protocolli di rete. Per il momento, 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. Ecco alcuni spunti in materia: