TECHTARGET

Analisi del traffico di rete: come usare Wireshark

Chi si occupa di sicurezza ha nella propria lista di “to do” lo scanning del traffico di rete e così sarà anche per i prossimi anni, qualsiasi evoluzione del cybercrime avvenga. Uno strumento come Wireshark è e continuerà quindi a essere un suo importante alleato: meglio imparare a usarlo e a sfruttarne tutte le opportunità

Pubblicato il 28 Nov 2023

Immagine di vs148 su Shutterstock

Nel campo della cybersecurity, tra gli strumenti considerati più utili e potenti compaiono quelli che consentono la massima visibilità. Wireshark è uno di questi, anzi, è il tool principale, se ci si riferisce alla visibilità a livello di rete. Per i network analyst è un must, ma non è solo questa categoria a considerarlo di importanza fondamentale, ci sono anche gli addetti alle operazioni di sicurezza, gli architetti della sicurezza e gli addetti alla risposta agli incidenti. Chi tra loro mostra di saper sfruttare Wireshark in tutte le sue potenzialità, riesce a ottenere un vantaggio significativo e deciso.

Che cos’è Wireshark?

Si tratta di un analizzatore di protocolli di rete, chiamato analizzatore di pacchetti, progettato per fornire visibilità sul traffico che si verifica su una rete o tra macchine. Permette di osservare dall’interno la rete e di esaminare i dettagli del traffico wireless e cablato a vari livelli: dalle informazioni a livello di connessione ai bit che costituiscono un determinato pacchetto, fino ai dati contenuti. Wireshark consente anche di visualizzare le informazioni a più livelli dello stack, in modo che l’operatore possa isolare, identificare ed eseguire il debug delle connessioni di rete dai livelli più bassi fino al livello applicativo.

Di fronte a tale descrizione, possono sorgere delle perplessità. Una riguarda i recenti paradigmi di architettura, come lo zero trust, che hanno portato a un maggiore uso della crittografia sulla rete interna, limitando idealmente il traffico di rete che possiamo vedere. L’altra è relativa alle versioni più recenti di molti protocolli o metodi di accesso che impiegano la crittografia – ad esempio, Remote Desktop Protocol, SSH invece di Telnet o R Services, Secure FTP invece di FTP, ecc. – oppure che, oltre alla crittografia utilizzata ai livelli inferiori dello stack, limitano anche ciò che possiamo vedere utilizzando un analizzatore di protocollo.

È vero che il traffico di rete è più che mai crittografato ma, da un punto di vista pratico, molte informazioni rilevanti risultano ancora accessibili. Il traffico di rete è infatti volutamente stratificato. Per esempio, i modelli Open Systems Interconnection e TCP/IP consistono rispettivamente in sette o quattro livelli separati e distinti, che possono essere visti e compresi separatamente.

Anche se i livelli superiori dello stack possono essere criptati, quelli inferiori, osservati in modo isolato, forniscono indicazioni sui problemi riguardanti la sicurezza e la trasmissione del traffico. Ciò avviene perché l’indirizzamento, l’instradamento e numerosi altri elementi per portare i pacchetti dal punto A al punto B restano ancora accessibili.

Va tenuto conto anche che gli exploit devono spesso essere eseguiti in un modo particolare, in un ordine particolare e in un modo vincolato. Chi ha lavorato in un red team o partecipato a un test di penetrazione incentrato sul sistema, sull’host o sulla rete, sa quanto possa essere difficile assicurarsi che un sistema target sia nello stato appropriato e che le condizioni e le circostanze siano giuste perché possa essere sfruttato con successo. Le fasi di un attacco efficace sono spesso chiaramente visibili a livello di rete, perché alcuni exploit non possono funzionare quando si utilizzano tecniche di massima evasione o stealth. Per un criminale informatico, quindi, ci sono momenti in cui è difficile rendere la propria attività invisibile a chi guarda attivamente.

