A proposito dell'autore

E’ certificato Cisco CCNA. Appassionato di reti e di Sicurezza. Redattore di NetworkingItalia per il quale ha scritto diversi articoli. Pubblica anche su AreaNetworking e ASSINT per il quale sta realizzando un corso online sulla sicurezza informatica. Al momento lavora presso un istituto professionale di Monza (MI) come Assistente Tecnico ma spera di poter cambiare.

Wireshark: un nuovo nome per il vecchio Ethereal

Nel 1998 Gerald Combs (un laureato in scienze informatiche dell’Università di Missouri-Kansas city) scrisse e rilasciò sotto licenza GPL (General Public License) il codice di un analizzatore di pacchetti, Ethereal.

Un analizzatore di pacchetti è conosciuto anche con molti altri nomi: analizzatore di protocollo, analizzatore di traffico, analizzatore di rete, eavesdropper, packet captures, packet sniffer o sniffer.

Che cosa è un analizzatore di protocollo o Sniffer?

Un analizzatore di protocollo è uno strumento progettato appositamente per catturare, registrare, visualizzare, decodificare Frames che viaggiano sulla rete. Questo strumento viene anche chiamato “packet captures” o “packet sniffers”, indicando così che serve per catturare i pacchetti IP anche se, in realtà, vengono catturati Frames di secondo livello, mentre i pacchetti notoriamente sono di terzo livello. Questo strumento, una volta catturato i Frames, li analizza in profondità decodificandoli e dissezionandoli. Fatto questo, è capace di mostrare il traffico di rete in una configurazione che sia leggibile e comprensibile dagli esseri umani. Questo permette agli utenti di comprendere quello che sta accadendo sulla rete.

Un analizzatore di protocollo può essere un’apparecchiatura hardware standalone con software specializzato, o più semplicemente è un software che si installa su un computer desktop o su un computer portatile. Si installa sopra un sistema operativo standard (OS) e utilizza per la cattura dei pacchetti le schede di interfaccia di rete (NIC) in modalità promiscua. Questa è una particolare modalità che permette di leggere tutto il traffico che transita in quel punto della rete, non solo quello diretto ad una specifica interfaccia. La modalità promiscua è l’opposto della modalità non-promiscua con cui funziona “normalmente” una NIC.

Il traffico, le informazioni trasmesse sulla rete sono composte da unità, frammenti della comunicazione stessa chiamati pacchetti. Ogni pacchetto della comunicazione ha delle informazioni aggiuntive rispetto al carico delle informazioni che trasporta (payload) comprendenti gli indirizzi di destinazione del computer mittente e destinatario più altre informazioni di formattazione (header e trailer).

Normalmente quando i pacchetti così formati vengono trasmessi sopra una rete, vengono inviati a “tutti gli ascoltatori” che sono in attesa sul segmento di rete, cioè a tutte le NIC di una LAN, essendo il media in condivisione. Questa modalità di funzionamento viene definita Broadcast, cioè trasmissione di tutto a tutti. Le NIC a questo punto determinano se l’indirizzo di rete (MAC Address) a cui è diretto il pacchetto è il proprio.

Un MAC Address (Media Access Control) è l’indirizzo hardware di una NIC. Questo è un numero di 48 bit identificatore della scheda di rete. I primi 24 bit identificano il vendor, mentre i secondi 24 bit sono un numero seriale assegnato dal vendor alle NIC.

Se l’indirizzo di rete a cui è diretto il pacchetto è quello della propria interfaccia, questo è l’unico autorizzato a riceverlo. Il pacchetto di dati viene passato al Kernel del SO, e da qui in su sulla pila di protocollo, fino ad arrivare al livello applicativo. Se invece è diretto ad un altro indirizzo di rete, il ricevente non è autorizzato a riceverlo e il pacchetto dalla NIC deve essere droppato, scartato. In modalità promiscua, la NIC, anche se non è autorizzata a riceverlo, non droppa i pacchetti che non sono diretti a lei, ma li passa tutti al Kernel del SO.

Gli analizzatori di protocollo di tipo hardware sono molto costosi. Al contrario, un analizzatore di protocollo di tipo software costituisce il tipo di packet sniffers più diffuso, economico e conveniente. In special modo se esso è rilasciato sotto licenza GPL. Questo permette a chiunque lo desideri di analizzare una rete.

Gli analizzatori di protocollo di tipo software sono disponibili sia in versione open source sia proprietaria.

Chi usa un Analizzatore di Protocollo?

