Tra gli strumenti software per l’analisi della rete Wireshark è certamente uno dei più noti e utilizzati. La rete Internet e le reti LAN che oggi tutti utilizziamo sono esempi di reti commutazione di pacchetto: non è prevista la “costruzione” di un canale di comunicazione diretto tra sorgente e destinazione dei dati; il network è invece a disposizione di più utenti che possono inviare e ricevere simultaneamente le informazioni.
Un analizzatore di protocollo è un software che si pone in ascolto sulla rete e cattura i pacchetti dati in transito mostrandone tutte le peculiarità, riorganizzandoli e permettendo l’effettuazione di ricerche.
Grazie a un packet sniffer come Wireshark è possibile controllare quali attività stanno avvenendo sulla rete locale e raccogliere informazioni utili sulle eventuali comunicazioni svolte in modo non sicuro: ad esempio la trasmissione di credenziali d’accesso in forma non crittografata, scambio di dati non autorizzato e così via.
Una scheda di rete (su interfaccia Ethernet o WiFi) di un qualunque dispositivo collegato alla LAN, per impostazione predefinita riceve soltanto i pacchetti dati ad essa destinati.
Il “segreto” di Wireshark consiste nell’utilizzo della cosiddetta modalità promiscua: impostandola in questo modo la scheda diventa in grado di “intercettare” tutto il traffico in tempo reale, compreso quello diretto ad altri dispositivi o avente origine da essi.
Per impostazione predefinita, Wireshark cattura i pacchetti in modalità promiscua.
Diversamente rispetto a strumenti come Charles (Monitorare il funzionamento delle applicazioni con Charles) che fungono da proxy server e che necessitano di un intervento sulla configurazione dei singoli dispositivi collegati in rete locale, Wireshark si mette in ascolto sulla LAN riconoscendo e analizzando automaticamente tutti i pacchetti in transito.
Il nostro non vuole essere un completo tutorial su Wireshark quanto piuttosto una guida all’uso delle principali funzionalità del celeberrimo e apprezzato packet sniffer.
Per effettuare il download dell’ultima versione di Wireshark, che ha recentemente abbracciato il nuovo driver Ncap (Wireshark, cos’è e come funziona il packet sniffer più famoso) per la cattura dei pacchetti dati, basta fare riferimento a questa pagina.
Wireshark è disponibile, oltre che nella versione per Windows, anche in quelle compatibili con i sistemi macOS e Linux (scaricabili da qui).
Wireshark può essere installato e utilizzato anche all’interno di una macchina virtuale per rilevare e analizzare tutto il traffico di rete. L’importante è impostare la scheda virtuale in modalità bridge e attivare la modalità promiscua.
Nel caso di Virtualbox, ad esempio, è sufficiente portarsi nelle impostazioni di rete quindi selezionare Scheda con bridge in corrispondenza di Connessa a e Permetti tutto dal menu a tendina Modalità promiscua.
Per utilizzare Wireshark è fondamentale servirsi di un account dotato dei privilegi amministrativi.
Come configurare Wireshark per il primo utilizzo
All’avvio di Wireshark, il programma chiede di indicare l’interfaccia di rete sulla quale si vuole attivare la cattura e l’analisi dei pacchetti dati. I nomi delle interfacce corrispondono a quelli che in Windows appaiono premendo la combinazione di tasti Windows+R
quindi digitando ncpa.cpl
.
Bisognerà quindi cliccare sull’interfaccia di rete con la quale il sistema in uso è connesso alla LAN.
Facendo riferimento al menu Modifica, Preferenze quindi scegliendo Name resolution dalla colonna di sinistra, suggeriamo di spuntare tutte le caselle sotto l’indicazione Name resolution. Così facendo Wireshark risolverà tutti gli indirizzi IP mostrando al loro posto, ove possibile, il nome del dominio o del sistema corrispondente.
Con un clic sulla prima icona da sinistra della barra degli strumenti di Wireshark (raffigura la pinna di uno squalo), il programma inizierà l’attività di cattura e analisi dei pacchetti dati in transito.
Inizialmente la finestra di Wireshark risulterà del tutto illeggibile: centinaia di righe contenenti sorgente, destinazione, protocollo e una serie di informazioni si susseguiranno in continuazione. Cliccando su una qualunque riga è possibile leggere il contenuto del pacchetto selezionato.
Nel caso dei pacchetti HTTPS o comunque di tutti i pacchetti dati crittografati (SSL/TLS), i dati non risulteranno ovviamente leggibili, mentre tramite Wireshark si potrà accedere direttamente al contenuto dei pacchetti non cifrati.
Wireshark evidenzia i pacchetti dati sulla base di diverse regole, riassunte nella schermata Visualizza, Regole di colorazione. Esse sono liberamente personalizzabili.
Wireshark permette di filtrare i pacchetti dati in tempo reale, ottenendo la visualizzazione delle sole informazioni che interessano oppure di eseguire una “scrematura” a posteriori. Cliccando sull’icona a sinistra del campo Applica un filtro di visualizzazione, è possibile accedere a una serie di filtri già preimpostati. In alternativa è possibile digitare manualmente quelli che si desiderano usare.
Se ne possono preimpostare di nuovi cliccando sul menu Analizza, Filtri di visualizzazione.
Digitando ad esempio tcp
o udp
nella casella in alto, Wireshark mostrerà – rispettivamente – solo il traffico su protocollo TCP o UDP; scrivendo http
appariranno solo i pacchetti trasmessi usando il protocollo HTTP senza alcuna forma di codifica.
Digitando per esempio bittorrent
si potrà stabilire su quali workstation l’applicazione BitTorrent è in esecuzione risalendo al corrispondente indirizzo locale.
Utilizzando la sintassi tcp.port == 9001 || tcp.port == 9030
, è possibile sapere su quali dispositivi è eventualmente in uso il software Tor Browser.
Wireshark supporta anche l’autocomposizione delle regole per i filtri di visualizzazione: indicando parte del nome di un protocollo, per esempio, si potranno ottenere suggerimenti sulla sintassi adoperabile.
La lista completa dei filtri utilizzabili con Wireshark è consultabile in questa pagina.
La sezione Statistiche di Wireshark è incredibilmente utile perché consente di ottenere istantaneamente una panoramica di tutto ciò che accade sulla rete locale: l’elenco dei siti web visitati, i dispositivi (terminatori, traduzione di endpoint) che generano più traffico, le attività più pesanti e così via.
Provate ad esempio a verificare cosa succede scegliendo Terminatori quindi la scheda IPv4 e infine cliccando sull’intestazione della colonna Bytes: si troverà l’elenco dei sistemi locali e degli indirizzi pubblici remoti con i quali si sono scambiati più dati.
Utilizzando tcpdump è possibile catturare il traffico a priori per poi darlo successivamente in passato a Wireshark.