Tutto ciò dimostra che l’esame del traffico di rete sottostante è ancora utile, nonostante le moderne architetture limitino ciò che si può vedere ai livelli superiori dello stack. La flessibilità e la profondità dell’ispezione disponibili in Wireshark permettono di analizzare gli eventi e di risolvere i problemi dei dispositivi di sicurezza di rete mantenendo la stessa efficacia degli anni passati. Ecco perché Wireshark continua a essere uno degli strumenti più citati, utilizzati e considerati costantemente affidabili per i professionisti del Blue Team. Essendo un software open source, spesso conviene anche dal punto di vista economico.

Casi d’uso di Wireshark

La natura specifica dell’utilità di questo strumento varia a seconda del tipo di professionista.

  • Gli operatori di rete possono utilizzare Wireshark per eseguire il debug dei guasti di connettività e risolvere i problemi.
  • I professionisti della sicurezza del Blue Team possono usarlo per indagare sugli incidenti di sicurezza aiutandoli a esaminare gli strumenti, le tecniche e le procedure specifiche utilizzate da un avversario, per assistere nella caccia alle minacce, esaminando in profondità le comunicazioni, per aiutare a perfezionare e mettere a punto controlli come un sistema di rilevamento delle intrusioni (IDS) o un firewall per applicazioni web.
  • I Red Team possono usare Wireshark – o, più probabilmente, il più minimale TShark a riga di comando – per spiare le comunicazioni e cercare dati sensibili scambiati o per ottenere informazioni sull’ambiente di rete in cui si trovano.

Le capacità di Wireshark sono semplici, di fatto consente di effettuare le seguenti operazioni:

  • Visualizzare i dati che attraversano varie reti, tra cui reti cablate, come Ethernet, reti wireless, reti Bluetooth o interfacce di rete virtuali, come Docker o un hypervisor.
  • Navigare e visualizzare i vari livelli dello stack, compresi i protocolli a livello di applicazione, come HTTP/HTTPS; i protocolli di posta, come Post Office Protocol 3 e SMTP; e i protocolli di condivisione dei file, come Server Message Block e Common Internet File System. Più in basso nella pila, possiamo vedere TCP/IP e User Datagram Protocol. Ancora più in basso nello stack, è possibile visualizzare artefatti come i frame Ethernet.
  • Registrare e catturare il traffico per un’analisi successiva.

A prima vista può sembrare poco, ma queste funzionalità sono eccezionalmente potenti. Per esempio, i responsabili della sicurezza hanno molte ragioni per osservare il traffico di rete. Esaminare il contenuto dei pacchetti può rivelarsi prezioso quando si indaga su un attacco o si progettano contromisure. Quando si riceve un avviso di sicurezza da un IDS (Intrusion Detection System), da un provider di servizi di sicurezza gestiti o da qualsiasi altro strumento di rilevamento di basso livello, Wireshark aiuta a determinare se il traffico deriva da un errore o da un attacco dannoso. In caso di attacco, aiuta a identificarne la tipologia attraverso un’analisi dettagliata del traffico sottostante.

Wireshark può anche aiutare gli utenti a individuare il punto di origine di un attacco e di un obiettivo, esaminando gli indirizzi IP dei sistemi presi di mira e quelli da cui provengono i pacchetti dannosi. Queste informazioni sono utili non solo per la risposta agli incidenti, ma anche perché aiutano i difensori a creare regole a monte, per esempio regole di firewall o altre regole di filtraggio della rete, come i gruppi di sicurezza di rete, per bloccare, limitare o prevenire in altro modo il ripetersi di attacchi in futuro.

Lo sniffing del traffico di rete è utile anche per cercare le minacce. Se un aggressore si muove attraverso la rete, l’attività è visibile se si sta osservando in quello specifico momento. È evidentemente impossibile che qualcuno osservi sempre tutta l’attività di rete a questo livello, ma se si riesce a individuare dove guardare, per esempio in risposta a un allarme o a un’attività sospetta, si può zoomare e ottenere i dati necessari per trarre conclusioni migliori.

Un altro motivo per usare Wireshark per osservare le reti è la risoluzione dei problemi di sicurezza dei dispositivi o delle applicazioni di rete, per esempio, quelli legati alle regole del firewall. Se i sistemi che eseguono Wireshark sono collegati a entrambi i lati di un firewall o di un router, è possibile vedere quali pacchetti possono attraversare il firewall e determinare se sta causando problemi di connettività.