Un analizzatore di protocollo è uno strumento indispensabile per tutte quelle persone che hanno bisogno di capire come funziona una rete: amministratori di rete e di sistema, responsabili di sicurezza, operatori di sistemi, studenti e programmatori. È uno strumento impareggiabile nel fornire una esatta visione di quello che sta realmente accadendo su una rete. È necessario quando si implementano protocolli, si fanno funzionare applicazioni di rete, durante il testing delle reti, per fare diagnosi, risolvere problemi e monitorare la rete durante il normale funzionamento.

Un analizzatore di protocollo è anche un eccellente strumento pedagogico, poiché permette di avere una interazione visiva con la rete: analizzando il traffico ad un livello tecnico, mentre è in funzione insegna le caratteristiche della propria rete. Fa capire e conoscere i tempi di massimo utilizzo della banda disponibile, di picco e/o di scarso utilizzo della propria rete. Questo migliora la comprensione del funzionamento reale della rete, perché permette di risolvere una grande varietà di problemi che possono insorgere sulle reti.

Una cosa è sapere come funziona un protocollo in maniera teorica, altra cosa è il guardarlo in azione ed esplorare come realmente sta operando. Questo permette di identificare gli attacchi e la loro origine, di trovare applicazioni insicure e applicazioni che appesantiscono la rete, di ottenere risposte definitive ai problemi. Al contempo esso è anche uno strumento largamente utilizzato dai pirati informatici per ottenere informazioni non autorizzate o con intenti dannosi.

Affidabilità scientifica delle diagnosi

Molte differenti cose possono andare storte su una rete di computer ed è impossibile risolvere ogni problema immediatamente. Molto spesso dai sintomi è difficile risalire alle cause vere che generano i problemi e anche capire quale è il problema. Le reti di computer con gli applicativi che vi lavorano sopra sono sistemi complessi, ricchi di parametri e di variabili. Un analizzatore di protocollo permette di osservare i comportamenti complessi di una rete di computer, capirne il significato, l’importanza, i motivi, riconoscerne i sintomi e risalire alle cause ultime che provocano i problemi che possono sorgere su una rete, poiché permette di diagnosticare con certezza scientifica quello che sta realmente avvenendo su una rete.

Solo da una diagnosi precisa delle cause è possibile mettere in atto contromisure capaci di debellare i problemi.

La preparazione di un analista di sicurezza

Per effettuare le diagnosi dei problemi, la miglior cosa che possiamo fare è quella di essere ben preparati e conoscere profondamente lo strumento che possa aiutarci a risolvere questi problemi. L’acquisizione di una solida competenza nell’uso di un analizzatore di protocollo è una delle più importanti capacità che ogni amministratore di rete deve avere, questa è una caratteristica assolutamente cruciale per un analista di sicurezza di rete ben skillato.

Come lavora un analizzatore di protocollo

Il processo di lavoro di un analizzatore di protocollo può essere suddiviso in tre fasi: raccolta, conversione, analisi.

1.Fase: Raccolta
La prima fase comprende la selezione e il corretto posizionamento sulla rete dell’interfaccia di cattura in promiscuous mode. In questa modalità è possibile per l’interfaccia di cattura ascoltare tutto il traffico del particolare segmento di rete in cui è posizionata la sonda.

2.Fase: Conversione
In questa fase, i dati binari grezzi catturati sono convertiti in un formato comprensibile. In questo stato i dati catturati sono in una forma che consente di interpretarli solo ad un livello molto basso.

3.Fase: Analisi
Nella terza fase, l’analizzatore di protocollo prende i dati catturati sulla rete, verifica i protocolli basandosi sulle informazioni estratte e in base alle loro caratteristiche specifiche li analizza.
Qui verrà presentato il principe degli analizzatori di protocollo software open source: Wireshark, una volta conosciuto come Ethereal.

Ethereal

Questo analizzatore di protocollo, una volta disponibile liberamente al pubblico, si diffuse rapidamente nella comunità informatica, raccogliendo attorno a sè un folto gruppo di sviluppatori che lo hanno sostenuto e continuamente aggiornato, con wiki, mailing list, gruppi di discussione, blog e altre iniziative, tanto da affermarsi come “il più popolare analizzatore di protocollo del mondo”.

Il cambiamento

8 giugno 2006: il creatore e capo sviluppatore di Ethereal, Gerald Combs, decise di cambiare lavoro, accettando un incarico come “Director of Open Source Projects” presso CACE Technologies, la società di sviluppatori creatori della libreria WinPcap. Combs volle portare con sè il progetto di Ethereal. Questo lo pose in conflitto con il suo primo datore di lavoro che deteneva il marchio di “Ethereal” per l’analizzatore di rete, e che non voleva cederlo. Venne messa in atto una disputa legale sulla proprietà del marchio: Combs non aveva diritti al marchio Ethereal e al suo nome, anche se deteneva il diritto d’autore sul codice originale di Ethereal. Non gli fu possibile continuare ad utilizzare il nome di Ethereal per il suo sviluppo.

