Guida a Wireshark, software open source in grado di esaminare il contenuto dei pacchetti in transito sulla rete locale.
Siete alle prese con l”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)? Wireshark è un interessante 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".
Cosa succede nella LAN?
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 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.
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 menu 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).
L’utente ha la possibilità 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. 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.
Ad esempio, nel caso del protocollo HTTP, 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.
Per esempio, 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 accettato 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.