Con questo strumento si riesce infine anche a registrare il traffico. Questo può aiutare a effettuare i controlli, a capire come funzionano le applicazioni, a registrare l’attività per un ulteriore esame, ecc. Esistono strumenti complementari che consentono di modificare e riprodurre i dati di cattura dei pacchetti a scopo didattico, per la messa a punto dei controlli, per i test e per numerose altre ragioni.

1. Scaricare e installare Wireshark

Si parte con l’installare il software:

  • Scaricare i pacchetti di installazione per Windows o Mac.
  • Creare l’eseguibile di Wireshark
  • Installare il gestore di pacchetti predefinito per molte distribuzioni Linux popolari.
  • Utilizzare una distribuzione Linux specializzata in sicurezza, come Kali, che ha Wireshark installato di default.
  • Aggiungere una copia portatile di Wireshark su una chiavetta USB al kit di strumenti di risposta agli incidenti.
  • Utilizzare un “CD live” o un altro supporto avviabile come dispositivo di analisi di rete portatile.

In un contesto Windows, il programma di installazione supportato utilizza un’installazione guidata che include la selezione delle funzioni opzionali da installare. In un contesto Linux, il gestore dei pacchetti stabilisce quali informazioni vengono mostrate o quali opzioni di configurazione, se presenti, possono essere visualizzate durante l’installazione. Dipende molto dal gestore di pacchetti e della distribuzione, quindi è meglio rifarsi alle istruzioni relative alla distribuzione e alla configurazione del gestore di pacchetti scelto.

Sulla maggior parte delle piattaforme, Wireshark dipende da una corrispondente libreria di cattura dei pacchetti: libpcap in Linux/Unix e WinPcap in Windows. In Linux si suppone l’utilizzo di un moderno gestore di pacchetti gestito e installato dal gestore stesso, in Windows viene richiesto di installare WinPcap se non è già presente sul sistema.

2. Eseguire una semplice cattura di pacchetti

Una volta installato, Wireshark può essere avviato. Solitamente compare subito una schermata con le diverse interfacce di rete del sistema, oltre a un grafico che indica l’attività di rete su ciascuna interfaccia. In particolare, in ambiente Linux, la cattura dei pacchetti a basso livello richiede generalmente l’accesso come root, potrebbe quindi essere richiesto di elevare i permessi a root su Linux.

La seguente immagine mostra un buon numero di interfacce di rete, molte sono cablate e interne: come indicato dalle linee piatte, non hanno attività. L’interfaccia di rete superiore, un’interfaccia Wi-Fi, mostra invece attività, come indicato dalla linea tratteggiata.

installare Wireshark

Facendo un doppio clic sull’interfaccia di rete che si collega alla rete che si desidera catturare, Wireshark apre una finestra per mostrare i pacchetti trasmessi sulla rete e offre molte opzioni per gestire i filtri di visualizzazione.

Nel riquadro superiore, mostrato nella schermata sottostante, Wireshark visualizza le informazioni contenute nelle intestazioni di ciascun pacchetto, compreso, per impostazione predefinita, un indice temporale che mostra il tempo trascorso tra l’inizio della cattura e il momento in cui il pacchetto è stato analizzato. È possibile regolare il formato dell’ora e salvare i dati del timer con l’acquisizione per recuperare l’ora effettiva in cui è stato inviato il pacchetto scansionato. Vengono visualizzati anche gli indirizzi IP di origine e di destinazione del pacchetto, il protocollo in uso, la lunghezza e le varie informazioni. È possibile, con clic su una riga, visualizzare ulteriori dettagli.

implementare Wireshark

Il riquadro centrale contiene dettagli di approfondimento sul pacchetto selezionato nel riquadro superiore. Per esempio, ecco l’intestazione Ethernet di un singolo pacchetto.

Wireshark

Questa intestazione indica gli indirizzi MAC di origine e di destinazione, nonché l’identità del protocollo successivo nello stack: IPv6. Si può quindi analizzare l’intestazione IPv6.

Qui si trovano gli indirizzi IP di origine e di destinazione, oltre a informazioni specifiche sull’IP. È possibile navigare all’interno dello stack, osservando informazioni dettagliate su ogni strato lungo il percorso. Allo stesso modo, si può navigare nei protocolli che si sovrappongono. In alto è raffigurato l’IPv6; qui c’è una vista dell’IPv4.