Come Ethereal divenne Wireshark

Combs alla fine fu costretto a continuare lo sviluppo di Ethereal, realizzando un fork (divisione in due rami distinti dello sviluppo di un progetto software) del progetto originale e sotto un nuovo nome, Wireshark. La squadra di sviluppo centrale di Ethereal si è riunita attorno a Combs, per mantenere e continuare lo sviluppo di Wireshark, dal punto in cui c’è stata la disputa legale, mentre lo sviluppo originale di Ethereal è stato praticamente abbandonato. Attualmente, sono circa 500 gli sviluppatori che, in modo attivo, contribuiscono al suo miglioramento e lo mantengono. Gerald Combs continua a gestire il codice complessivo e rilascia nuove versioni stabili. Wireshark rimarrà liberamente disponibile come un software open source sotto GNU General Public License. Al momento in cui si scrive, la versione rilasciata è la 0.99.6a, con aggiornamenti di una versione stabile ogni 4-6 settimane circa. Wireshark decodifica circa 850 protocolli o tipi di pacchetti. Viene supportato da diversi sistemi operativi: Windows, Unix e Unix-compatibili, incluso Linux, Solaris, FreeBSD, NetBSD, OpenBSD, MAC OS X. Wireshark è universalmente riconosciuto ed accettato come la “vera” versione di Ethereal.

Wireshark

Wireshark è finito recentemente nella lista degli strumenti di sicurezza di www.Insecure.Org , la celebre “Top 100 Network Security Tools”: questo impareggiabile strumento compariva al secondo posto assoluto, al primo posto per la categoria dei packet sniffers. Grazie alle sue prestazioni e alla sua versatilità, Wireshark è considerato di qualità decisamente superiore rispetto a molti prodotti commerciali. Come dice l’intestazione del sito www.Wireshark.org , è “il più popolare analizzatore di protocollo del mondo” e viene attualmente considerato uno standard nel suo genere.

Installare Wireshark su Windows XP

Dove trovare Wireshark

img4iconawireshackL’ultima versione stabile per Windows di Wireshark può essere scaricata dal sito ufficiale http://www.Wireshark.org/download.html. Questa può essere installata su diverse piattaforme Windows: NT 4.0/2000/XP/Vista. Una volta scaricato nella cartella del download, il file Wireshark-setup-0.99.6a.exe si presenta come una icona blu con il logo a forma di pinna di squalo.

In basso, nella schermata della pagina di download, è possibile trovare l’hash del file .exe necessario per poter fare una verifica della genuinità del file scaricato.

A questo punto, si fa il controllo per verificare la genuinità del file scaricato, andando nella pagina delle firme del file. La verifica della genuinità del file scaricato la eseguiremo con HashCalc, un apposito programma freeware per il calcolo multiplo degli hash liberamente scaricabile presso http://www.slavasoft.com/hashcalc/index.htm. Questa è una tecnologia di sicurezza che mediante l’utilizzo di una particolare funzione matematica converte un imput di lunghezza variabile – il file Wireshark-setup-0.99.6a.exe scaricato- in un output di lunghezza fissa, chiamato firma, che troviamo a fondo pagina presso l’Hiperlink “signature file”. In questo caso gli Hash del file – Wireshark-setup-0.99.6a.exe -vengono calcolati con tre sistemi differenti: MD5, SHA1 e RIPEMD160. La comparazione della firma che il file dovrebbe avere, con le firme che otteniamo dopo il passaggio con HashCalc ci garantisce l’integrità dei dati.

Da questo momento, possiamo cominciare ad installare Wireshark, cliccando due volte sulla icona del file Wireshark-setup-0.99.6a.exe. Nella prima schermata, apparirà la seguente finestra del setup wizard, che ci guiderà nella installazione di Wireshark.

Cliccheremo su Next> per continuare nella installazione e comparirà la seguente finestra con l’accordo di licenza:

Questa è la GNU (General Public License Agreement) che Wireshark utilizza. Dopo aver letto ed accettato i termini della licenza, andremo a cliccare su I Agree per continuare.

Comparirà una finestra dove è possibile scegliere il tipo di interfaccia grafica (GUI) per l’installazione : Wireshark GTK1 o ancora Wireshark GTK2 (le versioni di Wireshark GTK1 e 2 non possono essere installate contemporaneamente) da cui spunteremo GTK-Wimp, che è l’impersonatore Windows.

Continua a leggere, clicca sotto sulle pagine seguenti.

Close
Entra in contatto con altri professionisti ICT, seguici su Facebook e Twitter: