WireShark (noto in precedenza come Ethereal) è uno dei principali software per il monitoraggio e l'analisi del traffico di rete scambiato sulle interfacce. Tra i punti di forza di questo tool troviamo l'interfaccia grafica di immediata comprensione, il numero crescente di funzioni che aumenta ad ogni nuova versione, l'elevata configurabilità dei filtri usati per selezionare solo alcuni pacchetti, e la possibilità di "isolare" tutti i pacchetti di una determinata conversazione TCP.
A rendere ancora più interessante il software è la sua capacità di agire a più livelli della stack TCP/IP e la compatibilità con tutti i principali sistemi operativi: dalla pagina di download potete infatti scegliere la versione che preferite.
Figura 1. Wireshark installer
In questo articolo ci concentreremo su una delle funzioni più immediate ma anche più interessanti, ovvero come sniffare dei dati in LAN e come analizzare e salvare i risultati ottenuti. È importante premettere però che, per far funzionare correttamente il software sui sistemi operativi Windows, è necessario installare le librerie WinPcap, le quali come segnalato sul sito sono già presenti nel file disponibile al download.
Presentazione del software
Dopo aver installato il software, e nel caso di sistemi Windows anche le relative librerie, si presenterà una schermata come la seguente, divisa in 4 parti: le due più a sinistra riguardano la cattura del traffico dati, e sono quelle su cui ci concentreremo, la barra centrale riguarda i file mentre l'ultima a destra consente di trovare informazioni sulle guide online o posizionate nel nostro computer.
Figura 2. L'interfaccia di Wireshark
Volendo analizzare il traffico nella rete è possibile cliccare semplicemente sulla prima voce in alto a sinistra, Interface List, per selezionare l'interfaccia da usare, ma se vogliamo andare più nel dettaglio è consigliato scegliere la seconda voce, "Capture Options", tramite la quale saremo in grado di dire al software molte più informazioni di nostro interesse.
Figura 3. Wireshark opzioni cattura
Anche in questo caso la finestra che si aprirà è divisa in 5 parti, e noi le analizzeremo tutte con estrema attenzione, a cominciare dalla prima, Capture: in questa sezione è possibile selezionare innanzitutto l'interfaccia di rete, ossia la scheda il cui traffico sarà da noi analizzato. Selezionando la seconda voce, che di default è già segnata, è possibile "forzare" il software, e l'interfaccia stessa, a catturare e registrare tutto il traffico che la scheda è in grado di vedere, e non solo quello che è indirizzato al suo indirizzo di rete.
La funzione che segue si riferisce all'uso della next generation, da cui la sigla -ng, della libreria di acquisizione pcap, ma al momento è ancora in uno stato embrionale e quindi consigliamo di selezionarla solo in casi particolari; la casella di controllo seguente serve per limitare la dimensione in byte di ogni pacchetto catturato.
Infine, cliccando su Capture Filter, possiamo definire alcuni filtri in grado di diminuire il numero di pacchetti che saranno catturati dal software, e che quindi ci semplificheranno la vita nella seguente fase di analisi dei risultati:
La seconda sezione della finestra delle Opzioni di cattura serve a definire il file che conterrà i risultati dello sniffing, ed eventualmente la possibilità di creare più file al raggiungimento di determinate dimensioni oppure in base allo scorrere del tempo di acquisizione.
La terza sezione, in senso antiorario, è quella in cui possiamo definire la durata dell'acquisizione, agendo sul numero di pacchetti, sulla dimensione dei file acquisiti oppure sul tempo di scansione: è importante osservare che la seconda scelta viene disabilitata se nella sezione precedente abbiamo scelto di suddividere i file dei risultati in più parti.
Andiamo ad analizzare adesso la parte destra della finestra, cominciando dalla sezione "Display Options": le prime due voci sono d'immediata comprensione, e servono rispettivamente a far aggiornare l'elenco dei pacchetti sniffati in tempo reale e ad abilitare lo scrolling automatico degli stessi. La seconda opzione può essere scelta solo se lo è anche la prima, ed in tal caso bisogna prestare attenzione al fatto che sui computer meno performanti si potrebbero perdere alcuni pacchetti a causa dell'aumento della complessità dell'operazione.
L'ultima opzione, se selezionata, non farà apparire alcun'informazione aggiuntiva sull'acquisizione in corso, ma è nostra opinione che queste informazioni non rappresentino un problema nella maggioranza dei casi, e di conseguenza è possibile deselezionare la casella.
L'ultima sezione si occupa della risoluzione dei nomi, in particolare di quelli relativi ai livelli MAC, di trasporto e di rete: possiamo lasciare le impostazioni di default, oppure abilitare tutte e tre le voci.
Sniffing in azione
A questo punto possiamo finalmente avviare la scansione cliccando sul pulsante Start e vedere tutti i pacchetti che la scheda di rete è in grado di intercettare: la finestra che si aprirà sarà molto simile alla seguente, nella quale possiamo distinguere 3 sezioni diverse.
La parte più in alto rappresenta il livello di astrazione più elevato, e serve solamente per avere una panoramica sui pacchetti sniffati; la seconda e la terza porzione della pagina entrano più nel dettaglio indicandoci più informazioni sul pacchetto selezionato e il contenuto vero e proprio in formato ASCII ed esadecimale.
In fondo alla pagina possiamo vedere, su una comoda barra, l'interfaccia scelta, l'indicazione che la scansione è ancora in corso, il percorso in cui sarà salvato il file con i risultati e il numero di pacchetti sniffati e visualizzati.
Cosa possiamo fare adesso? Ad esempio potremmo verificare la sicurezza dei protocolli HTTP, FTP, POP3, e gli altri che utilizziamo quotidianamente: in questo articolo apriremo un client di posta e scaricheremo le email usando una connessione non protetta, verificando personalmente che il nome utente e la password sono inviati in chiaro.
Non ci resta quindi che aprire il client di posta e avviare la ricezione delle email: contemporaneamente la finestra principale di WireShark si riempirà con tutti i pacchetti che transitano nell'interfaccia di rete scelta: quando avremo accumulato un numero adeguato di pacchetti possiamo fermare la scansione cliccando sul quarto pulsante da sinistra nella barra in alto oppure scegliendo il menu Capture e quindi Stop.
Vedremo un'immagine simile alla seguente, nella quale sono elencati tutti i dettagli del traffico generato dal client di posta: è possibile fare una ricerca nei risultati cliccando su Edit e quindi su "Find Packet", ed inserire i valori di nostro interesse.
Nel caso in esame abbiamo cercato la stringa PASS nella lista dei pacchetti, e come ci aspettavamo abbiamo trovato senza problemi la password dell'account email, preceduto pochi pacchetti prima dal nome utente. A questo punto, dalla barra degli strumenti in alto, è possibile salvare i risultati sul disco, potendo addirittura selezionare il formato del file e, volendo, limitare il numero di pacchetti catturati per mezzo della casella "Range".