Wireshark come fare

È inoltre possibile visualizzare informazioni su protocolli di livello superiore, come il TCP.

Questa intestazione include informazioni sulle porte TCP di origine e di destinazione, i flag impostati sul pacchetto e altri dettagli utili per la risoluzione dei problemi.

Il riquadro inferiore è una visualizzazione esadecimale che mostra il contenuto digitale del pacchetto stesso. Evidenziando uno qualsiasi dei dati si visualizzano i dettagli del protocollo nel riquadro centrale, come mostrato nella schermata seguente.

Wireshark

Un’utile funzione di Wireshark è quella di indirizzare l’utente verso le informazioni più rilevanti dei vari protocolli esaminati con lo strumento. Per esempio, la seguente schermata illustra lo scenario, oggi meno comune, dell’accesso a un sito solo HTTP, in questo caso neverssl.com, e le informazioni sul traffico grezzo a livello di applicazione presentate in questo caso.

Wireshark come usarlo

Modifica delle opzioni di acquisizione

Dopo la semplice cattura di pacchetti di base, Wireshark consente agli utenti di modificare diverse opzioni per adattarla. È possibile accedervi facendo clic sull’icona “Opzioni di cattura” a forma di ingranaggio nella barra degli strumenti, come si può vedere nella seguente immagine.

Wireshark

Facendo clic su questo pulsante si apre la finestra “Interfacce di cattura” con tre schede. La scheda Input consente di modificare le interfacce di Wireshark e di attivare la modalità promiscua, per catturare il traffico di rete che non è diretto specificamente al sistema di acquisizione.

Wireshark

La scheda Output controlla dove Wireshark memorizza i pacchetti catturati. È possibile farlo automaticamente in un file e modificarne il formato, oppure creare un file in base alla quantità di dati catturati o al tempo trascorso.

Wireshark

La scheda Opzioni consente di scegliere la modalità di visualizzazione dei pacchetti e le opzioni per i nomi MAC e DNS, nonché di limitare le dimensioni delle catture dei pacchetti. Alcune di queste opzioni possono contribuire a migliorare le prestazioni di Wireshark. Per esempio, è possibile regolare le impostazioni per evitare problemi con i nomi, che altrimenti rallentano il sistema di acquisizione e generano molte query. I limiti di tempo e di dimensione possono anche porre dei limiti alle catture non presidiate.

3. Interpretare e analizzare il contenuto dei pacchetti

La funzione di analisi più utile di Wireshark è rappresentata dai filtri. Ogni giorno, sempre più dati attraversano la rete, rendendo sempre più complesso trovare informazioni utili. Ottenere i dati giusti senza i giusti filtri è quasi impossibile su una rete anche di dimensioni moderate, per non parlare di una rete trafficata o di grandi dimensioni.

Come impostare un filtro di visualizzazione Wireshark

Wireshark dispone di diversi tipi di filtri. È possibile ordinare i dati acquisiti utilizzando un filtro di visualizzazione. Come suggerisce il nome, questo filtro limita ciò che viene mostrato sullo schermo. La casella di modifica è probabilmente il controllo più potente dell’intero strumento e riesce a facilitare l’analisi.

È possibile specificare ciò che si vuole vedere e permette di limitare i protocolli visualizzati: con la dicitura “tls” nella barra dei filtri si vedono i risultati relativi solo al traffico TLS.

Wireshark

I filtri possono essere molto più complicati di così. L’esempio seguente limita la visualizzazione ai risultati in cui la porta TCP è 443 e il numero di sequenza TCP è 499.

Wireshark come fare

L’impostazione di un filtro è un po’ un’arte. Wireshark cerca di aiutare l’utente a trovare ciò che sta cercando suggerendo come completare l’espressione del filtro. Per esempio, se si digita “ip” nella barra del filtro, Wireshark pre-popola le possibili proprietà o sotto-elementi di IP che potrebbero essere rilevanti. Allo stesso modo, se si digita “tcp”, Wireshark pre-popola i sotto-elementi di TCP.

Il controllo del filtro di visualizzazione cambia in base alla validità di ciò che viene chiesto. Negli esempi precedenti, il colore di sfondo del riquadro del filtro passa da bianco (vuoto) a verde una volta impostato. Il verde indica che il filtro è sintatticamente corretto. Se si specifica qualcosa che Wireshark non è in grado di interpretare, lo sfondo diventa rosso, come si vede in questo filtro volutamente insensato. Ciò significa che il filtro richiesto non è sintatticamente valido o che lo strumento non è in grado di analizzare la richiesta.

Wireshark

La funzione di modifica del colore del riquadro del filtro è particolarmente importante perché i filtri possono diventare complicati a seconda di ciò che si sta cercando. Di solito i filtri vengono creati utilizzando una sintassi concisa simile a quella del C, in cui le espressioni non sono necessarie. Nella creazione dei filtri si possono usare operazioni logiche, come AND (&&), OR (||), NOT (!) e persino XOR (^^). È possibile eseguire confronti, come uguale (==), non uguale (!=), maggiore di (>), maggiore o uguale a (>=) e così via. Sebbene molti utenti preferiscano usare la sintassi in stile C per ragioni di accuratezza, brevità e chiarezza, è disponibile una sintassi alternativa di tipo inglese, simile alle dichiarazioni condizionali in bash, con “ne” che indica “non uguale”, “eq” che indica “uguale”, “le” che indica “minore o uguale a” e così via.

Si consideri il filtro sottostante che utilizza ne (non uguale) in una sintassi simile a quella inglese.

Wireshark

Si noti inoltre che, in questo esempio, il colore dello sfondo è cambiato in giallo. Ciò significa che il filtro è funzionante, ma Wireshark ci avverte che è ambiguo in qualche modo e, quindi, potrebbe non funzionare come previsto. È necessario considerare con attenzione, e potenzialmente modificare, i filtri gialli. A volte significa che l’intenzione è quella di fare ciò che è stato specificato, ma può anche significare che c’è un errore di battitura o un altro problema sintattico.

Questo è un riassunto di alto livello delle funzionalità associate ai filtri di Wireshark. Dato il livello di complessità di alcuni filtri, in particolare per l’ordinamento di grandi volumi di dati, e la versatilità della sintassi, si consiglia di leggere la sezione del manuale sui filtri man mano che si acquisisce familiarità con Wireshark. I filtri possono fare molte cose, quindi imparare a usare questa funzione è prezioso e, a mio parere, fondamentale per poter usare lo strumento in modo efficace.

Come impostare un filtro di cattura Wireshark

Un filtro di cattura limita ciò che lo strumento cattura e serve per indicare la dimensione dei dati catturati al traffico specifico a cui si è interessati. È particolarmente utile per le catture di lunga durata di un traffico specifico per un periodo di tempo più lungo.

Per accedervi, selezionare Filtri di cattura dalla voce di menu Cattura.

Wireshark

Se lo scopo di un filtro di visualizzazione è quello di aiutare l’analisi, ed è quindi versatile e flessibile, quello di un filtro di acquisizione non è lo stesso. Serve infatti per limitare la memoria utilizzata nella registrazione delle acquisizioni, quindi la sintassi e il livello di complessità non sono gli stessi. I filtri di cattura utilizzano una sintassi diversa, molto più leggera di quella necessaria per impostare i filtri di visualizzazione.

È utile conoscere la differenza tra filtri di visualizzazione e filtri di cattura. Si può ottenere molto padroneggiando completamente uno dei due, ma sapere quando e come usarli è fondamentale per la padronanza dello strumento Wireshark e rappresenta un enorme vantaggio a lungo termine.

Nozioni di base sulla scansione di rete Wireshark

Questo riassume le basi dell’uso di Wireshark per catturare e analizzare il traffico di rete. Il modo migliore per diventare rapidamente un esperto di Wireshark è quello di iniziare a catturare il traffico di rete. In tal modo si scopre che può essere uno strumento utile per tutto, dalla configurazione delle regole del firewall all’individuazione di un’intrusione. Prima di catturare il traffico di una rete, però, è sempre necessaria l’autorizzazione del proprietario della rete.

Valuta la qualità di questo articolo

La tua opinione è importante per noi!

Articoli correlati

Articolo 1 di 4